diff --git a/.gitignore b/.gitignore index dec191b9..a3757271 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -# .gitignore -*.xar -target/ -dashboard.iml -expath-pkg.xml +node_modules +build +.idea \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..5ab7695a --- /dev/null +++ b/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/README.md b/README.md new file mode 100755 index 00000000..da1a70c0 --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +# eXist-db Admin Dashboard + +Admin Dashboard is a replacement of the older [Dashboard](https://github.com/eXist-db/dashboard) and will replace it from eXist-db 5.0.0 onwards. + +## Building for development + + +The application is build with Apache Ant by executing + +```ant xar``` + +This creates an unoptimized package for development purposes. + +## Building for production + +To create a minified package execute: + +```ant production-xar``` + +### A note on client-side dependencies + +Admin Dashboard is made of [Web Components](https://webcomponents.org) using [bower](https://bower.io/) for handling +client-side dependency management. bower builds upon the nodejs stack and therefore require a nodejs installation to work. + +Usually when using dependency tools the dependent modules are loaded dynamically from remote repositories. This has certainly +advantages but also introduce the danger of undetected deep version changes and other problems when sources become unavailable for +some reason. A discussion on this topic can be found [here](https://addyosmani.com/blog/checking-in-front-end-dependencies/). Furthermore +it requires the installation of npm and bower. + +As nodejs (npm) is not available or common to everyone the dependencies are therefore kept in the repo which eases building the app. + + +## What it does + +Admin Dashboard provides a common UI for adminitration tools in a responsive sidebar layout. The layout uses the +Material Design Guidelines to provide a common UI across a wide range of devices. + +Currently it contains: +* Launcher (not strictly an admin tool but here for convenience) +* PackageManager +* UserManager +* Settings + +More modules can be plugged later on. + +## Features + +* made of modular Web Components +* making use of latest HTML5 standard features like Custom Elements, Shadow DOM and HTML Templates +* responsive sidebar layout following Material Design +* the modules (like Packagemanager and Usermanager...) can be bookmarked for direct access +* allows to install, upload, update and remove packages (PackageManager component) +* manage users and groups (UserManager component) +* Settings panel showing eXist-db version and public repo URL. This will likely be extended for configuration. + + +## Architecture + +Admin Dashboard composes a set of Web Components into a common UI. As Web Component support is not on the same level in +all browsers [Polymer](https://polymer-project.org) is used to polyfill the gaps. E.g. while Chrome already fully +implements the current state of Web Components natively Firefox does not have a shadowDOM implementation at the time +of this writing. Polymer bridges this gap as good as possible and provides cross-browser compatibility for all modern browsers. + + +For more information see https://webcomponents.org + +To truly understand the impact of Web Components just a few points should be mentioned: +Web Components provide truly encapsulated custom HTML elements that behave as any other HTML element but may attach +styling, logic and shadowDOM to the element. As part of HTML5 they'll become native browser functionality once fully +estabilshed. + +### Use of components in Admin Dashboard + +Admin Dashboard is made of a lot of Web Components that can be found in 'bower_components' directory. + +Most of those are publicly available components available from webcomponents.org but there is also a set of +components specifically developed for eXist-db. These are organised in logical groups that are hosted in their own +repositories. + +Usually you don't have to deal with these details as this is done via bower (see bower.json) but this information is just +provided for developers that want to enhance Admin Dashboard. + +Here's a list repositories involved: + +* [PackageManager](https://github.com/eXist-db/packagemanager) +* [UserManager](https://github.com/eXist-db/usermanager) +* [Launcher](https://github.com/eXist-db/launcher) +* [Repo Elements](https://github.com/eXist-db/repo-elements) +* [Package Service](https://github.com/eXist-db/existdb-packageservice). This is no component but required by PackageManager and Launcher + +### Hybrid Components + +PackageManager, UserManager and Launcher are not just Web Components but fully functional as a standalone xar application +in eXist-db. As such each of them can be checked out and build separatly. This allows to have eXist-db installations that have no +Admin Dashboard at all but just e.g. a Launcher. On production system however you might want no launcher at all and only a PackageManager. + +These scenarios are made possible by these hybrid components. + +## Compatibility + +The application has been tested on: + +* Chrome 65.0.3325.181 / OSX 10.13.3 +* Firefox 59.0.2 / OSX 10.13.3 +* Safari 11.0.3 / OSX 10.13.3 + +Admin Dashboard is built with [Polymer 2](https://polymer-project.org). See their compatibility table [here](https://www.polymer-project.org/2.0/docs/browsers). + + + + + diff --git a/Readme.md b/Readme.md deleted file mode 100644 index 14ccfa0d..00000000 --- a/Readme.md +++ /dev/null @@ -1,25 +0,0 @@ -IMPORTAN NOTE: Dashboard is deprecated and will be replaced by a new version independent of Dojo. The repository of the new version will be available here soon. - -![Dashboard logo](/eXist-db/dashboard/raw/master/icon.png) - -eXist-db Dashboard -================== - -The eXist-db Dashboard is the central application launchpad and administration facility for eXist-db. - -This repository contains the source code of the dashboard application. - -Building --------- - -The dashboard is distributed as a single .xar file, which can be installed into an eXist-db instance via the package manager. To build the .xar, you need to have Apache Ant installed. Alternatively you can use the Ant version which comes with eXist-db (call build.sh/build.bat from the eXist-db directory). - -Clone the dashboard repository to a local directory: - - git clone git://github.com/eXist-db/dashboard.git dashboard - -Change into the created directory and call - - ant - -This should create a .xar file in the build directory. diff --git a/admin.xql b/admin.xql new file mode 100755 index 00000000..f760c250 --- /dev/null +++ b/admin.xql @@ -0,0 +1,25 @@ +xquery version "3.1"; + +declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"; +declare option output:method "html5"; +declare option output:media-type "text/html"; + +(:let $log := util:log("info","admin.xql"):) + +let $route := request:get-parameter("route","#/launcher") +(:let $log := util:log("info","route " || $route):) + +return + + + + + existdb-dashboard + + + + + + + + diff --git a/bower.json b/bower.json new file mode 100644 index 00000000..bb2a9fd8 --- /dev/null +++ b/bower.json @@ -0,0 +1,37 @@ +{ + "name": "existdb-dashboard", + "description": "a eXistdb launchpad ", + "main": "existdb-dashboard.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "paper-button": "PolymerElements/paper-button#^2.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-icon": "PolymerElements/iron-icon#^2.0.0", + "iron-iconset-svg": "PolymerElements/iron-iconset-svg#^2.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^2.0.0", + "paper-item": "PolymerElements/paper-item#^2.0.0", + "app-route": "PolymerElements/app-route#^2.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^2.0.0", + "existdb-launcher": "https://github.com/eXist-db/launcher.git#^1.2.1", + "existdb-usermanager": "https://github.com/eXist-db/usermanager.git#^0.16.4", + "existdb-backup": "https://github.com/eXist-db/existdb-backup.git#^1.1.0", + "repo-elements": "https://github.com/eXist-db/repo-elements/archive/master.zip", + "iron-lazy-pages": "^2.1.1", + "paper-card": "PolymerElements/paper-card#^2.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "existdb-packagemanager": "https://github.com/eXist-db/packagemanager/archive/v4.6.0.zip", + "vaadin-usage-statistics": "vaadin/vaadin-usage-statistics#optout" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + } +} diff --git a/bower.json.ignores b/bower.json.ignores new file mode 100644 index 00000000..1a22edf8 --- /dev/null +++ b/bower.json.ignores @@ -0,0 +1,26 @@ +{ + "name": "existdb-dashboard", + "description": "", + "main": "index.html", + "repository": { + "type": "git", + "url": "https://github.com/eXist-db/existdb-packagemanager.git" + }, + "dependencies": { + }, + "devDependencies": { + }, + "ignore": [ + ".idea", + "build", + "bower_components", + "node_modules", + "test", + "build.xml", + "expath-pkg.xml", + "repo.xml", + "package.json", + "gulpfile.js" + ], + "private": true +} diff --git a/bower_components/accessibility-developer-tools/.bower.json b/bower_components/accessibility-developer-tools/.bower.json new file mode 100644 index 00000000..9b7493c3 --- /dev/null +++ b/bower_components/accessibility-developer-tools/.bower.json @@ -0,0 +1,40 @@ +{ + "name": "accessibility-developer-tools", + "version": "2.12.0", + "homepage": "https://github.com/GoogleChrome/accessibility-developer-tools", + "authors": [ + "Google" + ], + "description": "This is a library of accessibility-related testing and utility code.", + "main": "dist/js/axs_testing.js", + "moduleType": [ + "amd", + "globals" + ], + "keywords": [ + "accessibility", + "testing", + "WCAG", + "module" + ], + "license": "Apache-2.0", + "ignore": [ + "**/.*", + "lib", + "scripts", + "src", + "test", + "tools", + "Gruntfile.js", + "package.json" + ], + "_release": "2.12.0", + "_resolution": { + "type": "version", + "tag": "v2.12.0", + "commit": "3616c094e090174f70b53ca4cea25529522abffb" + }, + "_source": "https://github.com/GoogleChrome/accessibility-developer-tools.git", + "_target": "^2.10.0", + "_originalSource": "accessibility-developer-tools" +} \ No newline at end of file diff --git a/bower_components/accessibility-developer-tools/Changelog.md b/bower_components/accessibility-developer-tools/Changelog.md new file mode 100644 index 00000000..e587f7ea --- /dev/null +++ b/bower_components/accessibility-developer-tools/Changelog.md @@ -0,0 +1,154 @@ +## 2.11.0 - 2016-09-14 + +### Enhancements + +* Performance enhancements (#263) + +## 2.10.1-rc.0 - 2016-01-13 + +### Bug fixes: + +* Escape special characters to be used in a query selector string (PR #267) +* Fix exception thrown by RoleTooltipRequiresDescribedBy.js (#269) + +## 2.10.0 - 2015-11-13 + +## 2.10.0-rc.1 - 2015-10-19 + +### Bug fixes: + +* `linkWithUnclearPurpose` should only look at links, not `` without `href`. (#245) + +## 2.10.0-rc.0 - 2015-10-09 + +### New rules +* A tabpanel should be related to a tab via aria-controls or aria-labelledby (`src/audits/UncontrolledTabpanel.js`) +* A data table must identify row and column headers (`src/audits/TableHasAppropriateHeaders.js`) +* A tooltip element should have an aria-describedby referring to it (`src/audits/RoleTooltipRequiresDescribedBy.js`). + +### Enhancements + +* Pull DOM-related functionality out into `DOMUtils.js` + +### Bug fixes: + +* Fix `findTextAlternatives` not always correctly ignoring hidden elements (#217). +* `findTextAlternatives` now honors `alt` attribute of input type image +* Revert #150 which was causing the extension not to work. +* AX_HTML_02 (duplicate IDs) now only audits elements that are referenced by an IDREF (#141); +* Fix #171 by being smarter about finding the composed parent node. +* Tweak in canScrollTo to handle the (common) case where the container is `document.body` (#243). + +## 2.9.0 - 2015-09-04 + +## 2.9.0-rc.0 - 2015-08-21 + +### New rules + +* A label element may not have labelable descendants other than its labeled control (`src/audits/MultipleLabelableElementsPerLabel.js`) + +### Enhancements + +* Implement support for specifying audit configuration options through an object when initializing audits (#165). +* Implement support for AMD loaders. + +### Bug fixes: + +* Fix `badAriaAttributeValue` not correctly handling decimal values (#182). +* Work around null pointer exception caused by closure compiler issue (#183). +* Add a special case to handle color `"transparent"` to fix (#180). +* Fix `matchSelector` not working properly in browser environments without vendor prefixes (#189). +* Fix false positives on elements with no role for Unsupported ARIA Attribute rule (#178 and #199). +* Fix ARIA `tablist` and ARIA `tab` scope (#204) +* Fix link with clear purpose with text alternative (#156); +* Handle edge cases in number parser, e.g. "+1", ".1", "01" +* HTML button containing img with alt attribute now passes controlsWithoutLabel (#202) +* Disabled elements should be ignored by low contrast audit (#205) +* Fix input of type "text" did not find correct implied role (#225) +* Hidden links are no longer relevant for meaningful link text rule. + +## 2.8.0 - 2015-07-24 + +## 2.8.0-rc.0 - 2015-07-10 + +### Enhancements: +* Pull color code into separate file. +* Improve color suggestion algorithm. +* Descend into iframes when collecting matching elements. + +## 2.7.1 - 2015-06-30 + +## 2.7.1-rc.1 - 2015-06-23 + +### Bug fixes: + +* Check for null `textAlternatives` in `FocusableElementNotVisibleAndNotAriaHidden`'s `relevantElementMatcher` method. + +## 2.7.1-rc.0 - 2015-06-15 + +### Enhancements: +* Rework findTextAlternatives not to return non-exposed text alternatives. +* Add Bower config (#157) + +### Bug fixes: +* Check for any text alternatives when assessing unlabeled images (#154). + +## 2.7.0 - 2015-05-15 + +### New rules +* This element does not support ARIA roles, states and properties (`src/audits/AriaOnReservedElement.js`) +* aria-owns should not be used if ownership is implicit in the DOM (`src/audits/AriaOwnsDescendant.js`) +* Elements with ARIA roles must be in the correct scope (`src/audits/AriaRoleNotScoped.js`) +* An element's ID must be unique in the DOM (`src/audits/DuplicateId.js`) +* The web page should have the content's human language indicated in the markup (`src/audits/HumanLangMissing.js`) +* An element's ID must not be present in more that one aria-owns attribute at any time (`src/audits/MultipleAriaOwners.js`) +* ARIA attributes which refer to other elements by ID should refer to elements which exist in the DOM (`src/audits/NonExistentAriaRelatedElement.js` - previously `src/audits/NonExistentAriaLabeledBy.js`) +* Elements with ARIA roles must ensure required owned elements are present (`src/audits/RequiredOwnedAriaRoleMissing.js`) +* Avoid positive integer values for tabIndex (`src/audits/TabIndexGreaterThanZero.js`) +* This element has an unsupported ARIA attribute (`src/audits/UnsupportedAriaAttribute.js`) + +### Enhancements: +* Add configurable blacklist phrases and stop words to LinkWithUnclearPurpose (#99) +* Detect and warn if we reuse the same code for more than one rule. (#133) +* Force focus before testing visibility on focusable elements. (#65) +* Use getDistributedNodes to get nodes distributed into shadowRoots (#128) +* Add section to Audit Rules page for HumanLangMissing and link to it from rule (#119) +* Reference "applied role" in axs.utils.getRoles enhancement (#130) +* Add warning that AX_FOCUS_02 is not available from axs.Audit.run() (#85) + +### Bug fixes: +* Incorrect use of nth-of-type against className in utils.getQuerySelectorText (#87) +* AX_TEXT_01 Accessibility Audit test should probably ignore role=presentation elements (#97) +* Fix path to audit rules in phantomjs runner (#108) +* Label audit should fail if form fields lack a label, even with placeholder text (#81) +* False positives for controls without labels with role=presentation (#23) +* Fix "valid" flag on return value of axs.utils.getRoles (#131) + +Note: this version number is somewhat arbitrary - just bringing it vaguely in line with [the extension](https://github.com/GoogleChrome/accessibility-developer-tools-extension) since that's where the library originated - but will use semver for version bumps going forward from here. + +## 0.0.5 - 2014-02-04 + +### Enhancements: +* overlapping elements detection code made more sophisticated +* axs.properties.getFocusProperties() returns more information about visibility +* new axs.properties.hasDirectTextDescendant() method with more sophisticated detection of text content + +### Bug fixes: +* FocusableElementNotVisibleAndNotAriaHidden audit passes on elements which are brought onscreen on focus +* UnfocusableElementsWithOnclick checks for element.disabled +* Fix infinite loop when getting descendant text content of a label containing an input +* Detect elements which are out of scroll area of any parent element, not just the document scroll area +* findTextAlternatives doesn't throw TypeError if used on a HTMLSelectElement + +## 0.0.4 - 2013-10-03 + +### Enhancements: + +* axs.AuditRule.run() has a new signature: it now takes an options object. Please see method documentation for details. +* Audit Rule severity can be overridden (per Audit Rule) in AuditConfig. + +### Bug fixes: + +* axs.utils.isLowContrast() now rounds to the nearest 0.1 before checking (so `#777` is now a passing value) +* MainRoleOnInappropriateElement was always failing due to accessible name calculation taking the main role into account and not descending into content (now just gets descendant content directly) +* UnfocusableElementsWithOnClick had a dangling if-statement causing very noisy false positives diff --git a/bower_components/accessibility-developer-tools/LICENSE b/bower_components/accessibility-developer-tools/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/bower_components/accessibility-developer-tools/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/bower_components/accessibility-developer-tools/README.md b/bower_components/accessibility-developer-tools/README.md new file mode 100644 index 00000000..3bc1a106 --- /dev/null +++ b/bower_components/accessibility-developer-tools/README.md @@ -0,0 +1,222 @@ +[![Build Status](https://travis-ci.org/GoogleChrome/accessibility-developer-tools.svg?branch=master)](https://travis-ci.org/GoogleChrome/accessibility-developer-tools) +[![npm version](https://img.shields.io/npm/v/accessibility-developer-tools.svg)](https://www.npmjs.com/package/accessibility-developer-tools) +[![npm downloads](https://img.shields.io/npm/dm/accessibility-developer-tools.svg)](https://www.npmjs.com/package/accessibility-developer-tools) + +# Accessibility Developer Tools + +This is a library of accessibility-related testing and utility code. + +Its main component is the accessibility audit: a collection of audit rules checking for common accessibility problems, and an API for running these rules in an HTML page. + +There is also a collection of accessibility-related utility code, including but not limited to: +* contrast ratio calculation and color suggestions +* retrieving and validating ARIA attributes and states +* accessible name calculation using the algorithm at [http://www.w3.org/TR/wai-aria/roles#textalternativecomputation](http://www.w3.org/TR/wai-aria/roles#textalternativecomputation) + +# Getting the code + +To include just the javascript rules, require the following file: + + https://raw.github.com/GoogleChrome/accessibility-developer-tools/stable/dist/js/axs_testing.js + + `git 1.6.5` or later: + + % git clone --recursive https://github.com/GoogleChrome/accessibility-developer-tools.git + + Before `git 1.6.5`: + + % git clone https://github.com/GoogleChrome/accessibility-developer-tools.git + % cd accessibility-developer-tools + % git submodule init; git submodule update + +# Building + +You will need `node` and `grunt-cli` to build. + +1. (Once only) Install [Node.js](http://nodejs.org/) and `npm` - useful instructions here: [https://gist.github.com/isaacs/579814](https://gist.github.com/isaacs/579814) + + Make sure you have Node.js v 0.8 or higher. + +2. (Once only) Use `npm` to install `grunt-cli` + + % npm install -g grunt-cli # May need to be run as root + +3. (Every time you make a fresh checkout) Install dependencies (including `grunt`) for this project (run from project root) + + % npm install + +4. (Rebuild if you make changes) Build using `grunt` (run from project root) + + % grunt + + +## Troubleshooting + +This project uses [Closure Compiler](https://github.com/google/closure-compiler) to build our releases. You may need to install a recent version of [JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html) in order for builds to successfully complete. + +# Using the Audit API + +## Including the library + +The simplest option is to include the generated `axs_testing.js` library on your page. After you build, you will have two versions of `axs_testings.js`: +* Distribution Build: project-root/dist/js/axs_testing.js +* Local Build (use if you make changes): project-root/tmp/build/axs_testing.js + +Work is underway to include the library in WebDriver and other automated testing frameworks. + +## The `axs.Audit.run()` method + +Once you have included `axs_testing.js`, you can call `axs.Audit.run()`. This returns an object in the following form: + + { + /** @type {axs.constants.AuditResult} */ + result, // one of PASS, FAIL or NA + + /** @type {Array.} */ + elements, // The elements which the rule fails on, if result == axs.constants.AuditResult.FAIL + + /** @type {axs.AuditRule} */ + rule // The rule which this result is for. + } + +### Command Line Runner + +The Accessibility Developer Tools project includes a command line runner for the audit. To use the runner, [install phantomjs](http://phantomjs.org/download.html) then run the following command from the project root directory. + + $ phantomjs tools/runner/audit.js + +The runner will load the specified file or URL in a headless browser, inject axs_testing.js, run the audit and output the report text. + +### Run audit from Selenium WebDriver (Scala): + val driver = org.openqa.selenium.firefox.FirefoxDriver //use driver of your choice + val jse = driver.asInstanceOf[JavascriptExecutor] + jse.executeScript(scala.io.Source.fromURL("https://raw.githubusercontent.com/GoogleChrome/" + + "accessibility-developer-tools/stable/dist/js/axs_testing.js").mkString) + val report = jse.executeScript("var results = axs.Audit.run();return axs.Audit.createReport(results);") + println(report) + +### Run audit from Selenium WebDriver (Scala)(with caching): + val cache = collection.mutable.Map[String, String]() + val driver = org.openqa.selenium.firefox.FirefoxDriver //use driver of your choice + val jse = driver.asInstanceOf[JavascriptExecutor] + def getUrlSource(arg: String): String = cache get arg match { + case Some(result) => result + case None => + val result: String = scala.io.Source.fromURL(arg).mkString + cache(arg) = result + result + } + jse.executeScript(getUrlSource("https://raw.githubusercontent.com/GoogleChrome/" + + "accessibility-developer-tools/stable/dist/js/axs_testing.js")) + val report = js.executeScript("var results = axs.Audit.run();return axs.Audit.createReport(results);") + println(report) + +If println() outputs nothing, check if you need to set DesiredCapabilities for your WebDriver (such as loggingPrefs): +https://code.google.com/p/selenium/wiki/DesiredCapabilities + +## Using the results + +### Interpreting the result + +The result may be one of three constants: +* `axs.constants.AuditResult.PASS` - This implies that there were elements on the page that may potentially have failed this audit rule, but they passed. Congratulations! +* `axs.constants.AuditResult.NA` - This implies that there were no elements on the page that may potentially have failed this audit rule. For example, an audit rule that checks video elements for subtitles would return this result if there were no video elements on the page. +* `axs.constants.AuditResult.FAIL` - This implies that there were elements on the page that did not pass this audit rule. This is the only result you will probably be interested in. + +### Creating a useful error message + +The static, global `axs.Audit.createReport(results, opt_url)` may be used to create an error message using the return value of axs.Audit.run(). This will look like the following: + + *** Begin accessibility audit results *** + An accessibility audit found 4 errors and 4 warnings on this page. + For more information, please see https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules + + Error: badAriaAttributeValue (AX_ARIA_04) failed on the following elements (1 - 3 of 3): + DIV:nth-of-type(3) > INPUT + DIV:nth-of-type(5) > INPUT + #aria-invalid + + Error: badAriaRole (AX_ARIA_01) failed on the following element: + DIV:nth-of-type(11) > SPAN + + Error: controlsWithoutLabel (AX_TEXT_01) failed on the following elements (1 - 3 of 3): + DIV > INPUT + DIV:nth-of-type(12) > DIV:nth-of-type(3) > INPUT + LABEL > INPUT + + Error: requiredAriaAttributeMissing (AX_ARIA_03) failed on the following element: + DIV:nth-of-type(13) > DIV:nth-of-type(11) > DIV + + Warning: focusableElementNotVisibleAndNotAriaHidden (AX_FOCUS_01) failed on the following element: + #notariahidden + + Warning: imagesWithoutAltText (AX_TEXT_02) failed on the following elements (1 - 2 of 2): + #deceptive-img + DIV:nth-of-type(13) > IMG + + Warning: lowContrastElements (AX_COLOR_01) failed on the following elements (1 - 2 of 2): + DIV:nth-of-type(13) > DIV + DIV:nth-of-type(13) > DIV:nth-of-type(3) + + Warning: nonExistentAriaLabelledbyElement (AX_ARIA_02) failed on the following elements (1 - 2 of 2): + DIV:nth-of-type(3) > INPUT + DIV:nth-of-type(5) > INPUT + *** End accessibility audit results *** + +Each rule will have at most five elements listed as failures, in the form of a unique query selector for each element. + +### Configuring the Audit + +If you wish to fine-tune the audit, you can create an `axs.AuditConfiguration` object, with the following options: + +#### Ignore parts of the page for a particular audit rule + +For example, say you have a separate high-contrast version of your page, and there is a CSS rule which causes certain elements (with class `pretty`) on the page to be low-contrast for stylistic reasons. Running the audit unmodified produces results something like + + Warning: lowContrastElements (AX_COLOR_01) failed on the following elements (1 - 5 of 15): + ... + +You can modify the audit to ignore the elements which are known and intended to have low contrast like this: + + var configuration = new axs.AuditConfiguration(); + configuration.ignoreSelectors('lowContrastElements', '.pretty'); + axs.Audit.run(configuration); + +The `AuditConfiguration.ignoreSelectors()` method takes a rule name, which you can find in the audit report, and a query selector string representing the parts of the page to be ignored for that audit rule. Multiple calls to `ignoreSelectors()` can be made for each audit rule, if multiple selectors need to be ignored. + +#### Restrict the scope of the entire audit to a subsection of the page + +You may have a part of the page which varies while other parts of the page stay constant, like a content area vs. a toolbar. In this case, running the audit on the entire page may give you spurious results in the part of the page which doesn't vary, which may drown out regressions in the main part of the page. + +You can set a `scope` on the `AuditConfiguration` object like this: + + var configuration = new axs.AuditConfiguration(); + configuration.scope = document.querySelector('main'); // or however you wish to choose your scope element + axs.Audit.run(configuration); + +You may also specify a configuration payload while instantiating the `axs.AuditConfiguration`, +which allows you to provide multiple configuration options at once. + + var configuration = new axs.AuditConfiguration({ + auditRulesToRun: ['badAriaRole'], + scope: document.querySelector('main'), + maxResults: 5 + }); + + axs.Audit.run(configuration); + +## License + +Copyright 2013 Google Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/bower_components/accessibility-developer-tools/bower.json b/bower_components/accessibility-developer-tools/bower.json new file mode 100644 index 00000000..ab386021 --- /dev/null +++ b/bower_components/accessibility-developer-tools/bower.json @@ -0,0 +1,31 @@ +{ + "name": "accessibility-developer-tools", + "version": "2.11.0", + "homepage": "https://github.com/GoogleChrome/accessibility-developer-tools", + "authors": [ + "Google" + ], + "description": "This is a library of accessibility-related testing and utility code.", + "main": "dist/js/axs_testing.js", + "moduleType": [ + "amd", + "globals" + ], + "keywords": [ + "accessibility", + "testing", + "WCAG", + "module" + ], + "license": "Apache-2.0", + "ignore": [ + "**/.*", + "lib", + "scripts", + "src", + "test", + "tools", + "Gruntfile.js", + "package.json" + ] +} diff --git a/bower_components/accessibility-developer-tools/dist/js/axs_testing.js b/bower_components/accessibility-developer-tools/dist/js/axs_testing.js new file mode 100644 index 00000000..1f83c95a --- /dev/null +++ b/bower_components/accessibility-developer-tools/dist/js/axs_testing.js @@ -0,0 +1,2402 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Generated from http://github.com/GoogleChrome/accessibility-developer-tools/tree/9acd1c6e3e72a39a0ec14506d68203a4e8cfafb4 + * + * See project README for build steps. + */ + +// AUTO-GENERATED CONTENT BELOW: DO NOT EDIT! See above for details. + +var fn = (function() { + var COMPILED = !0, goog = goog || {}; +goog.global = this; +goog.isDef = function(a) { + return void 0 !== a; +}; +goog.exportPath_ = function(a, b, c) { + a = a.split("."); + c = c || goog.global; + a[0] in c || !c.execScript || c.execScript("var " + a[0]); + for (var d;a.length && (d = a.shift());) { + !a.length && goog.isDef(b) ? c[d] = b : c = c[d] ? c[d] : c[d] = {}; + } +}; +goog.define = function(a, b) { + var c = b; + COMPILED || (goog.global.CLOSURE_UNCOMPILED_DEFINES && Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES, a) ? c = goog.global.CLOSURE_UNCOMPILED_DEFINES[a] : goog.global.CLOSURE_DEFINES && Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES, a) && (c = goog.global.CLOSURE_DEFINES[a])); + goog.exportPath_(a, c); +}; +goog.DEBUG = !0; +goog.LOCALE = "en"; +goog.TRUSTED_SITE = !0; +goog.STRICT_MODE_COMPATIBLE = !1; +goog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG; +goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1; +goog.provide = function(a) { + if (goog.isInModuleLoader_()) { + throw Error("goog.provide can not be used within a goog.module."); + } + if (!COMPILED && goog.isProvided_(a)) { + throw Error('Namespace "' + a + '" already declared.'); + } + goog.constructNamespace_(a); +}; +goog.constructNamespace_ = function(a, b) { + if (!COMPILED) { + delete goog.implicitNamespaces_[a]; + for (var c = a;(c = c.substring(0, c.lastIndexOf("."))) && !goog.getObjectByName(c);) { + goog.implicitNamespaces_[c] = !0; + } + } + goog.exportPath_(a, b); +}; +goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/; +goog.module = function(a) { + if (!goog.isString(a) || !a || -1 == a.search(goog.VALID_MODULE_RE_)) { + throw Error("Invalid module identifier"); + } + if (!goog.isInModuleLoader_()) { + throw Error("Module " + a + " has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide."); + } + if (goog.moduleLoaderState_.moduleName) { + throw Error("goog.module may only be called once per module."); + } + goog.moduleLoaderState_.moduleName = a; + if (!COMPILED) { + if (goog.isProvided_(a)) { + throw Error('Namespace "' + a + '" already declared.'); + } + delete goog.implicitNamespaces_[a]; + } +}; +goog.module.get = function(a) { + return goog.module.getInternal_(a); +}; +goog.module.getInternal_ = function(a) { + if (!COMPILED) { + if (a in goog.loadedModules_) { + return goog.loadedModules_[a]; + } + if (!goog.implicitNamespaces_[a]) { + return a = goog.getObjectByName(a), null != a ? a : null; + } + } + return null; +}; +goog.moduleLoaderState_ = null; +goog.isInModuleLoader_ = function() { + return null != goog.moduleLoaderState_; +}; +goog.module.declareLegacyNamespace = function() { + if (!COMPILED && !goog.isInModuleLoader_()) { + throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module"); + } + if (!COMPILED && !goog.moduleLoaderState_.moduleName) { + throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace."); + } + goog.moduleLoaderState_.declareLegacyNamespace = !0; +}; +goog.setTestOnly = function(a) { + if (goog.DISALLOW_TEST_ONLY_CODE) { + throw a = a || "", Error("Importing test-only code into non-debug environment" + (a ? ": " + a : ".")); + } +}; +goog.forwardDeclare = function(a) { +}; +COMPILED || (goog.isProvided_ = function(a) { + return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && goog.isDefAndNotNull(goog.getObjectByName(a)); +}, goog.implicitNamespaces_ = {"goog.module":!0}); +goog.getObjectByName = function(a, b) { + for (var c = a.split("."), d = b || goog.global, e;e = c.shift();) { + if (goog.isDefAndNotNull(d[e])) { + d = d[e]; + } else { + return null; + } + } + return d; +}; +goog.globalize = function(a, b) { + var c = b || goog.global, d; + for (d in a) { + c[d] = a[d]; + } +}; +goog.addDependency = function(a, b, c, d) { + if (goog.DEPENDENCIES_ENABLED) { + var e; + a = a.replace(/\\/g, "/"); + var f = goog.dependencies_; + d && "boolean" !== typeof d || (d = d ? {module:"goog"} : {}); + for (var g = 0;e = b[g];g++) { + f.nameToPath[e] = a, f.loadFlags[a] = d; + } + for (d = 0;b = c[d];d++) { + a in f.requires || (f.requires[a] = {}), f.requires[a][b] = !0; + } + } +}; +goog.ENABLE_DEBUG_LOADER = !0; +goog.logToConsole_ = function(a) { + goog.global.console && goog.global.console.error(a); +}; +goog.require = function(a) { + if (!COMPILED) { + goog.ENABLE_DEBUG_LOADER && goog.IS_OLD_IE_ && goog.maybeProcessDeferredDep_(a); + if (goog.isProvided_(a)) { + if (goog.isInModuleLoader_()) { + return goog.module.getInternal_(a); + } + } else { + if (goog.ENABLE_DEBUG_LOADER) { + var b = goog.getPathFromDeps_(a); + if (b) { + goog.writeScripts_(b); + } else { + throw a = "goog.require could not find: " + a, goog.logToConsole_(a), Error(a); + } + } + } + return null; + } +}; +goog.basePath = ""; +goog.nullFunction = function() { +}; +goog.abstractMethod = function() { + throw Error("unimplemented abstract method"); +}; +goog.addSingletonGetter = function(a) { + a.getInstance = function() { + if (a.instance_) { + return a.instance_; + } + goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = a); + return a.instance_ = new a; + }; +}; +goog.instantiatedSingletons_ = []; +goog.LOAD_MODULE_USING_EVAL = !0; +goog.SEAL_MODULE_EXPORTS = goog.DEBUG; +goog.loadedModules_ = {}; +goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER; +goog.TRANSPILE = "detect"; +goog.TRANSPILER = "transpile.js"; +goog.DEPENDENCIES_ENABLED && (goog.dependencies_ = {loadFlags:{}, nameToPath:{}, requires:{}, visited:{}, written:{}, deferred:{}}, goog.inHtmlDocument_ = function() { + var a = goog.global.document; + return null != a && "write" in a; +}, goog.findBasePath_ = function() { + if (goog.isDef(goog.global.CLOSURE_BASE_PATH)) { + goog.basePath = goog.global.CLOSURE_BASE_PATH; + } else { + if (goog.inHtmlDocument_()) { + for (var a = goog.global.document.getElementsByTagName("SCRIPT"), b = a.length - 1;0 <= b;--b) { + var c = a[b].src, d = c.lastIndexOf("?"), d = -1 == d ? c.length : d; + if ("base.js" == c.substr(d - 7, 7)) { + goog.basePath = c.substr(0, d - 7); + break; + } + } + } + } +}, goog.importScript_ = function(a, b) { + (goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_)(a, b) && (goog.dependencies_.written[a] = !0); +}, goog.IS_OLD_IE_ = !(goog.global.atob || !goog.global.document || !goog.global.document.all), goog.importProcessedScript_ = function(a, b, c) { + goog.importScript_("", 'goog.retrieveAndExec_("' + a + '", ' + b + ", " + c + ");"); +}, goog.queuedModules_ = [], goog.wrapModule_ = function(a, b) { + return goog.LOAD_MODULE_USING_EVAL && goog.isDef(goog.global.JSON) ? "goog.loadModule(" + goog.global.JSON.stringify(b + "\n//# sourceURL=" + a + "\n") + ");" : 'goog.loadModule(function(exports) {"use strict";' + b + "\n;return exports});\n//# sourceURL=" + a + "\n"; +}, goog.loadQueuedModules_ = function() { + var a = goog.queuedModules_.length; + if (0 < a) { + var b = goog.queuedModules_; + goog.queuedModules_ = []; + for (var c = 0;c < a;c++) { + goog.maybeProcessDeferredPath_(b[c]); + } + } +}, goog.maybeProcessDeferredDep_ = function(a) { + goog.isDeferredModule_(a) && goog.allDepsAreAvailable_(a) && (a = goog.getPathFromDeps_(a), goog.maybeProcessDeferredPath_(goog.basePath + a)); +}, goog.isDeferredModule_ = function(a) { + var b = (a = goog.getPathFromDeps_(a)) && goog.dependencies_.loadFlags[a] || {}, c = b.lang || "es3"; + return a && ("goog" == b.module || goog.needsTranspile_(c)) ? goog.basePath + a in goog.dependencies_.deferred : !1; +}, goog.allDepsAreAvailable_ = function(a) { + if ((a = goog.getPathFromDeps_(a)) && a in goog.dependencies_.requires) { + for (var b in goog.dependencies_.requires[a]) { + if (!goog.isProvided_(b) && !goog.isDeferredModule_(b)) { + return !1; + } + } + } + return !0; +}, goog.maybeProcessDeferredPath_ = function(a) { + if (a in goog.dependencies_.deferred) { + var b = goog.dependencies_.deferred[a]; + delete goog.dependencies_.deferred[a]; + goog.globalEval(b); + } +}, goog.loadModuleFromUrl = function(a) { + goog.retrieveAndExec_(a, !0, !1); +}, goog.writeScriptSrcNode_ = function(a) { + goog.global.document.write(' + diff --git a/bower_components/app-layout/app-box/demo/document-scroll.html b/bower_components/app-layout/app-box/demo/document-scroll.html new file mode 100644 index 00000000..4a67bf86 --- /dev/null +++ b/bower_components/app-layout/app-box/demo/document-scroll.html @@ -0,0 +1,218 @@ + + + + + + + + + + app-box demo using the document scroll + + + + + + + + + + + + + + +
+ +
POLYMER
+
+ +
+ +
+ +
+
+
+
+

Built for Speed

+

Polymer 1.0 replaces the shadow DOM polyfill with a lightweight shim, uses a new, faster data-binding system, and significantly reduces code size.

+
+ + + + +
+ +
+
+
+

For Modern Browsers

+

Polymer is built from the ground up for modern browsers, using the latest web platform APIs. Polyfills provide support on evergreen browsers for APIs that aren't universal yet.

+
+ + +
+ +
+
+
+

Using Web Components

+

Polymer leverages web components, a new set of standards designed to provide reusable components for the web.

+
+ +
+ +
+
+
+

Create your own elements

+

The Polymer library makes it easy to create your own powerful elements. Give your element some markup and properties, and then use it on a site. Polymer provides useful features like templating and data binding to reduce the amount of boilerplate you need to write.

+
+ +
+
+ + + diff --git a/bower_components/app-layout/app-box/demo/index.html b/bower_components/app-layout/app-box/demo/index.html new file mode 100644 index 00000000..991839bc --- /dev/null +++ b/bower_components/app-layout/app-box/demo/index.html @@ -0,0 +1,40 @@ + + + + + + app-box demos + + + + + + + + + + +
+
+

app-box demos

+ +
+
+ + diff --git a/bower_components/app-layout/app-box/demo/scrolling-region.html b/bower_components/app-layout/app-box/demo/scrolling-region.html new file mode 100644 index 00000000..604e0808 --- /dev/null +++ b/bower_components/app-layout/app-box/demo/scrolling-region.html @@ -0,0 +1,232 @@ + + + + + + + + + + app-box using a custom scrolling region + + + + + + + + + + + + + + + +
+
+ +
POLYMER
+
+ + + +
+ +
+
+
+

Built for Speed

+

Polymer 1.0 replaces the shadow DOM polyfill with a lightweight shim, uses a new, faster data-binding system, and significantly reduces code size.

+
+ + + + + +
+ +
+
+
+

For Modern Browsers

+

Polymer is built from the ground up for modern browsers, using the latest web platform APIs. Polyfills provide support on evergreen browsers for APIs that aren't universal yet.

+
+ + +
+ +
+
+
+

Using Web Components

+

Polymer leverages web components, a new set of standards designed to provide reusable components for the web.

+
+ +
+ +
+
+
+

Create your own elements

+

The Polymer library makes it easy to create your own powerful elements. Give your element some markup and properties, and then use it on a site. Polymer provides useful features like templating and data binding to reduce the amount of boilerplate you need to write.

+
+ +
+
+ + + + diff --git a/bower_components/app-layout/app-drawer-layout/README.md b/bower_components/app-layout/app-drawer-layout/README.md new file mode 100644 index 00000000..2ffe9b4c --- /dev/null +++ b/bower_components/app-layout/app-drawer-layout/README.md @@ -0,0 +1,115 @@ +## <app-drawer-layout> + +app-drawer-layout is a wrapper element that positions an app-drawer and other content. When +the viewport width is smaller than `responsiveWidth`, this element changes to narrow layout. +In narrow layout, the drawer will be stacked on top of the main content. The drawer will slide +in/out to hide/reveal the main content. + + +By default the drawer is aligned to the start, which is left in LTR layouts: + +```html + + + drawer content + +
+ main content +
+
+``` + +Align the drawer at the end: + +```html + + + drawer content + +
+ main content +
+
+``` + +With an app-header-layout: + +```html + + + drawer-content + + + + +
App name
+
+
+ + main content + +
+
+``` + +Add the `drawer-toggle` attribute to elements inside `app-drawer-layout` that toggle the drawer on click events: + +```html + + + drawer-content + + + + + +
App name
+
+
+ + main content + +
+
+``` + +**NOTE:** With app-layout 2.0, the `drawer-toggle` element needs to be manually hidden +when app-drawer-layout is not in narrow layout. To add this, add the following CSS rule where +app-drawer-layout is used: + +```css +app-drawer-layout:not([narrow]) [drawer-toggle] { + display: none; +} +``` + +Add the `fullbleed` attribute to app-drawer-layout to make it fit the size of its container: + +```html + + + drawer content + +
+ main content +
+
+``` + +### Styling + +Custom property | Description | Default +-----------------------------------------|--------------------------------------|--------- +`--app-drawer-width` | Width of the drawer | 256px +`--app-drawer-layout-content-transition` | Transition for the content container | none + +**NOTE:** If you use with and specify a value for +`--app-drawer-width`, that value must be accessible by both elements. This can be done by +defining the value on the `:host` that contains (or `html` if outside +a shadow root): + +```css +:host { + --app-drawer-width: 300px; +} +``` diff --git a/bower_components/app-layout/app-drawer-layout/app-drawer-layout.d.ts b/bower_components/app-layout/app-drawer-layout/app-drawer-layout.d.ts new file mode 100644 index 00000000..8a5a0389 --- /dev/null +++ b/bower_components/app-layout/app-drawer-layout/app-drawer-layout.d.ts @@ -0,0 +1,168 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-drawer-layout/app-drawer-layout.html + */ + +/// +/// +/// + +/** + * app-drawer-layout is a wrapper element that positions an app-drawer and other content. When + * the viewport width is smaller than `responsiveWidth`, this element changes to narrow layout. + * In narrow layout, the drawer will be stacked on top of the main content. The drawer will slide + * in/out to hide/reveal the main content. + * + * By default the drawer is aligned to the start, which is left in LTR layouts: + * + * ```html + * + * + * drawer content + * + *
+ * main content + *
+ *
+ * ``` + * + * Align the drawer at the end: + * + * ```html + * + * + * drawer content + * + *
+ * main content + *
+ *
+ * ``` + * + * With an app-header-layout: + * + * ```html + * + * + * drawer-content + * + * + * + * + *
App name
+ *
+ *
+ * + * main content + * + *
+ *
+ * ``` + * + * Add the `drawer-toggle` attribute to elements inside `app-drawer-layout` that toggle the drawer on click events: + * + * ```html + * + * + * drawer-content + * + * + * + * + * + *
App name
+ *
+ *
+ * + * main content + * + *
+ *
+ * ``` + * + * *NOTE:** With app-layout 2.0, the `drawer-toggle` element needs to be manually hidden + * when app-drawer-layout is not in narrow layout. To add this, add the following CSS rule where + * app-drawer-layout is used: + * + * ```css + * app-drawer-layout:not([narrow]) [drawer-toggle] { + * display: none; + * } + * ``` + * + * Add the `fullbleed` attribute to app-drawer-layout to make it fit the size of its container: + * + * ```html + * + * + * drawer content + * + *
+ * main content + *
+ *
+ * ``` + * + * ### Styling + * + * Custom property | Description | Default + * -----------------------------------------|--------------------------------------|--------- + * `--app-drawer-width` | Width of the drawer | 256px + * `--app-drawer-layout-content-transition` | Transition for the content container | none + * + * *NOTE:** If you use with and specify a value for + * `--app-drawer-width`, that value must be accessible by both elements. This can be done by + * defining the value on the `:host` that contains (or `html` if outside + * a shadow root): + * + * ```css + * :host { + * --app-drawer-width: 300px; + * } + * ``` + */ +interface AppDrawerLayoutElement extends Polymer.Element, Polymer.AppLayoutBehavior { + + /** + * If true, ignore `responsiveWidth` setting and force the narrow layout. + */ + forceNarrow: boolean|null|undefined; + + /** + * If the viewport's width is smaller than this value, the panel will change + * to narrow layout. In the mode the drawer will be closed. + */ + responsiveWidth: string|null|undefined; + + /** + * Returns true if it is in narrow layout. This is useful if you need to + * show/hide elements based on the layout. + */ + readonly narrow: boolean|null|undefined; + + /** + * If true, the drawer will initially be opened when in narrow layout mode. + */ + openedWhenNarrow: boolean|null|undefined; + _drawerPosition: string|null|undefined; + + /** + * A reference to the app-drawer element. + */ + readonly drawer: any; + attached(): void; + _updateLayoutStates(): void; + _clickHandler(e: any): void; + _narrowChanged(): void; + _onQueryMatchesChanged(event: any): void; + _computeMediaQuery(forceNarrow: any, responsiveWidth: any): any; +} + +interface HTMLElementTagNameMap { + "app-drawer-layout": AppDrawerLayoutElement; +} diff --git a/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html b/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html new file mode 100644 index 00000000..39f10a33 --- /dev/null +++ b/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html @@ -0,0 +1,288 @@ + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-drawer-layout/demo/index.html b/bower_components/app-layout/app-drawer-layout/demo/index.html new file mode 100644 index 00000000..f08b56c3 --- /dev/null +++ b/bower_components/app-layout/app-drawer-layout/demo/index.html @@ -0,0 +1,76 @@ + + + + + + + + + app-drawer-layout demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html b/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html new file mode 100644 index 00000000..81cf2a86 --- /dev/null +++ b/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html @@ -0,0 +1,239 @@ + + + + + + test for app-drawer-layout + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-drawer-layout/test/index.html b/bower_components/app-layout/app-drawer-layout/test/index.html new file mode 100644 index 00000000..d5eb9340 --- /dev/null +++ b/bower_components/app-layout/app-drawer-layout/test/index.html @@ -0,0 +1,25 @@ + + + + + + app-drawer-layout tests + + + + + + diff --git a/bower_components/app-layout/app-drawer/README.md b/bower_components/app-layout/app-drawer/README.md new file mode 100644 index 00000000..72218133 --- /dev/null +++ b/bower_components/app-layout/app-drawer/README.md @@ -0,0 +1,47 @@ +## <app-drawer> + +![app-drawer](http://app-layout-assets.appspot.com/assets/docs/app-drawer/drawer.gif) + +app-drawer is a navigation drawer that can slide in from the left or right. + +Example: + +Align the drawer at the start, which is left in LTR layouts (default): + +```html + +``` + +Align the drawer at the end: + +```html + +``` + +To make the contents of the drawer scrollable, create a wrapper for the scroll +content, and apply height and overflow styles to it. + +```html + +
+
+``` + +### Styling + +Custom property | Description | Default +---------------------------------|----------------------------------------|-------------------- +`--app-drawer-width` | Width of the drawer | 256px +`--app-drawer-content-container` | Mixin for the drawer content container | {} +`--app-drawer-scrim-background` | Background for the scrim | rgba(0, 0, 0, 0.5) + +**NOTE:** If you use `` with `` and specify a value for +`--app-drawer-width`, that value must be accessible by both elements. This can be done by +defining the value on the `:host` that contains `` (or `html` if outside +a shadow root): + +```css +:host { + --app-drawer-width: 300px; +} +``` diff --git a/bower_components/app-layout/app-drawer/app-drawer.d.ts b/bower_components/app-layout/app-drawer/app-drawer.d.ts new file mode 100644 index 00000000..47735560 --- /dev/null +++ b/bower_components/app-layout/app-drawer/app-drawer.d.ts @@ -0,0 +1,164 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-drawer/app-drawer.html + */ + +/// +/// + +/** + * app-drawer is a navigation drawer that can slide in from the left or right. + * + * Example: + * + * Align the drawer at the start, which is left in LTR layouts (default): + * + * ```html + * + * ``` + * + * Align the drawer at the end: + * + * ```html + * + * ``` + * + * To make the contents of the drawer scrollable, create a wrapper for the scroll + * content, and apply height and overflow styles to it. + * + * ```html + * + *
+ *
+ * ``` + * + * ### Styling + * + * Custom property | Description | Default + * ---------------------------------|----------------------------------------|-------------------- + * `--app-drawer-width` | Width of the drawer | 256px + * `--app-drawer-content-container` | Mixin for the drawer content container | {} + * `--app-drawer-scrim-background` | Background for the scrim | rgba(0, 0, 0, 0.5) + * + * *NOTE:** If you use `` with `` and specify a value for + * `--app-drawer-width`, that value must be accessible by both elements. This can be done by + * defining the value on the `:host` that contains `` (or `html` if outside + * a shadow root): + * + * ```css + * :host { + * --app-drawer-width: 300px; + * } + * ``` + */ +interface AppDrawerElement extends Polymer.Element { + + /** + * The opened state of the drawer. + */ + opened: boolean|null|undefined; + + /** + * The drawer does not have a scrim and cannot be swiped close. + */ + persistent: boolean|null|undefined; + + /** + * The transition duration of the drawer in milliseconds. + */ + transitionDuration: number|null|undefined; + + /** + * The alignment of the drawer on the screen ('left', 'right', 'start' or + * 'end'). 'start' computes to left and 'end' to right in LTR layout and + * vice versa in RTL layout. + */ + align: string|null|undefined; + + /** + * The computed, read-only position of the drawer on the screen ('left' or + * 'right'). + */ + readonly position: string|null|undefined; + + /** + * Create an area at the edge of the screen to swipe open the drawer. + */ + swipeOpen: boolean|null|undefined; + + /** + * Trap keyboard focus when the drawer is opened and not persistent. + */ + noFocusTrap: boolean|null|undefined; + + /** + * Disables swiping on the drawer. + */ + disableSwipe: boolean|null|undefined; + _translateOffset: number; + _trackDetails: null; + _drawerState: number; + _boundEscKeydownHandler: null; + _firstTabStop: null; + _lastTabStop: null; + _MIN_FLING_THRESHOLD: number; + _MIN_TRANSITION_VELOCITY: number; + _FLING_TIMING_FUNCTION: string; + _FLING_INITIAL_SLOPE: number; + _DRAWER_STATE: object|null; + attached(): void; + detached(): void; + + /** + * Opens the drawer. + */ + open(): void; + + /** + * Closes the drawer. + */ + close(): void; + + /** + * Toggles the drawer open and close. + */ + toggle(): void; + + /** + * Gets the width of the drawer. + * + * @returns The width of the drawer in pixels. + */ + getWidth(): number; + _isRTL(): any; + _resetPosition(): void; + _escKeydownHandler(event: any): void; + _track(event: any): void; + _trackStart(event: any): void; + _trackMove(event: any): void; + _trackEnd(event: any): void; + _calculateVelocity(event: any, trackDetails: any): any; + _flingDrawer(event: any, trackDetails: any): void; + _styleTransitionDuration(duration: any): void; + _styleTransitionTimingFunction(timingFunction: any): void; + _translateDrawer(x: any): void; + _resetDrawerTranslate(): void; + _resetDrawerState(): void; + + /** + * Resets the layout. + */ + resetLayout(): void; + _setKeyboardFocusTrap(): void; + _tabKeydownHandler(event: any): void; + _openedPersistentChanged(opened: any, persistent: any): void; +} + +interface HTMLElementTagNameMap { + "app-drawer": AppDrawerElement; +} diff --git a/bower_components/app-layout/app-drawer/app-drawer.html b/bower_components/app-layout/app-drawer/app-drawer.html new file mode 100644 index 00000000..16c49248 --- /dev/null +++ b/bower_components/app-layout/app-drawer/app-drawer.html @@ -0,0 +1,668 @@ + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-drawer/demo/index.html b/bower_components/app-layout/app-drawer/demo/index.html new file mode 100644 index 00000000..dc3bd0ac --- /dev/null +++ b/bower_components/app-layout/app-drawer/demo/index.html @@ -0,0 +1,40 @@ + + + + + + app-drawer demos + + + + + + + + + + +
+
+

app-drawer demos

+ +
+
+ + diff --git a/bower_components/app-layout/app-drawer/demo/left-drawer.html b/bower_components/app-layout/app-drawer/demo/left-drawer.html new file mode 100644 index 00000000..23bd872a --- /dev/null +++ b/bower_components/app-layout/app-drawer/demo/left-drawer.html @@ -0,0 +1,73 @@ + + + + + + + + + app-drawer demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-drawer/demo/right-drawer.html b/bower_components/app-layout/app-drawer/demo/right-drawer.html new file mode 100644 index 00000000..0eca3c71 --- /dev/null +++ b/bower_components/app-layout/app-drawer/demo/right-drawer.html @@ -0,0 +1,105 @@ + + + + + + + + + app-drawer demo + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + inbox + + + + favorite + + + + polymer + + + + question-answer + + + + send + + + + archive + + + + backup + + + + dashboard + +
+
+ + + diff --git a/bower_components/app-layout/app-drawer/test/app-drawer.html b/bower_components/app-layout/app-drawer/test/app-drawer.html new file mode 100644 index 00000000..f8ecf8d4 --- /dev/null +++ b/bower_components/app-layout/app-drawer/test/app-drawer.html @@ -0,0 +1,868 @@ + + + + + + test for app-drawer + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-drawer/test/index.html b/bower_components/app-layout/app-drawer/test/index.html new file mode 100644 index 00000000..dbe35ad3 --- /dev/null +++ b/bower_components/app-layout/app-drawer/test/index.html @@ -0,0 +1,25 @@ + + + + + + app-drawer tests + + + + + + diff --git a/bower_components/app-layout/app-grid/README.md b/bower_components/app-layout/app-grid/README.md new file mode 100644 index 00000000..2e9bf9a1 --- /dev/null +++ b/bower_components/app-layout/app-grid/README.md @@ -0,0 +1,128 @@ +## <app-grid> + +app-grid is a helper class useful for creating responsive, fluid grid layouts using custom properties. +Because custom properties can be defined inside a `@media` rule, you can customize the grid layout +for different responsive breakpoints. + +Example: + +Import `app-grid-style.html` and include `app-grid-style` in the style of an element's definition. +Then, add the class `app-grid` to a container such as `ul` or `div`: + +```html + +``` + +In this example, the grid will take 3 columns per row and only 1 column if the viewport width is +smaller than 640px. + +### Expandible items + +In many cases, it's useful to expand an item more than 1 column. To achieve this type of layout, +you can specify the number of columns the item should expand to by setting the custom property +`--app-grid-expandible-item-columns`. To indicate which item should expand, apply the mixin +`--app-grid-expandible-item` to a rule with a selector to the item. For example: + +```html + +``` + +### Preserving the aspect ratio + +When the size of a grid item should preserve the aspect ratio, you can add the `has-aspect-ratio` +attribute to the element with the class `app-grid`. Now, every item element becomes a wrapper around +the item content. For example: + +```html + +``` + +### Styling + +Custom property | Description | Default +----------------------------------------------|------------------------------------------------------------|------------------ +`--app-grid-columns` | The number of columns per row. | 1 +`--app-grid-gutter` | The space between two items. | 0px +`--app-grid-item-height` | The height of the items. | auto +`--app-grid-expandible-item-columns` | The number of columns an expandible item should expand to. | 1 + +### CSS grid layout + +[CSS grid layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout) is a new layout system for CSS that lets you create complex grids. It's richer than app-grid in many cases, but it's only supported in a [few browsers](http://caniuse.com/#search=css%20grid%20layout). diff --git a/bower_components/app-layout/app-grid/app-grid-style.d.ts b/bower_components/app-layout/app-grid/app-grid-style.d.ts new file mode 100644 index 00000000..79ea6b80 --- /dev/null +++ b/bower_components/app-layout/app-grid/app-grid-style.d.ts @@ -0,0 +1,120 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-grid/app-grid-style.html + */ + +/// + +/** + * app-grid is a helper class useful for creating responsive, fluid grid layouts using custom properties. + * Because custom properties can be defined inside a `@media` rule, you can customize the grid layout + * for different responsive breakpoints. + * + * Example: + * + * Import `app-grid-style.html` and include `app-grid-style` in the style of an element's definition. + * Then, add the class `app-grid` to a container such as `ul` or `div`: + * + * ```html + * + * ``` + * In the example above, the grid will take 3 columns per row. + * + * ### Expandible items + * + * In many cases, it's useful to expand an item more than 1 column. To achieve this type of layout, + * you can specify the number of columns the item should expand to by setting the custom property + * `--app-grid-expandible-item-columns`. To indicate which item should expand, apply the mixin + * `--app-grid-expandible-item` to a rule with a selector to the item. For example: + * + *

+ * <template>
+ *   <style include="app-grid-style">
+ *     :host {
+ *       --app-grid-columns: 3;
+ *       --app-grid-item-height: 100px;
+ *       --app-grid-expandible-item-columns: 3;
+ *     }
+ *
+ *     /* Only the first item should expand *\/
+ *     .item:first-child {
+ *       @apply --app-grid-expandible-item;
+ *     }
+ *   </style>
+ * </template>
+ * 
+ * + * ### Preserving the aspect ratio + * + * When the size of a grid item should preserve the aspect ratio, you can add the `has-aspect-ratio` + * attribute to the element with the class `.app-grid`. Now, every item element becomes a wrapper around + * the item content. For example: + * + * ```html + * + * ``` + * + * ### Styling + * + * Custom property | Description | Default + * ----------------------------------------------|------------------------------------------------------------|------------------ + * `--app-grid-columns` | The number of columns per row. | 1 + * `--app-grid-gutter` | The space between two items. | 0px + * `--app-grid-item-height` | The height of the items. | auto + * `--app-grid-expandible-item-columns` | The number of columns an expandible item should expand to. | 1 + */ +interface AppGridElement extends Polymer.Element { +} + +interface HTMLElementTagNameMap { + "app-grid": AppGridElement; +} diff --git a/bower_components/app-layout/app-grid/app-grid-style.html b/bower_components/app-layout/app-grid/app-grid-style.html new file mode 100644 index 00000000..090e3678 --- /dev/null +++ b/bower_components/app-layout/app-grid/app-grid-style.html @@ -0,0 +1,194 @@ + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/demo/aspect-ratio.html b/bower_components/app-layout/app-grid/demo/aspect-ratio.html new file mode 100644 index 00000000..5daad2f4 --- /dev/null +++ b/bower_components/app-layout/app-grid/demo/aspect-ratio.html @@ -0,0 +1,109 @@ + + + + + + + + + Preserving aspect ratio using app-grid-style + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html b/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html new file mode 100644 index 00000000..ee312d3a --- /dev/null +++ b/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html @@ -0,0 +1,250 @@ + + + + + + + + + Flickr grid layout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/demo/index.html b/bower_components/app-layout/app-grid/demo/index.html new file mode 100644 index 00000000..62804fc6 --- /dev/null +++ b/bower_components/app-layout/app-grid/demo/index.html @@ -0,0 +1,41 @@ + + + + + + app-grid demos + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/demo/md-grid-layout.html b/bower_components/app-layout/app-grid/demo/md-grid-layout.html new file mode 100644 index 00000000..6c9e6bab --- /dev/null +++ b/bower_components/app-layout/app-grid/demo/md-grid-layout.html @@ -0,0 +1,155 @@ + + + + + + + + + Material design grid layout using app-grid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html b/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html new file mode 100644 index 00000000..850bad34 --- /dev/null +++ b/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html @@ -0,0 +1,120 @@ + + + + + + + + + Responsive grid layout using app-grid-style + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/test/app-grid-1.html b/bower_components/app-layout/app-grid/test/app-grid-1.html new file mode 100644 index 00000000..ae96f3a3 --- /dev/null +++ b/bower_components/app-layout/app-grid/test/app-grid-1.html @@ -0,0 +1,144 @@ + + + + + + test for app-grid + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/test/app-grid-2.html b/bower_components/app-layout/app-grid/test/app-grid-2.html new file mode 100644 index 00000000..fcd4d266 --- /dev/null +++ b/bower_components/app-layout/app-grid/test/app-grid-2.html @@ -0,0 +1,147 @@ + + + + + + test for app-grid + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/test/app-grid-3.html b/bower_components/app-layout/app-grid/test/app-grid-3.html new file mode 100644 index 00000000..7833fe78 --- /dev/null +++ b/bower_components/app-layout/app-grid/test/app-grid-3.html @@ -0,0 +1,149 @@ + + + + + + test for app-grid + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-grid/test/index.html b/bower_components/app-layout/app-grid/test/index.html new file mode 100644 index 00000000..225bc270 --- /dev/null +++ b/bower_components/app-layout/app-grid/test/index.html @@ -0,0 +1,29 @@ + + + + + + app-grid tests + + + + + + diff --git a/bower_components/app-layout/app-header-layout/README.md b/bower_components/app-layout/app-header-layout/README.md new file mode 100644 index 00000000..acf3e2d6 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/README.md @@ -0,0 +1,42 @@ +## <app-header-layout> + +app-header-layout is a wrapper element that positions an app-header and other content. This +element uses the document scroll by default, but it can also define its own scrolling region. + +Using the document scroll: + +```html + + + +
App name
+
+
+
+ main content +
+
+``` + +Using an own scrolling region: + +```html + + + +
App name
+
+
+
+ main content +
+
+``` + +Add the `fullbleed` attribute to app-header-layout to make it fit the size of its container: + +```html + + ... + +``` diff --git a/bower_components/app-layout/app-header-layout/app-header-layout.d.ts b/bower_components/app-layout/app-header-layout/app-header-layout.d.ts new file mode 100644 index 00000000..0f598c30 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/app-header-layout.d.ts @@ -0,0 +1,74 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-header-layout/app-header-layout.html + */ + +/// +/// +/// + +/** + * app-header-layout is a wrapper element that positions an app-header and other content. This + * element uses the document scroll by default, but it can also define its own scrolling region. + * + * Using the document scroll: + * + * ```html + * + * + * + *
App name
+ *
+ *
+ *
+ * main content + *
+ *
+ * ``` + * + * Using an own scrolling region: + * + * ```html + * + * + * + *
App name
+ *
+ *
+ *
+ * main content + *
+ *
+ * ``` + * + * Add the `fullbleed` attribute to app-header-layout to make it fit the size of its container: + * + * ```html + * + * ... + * + * ``` + */ +interface AppHeaderLayoutElement extends Polymer.Element, Polymer.AppLayoutBehavior { + + /** + * If true, the current element will have its own scrolling region. + * Otherwise, it will use the document scroll to control the header. + */ + hasScrollingRegion: boolean|null|undefined; + + /** + * A reference to the app-header element. + */ + readonly header: any; + _updateLayoutStates(): void; +} + +interface HTMLElementTagNameMap { + "app-header-layout": AppHeaderLayoutElement; +} diff --git a/bower_components/app-layout/app-header-layout/app-header-layout.html b/bower_components/app-layout/app-header-layout/app-header-layout.html new file mode 100644 index 00000000..61076265 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/app-header-layout.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header-layout/demo/footer.html b/bower_components/app-layout/app-header-layout/demo/footer.html new file mode 100644 index 00000000..d39c143a --- /dev/null +++ b/bower_components/app-layout/app-header-layout/demo/footer.html @@ -0,0 +1,92 @@ + + + + + + + + + app-header-layout demo + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
My Drive
+
+
+ +
+ +
+ +
+ © Polymer project +
+ +
+ + + diff --git a/bower_components/app-layout/app-header-layout/demo/index.html b/bower_components/app-layout/app-header-layout/demo/index.html new file mode 100644 index 00000000..faaf12cc --- /dev/null +++ b/bower_components/app-layout/app-header-layout/demo/index.html @@ -0,0 +1,42 @@ + + + + + + app-header-layout demos + + + + + + + + + + +
+
+

app-header-layout demos

+ +
+
+ + diff --git a/bower_components/app-layout/app-header-layout/demo/music.html b/bower_components/app-layout/app-header-layout/demo/music.html new file mode 100644 index 00000000..d7b29fa3 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/demo/music.html @@ -0,0 +1,341 @@ + + + + + + + + Music Demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+

GIRL

+
+
Pharrell Williams
+
+ + Girl is the second studio album by American recording artist and record producer Pharrell Williams. The album was released on March 3, 2014, through Williams' label i Am Other and Columbia Records. + + +
+
1
+
Marilyn Monroe
+
5:51
+ +
+ +
+
2
+
Brand New
+
4:31
+ +
+ +
+
3
+
Hunter
+
4:00
+ +
+ +
+
4
+
Gush
+
3:54
+ +
+ +
+
5
+
Happy (From "Despicable Me 2")
+
3:52
+ +
+ +
+
6
+
Come Get It Bae
+
3:21
+ +
+ +
+
7
+
Gust of Wind
+
4:45
+ +
+ +
+
8
+
Lost Queen
+
7:56
+ +
+ +
+
9
+
Know Who You Are
+
3:56
+ +
+ +
+
10
+
It Girl
+
4:49
+ +
+ +
+
11
+
Marilyn Monroe
+
5:51
+ +
+ +
+
12
+
Brand New
+
4:31
+ +
+ +
+
13
+
Hunter
+
4:00
+ +
+ +
+
14
+
Gush
+
3:54
+ +
+ +
+
15
+
Happy (From "Despicable Me 2")
+
3:52
+ +
+ +
+
16
+
Come Get It Bae
+
3:21
+ +
+ +
+
17
+
Gust of Wind
+
4:45
+ +
+ +
+
18
+
Lost Queen
+
7:56
+ +
+ +
+
19
+
Know Who You Are
+
3:56
+ +
+ +
+
20
+
It Girl
+
4:49
+ +
+
+ + + +
+ + + + + diff --git a/bower_components/app-layout/app-header-layout/demo/scrolling-region.html b/bower_components/app-layout/app-header-layout/demo/scrolling-region.html new file mode 100644 index 00000000..53453cb8 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/demo/scrolling-region.html @@ -0,0 +1,89 @@ + + + + + + + + + app-header-layout demo + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
My Drive
+
+
+ + + +
+ + + diff --git a/bower_components/app-layout/app-header-layout/demo/simple.html b/bower_components/app-layout/app-header-layout/demo/simple.html new file mode 100644 index 00000000..bc245466 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/demo/simple.html @@ -0,0 +1,86 @@ + + + + + + + + + app-header-layout demo + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header-layout/test/app-header-layout.html b/bower_components/app-layout/app-header-layout/test/app-header-layout.html new file mode 100644 index 00000000..52269eed --- /dev/null +++ b/bower_components/app-layout/app-header-layout/test/app-header-layout.html @@ -0,0 +1,168 @@ + + + + + + test for app-header-layout + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header-layout/test/index.html b/bower_components/app-layout/app-header-layout/test/index.html new file mode 100644 index 00000000..58852321 --- /dev/null +++ b/bower_components/app-layout/app-header-layout/test/index.html @@ -0,0 +1,25 @@ + + + + + + app-header-layout tests + + + + + + diff --git a/bower_components/app-layout/app-header/README.md b/bower_components/app-layout/app-header/README.md new file mode 100644 index 00000000..958989c0 --- /dev/null +++ b/bower_components/app-layout/app-header/README.md @@ -0,0 +1,198 @@ +## <app-header> + +![app-header](http://app-layout-assets.appspot.com/assets/docs/app-header/header.gif) + +app-header is container element for app-toolbars at the top of the screen that can have scroll +effects. By default, an app-header moves away from the viewport when scrolling down and +if using `reveals`, the header slides back when scrolling back up. For example: + +```html + + +
App name
+
+
+``` + +app-header can also condense when scrolling down. To achieve this behavior, the header +must have a larger height than the `sticky` element in the light DOM. For example: + +```html + + +
App name
+
+
+``` + +In this case the header is initially `96px` tall, and it shrinks to `64px` when scrolling down. +That is what is meant by "condensing". + +### Sticky element + +The element that is positioned fixed to top of the header's `scrollTarget` when a threshold +is reached, similar to `position: sticky` in CSS. This element **must** be an immediate +child of app-header. By default, the `sticky` element is the first `app-toolbar that +is an immediate child of app-header. + +```html + + Sticky element + +``` + +#### Customizing the sticky element + +```html + + + Sticky element + +``` + +### Scroll target + +The app-header's `scrollTarget` property allows to customize the scrollable element to which +the header responds when the user scrolls. By default, app-header uses the document as +the scroll target, but you can customize this property by setting the id of the element, e.g. + +```html +
+ + +
+``` + +In this case, the `scrollTarget` property points to the outer div element. Alternatively, +you can set this property programmatically: + +```js +appHeader.scrollTarget = document.querySelector("#scrollingRegion"); +``` + +## Backgrounds +app-header has two background layers that can be used for styling when the header is condensed +or when the scrollable element is scrolled to the top. + +## Scroll effects + +Scroll effects are _optional_ visual effects applied in app-header based on scroll position. For example, +The [Material Design scrolling techniques](https://www.google.com/design/spec/patterns/scrolling-techniques.html) +recommends effects that can be installed via the `effects` property. e.g. + +```html + + App name + +``` + +#### Importing the effects + +To use the scroll effects, you must explicitly import them in addition to `app-header`: + +```html + +``` + +#### List of effects + +* **blend-background** +Fades in/out two background elements by applying CSS opacity based on scroll position. +You can use this effect to smoothly change the background color or image of the header. +For example, using the mixin `--app-header-background-rear-layer` lets you assign a different +background when the header is condensed: + +```css +app-header { + background-color: red; + --app-header-background-rear-layer: { + /* The header is blue when condensed */ + background-color: blue; + }; +} +``` + +* **fade-background** +Upon scrolling past a threshold, this effect will trigger an opacity transition to +fade in/out the backgrounds. Compared to the `blend-background` effect, +this effect doesn't interpolate the opacity based on scroll position. + +* **parallax-background** +A simple parallax effect that vertically translates the backgrounds based on a fraction +of the scroll position. For example: + +```css +app-header { + --app-header-background-front-layer: { + background-image: url(...); + }; +} +``` +```html + + App name + +``` + +The fraction determines how far the background moves relative to the scroll position. +This value can be assigned via the `scalar` config value and it is typically a value +between 0 and 1 inclusive. If `scalar=0`, the background doesn't move away from the header. + +* **resize-title** +Progressively interpolates the size of the title from the element with the `main-title` attribute +to the element with the `condensed-title` attribute as the header condenses. For example: + +```html + + +

App name

+
+ +

App name

+
+
+``` + +* **resize-snapped-title** +Upon scrolling past a threshold, this effect fades in/out the titles using opacity transitions. +Similarly to `resize-title`, the `main-title` and `condensed-title` elements must be placed in the +light DOM. + +* **waterfall** +Toggles the shadow property in app-header to create a sense of depth (as recommended in the +MD spec) between the header and the underneath content. You can change the shadow by +customizing the `--app-header-shadow` mixin. For example: + +```css +app-header { + --app-header-shadow: { + box-shadow: inset 0px 5px 2px -3px rgba(0, 0, 0, 0.2); + }; +} +``` + +```html + + +

App name

+
+
+``` + +* **material** +Installs the waterfall, resize-title, blend-background and parallax-background effects. + +### Content attributes + +Attribute | Description | Default +----------|---------------------|---------------------------------------- +`sticky` | Element that remains at the top when the header condenses. | The first app-toolbar in the light DOM. + + +## Styling + +Mixin | Description | Default +------|-------------|---------- +`--app-header-background-front-layer` | Applies to the front layer of the background. | {} +`--app-header-background-rear-layer` | Applies to the rear layer of the background. | {} +`--app-header-shadow` | Applies to the shadow. | {} diff --git a/bower_components/app-layout/app-header/app-header.d.ts b/bower_components/app-layout/app-header/app-header.d.ts new file mode 100644 index 00000000..a78060d0 --- /dev/null +++ b/bower_components/app-layout/app-header/app-header.d.ts @@ -0,0 +1,356 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-header/app-header.html + */ + +/// +/// +/// +/// + +/** + * app-header is container element for app-toolbars at the top of the screen that can have scroll + * effects. By default, an app-header moves away from the viewport when scrolling down and + * if using `reveals`, the header slides back when scrolling back up. For example: + * + * ```html + * + * + *
App name
+ *
+ *
+ * ``` + * + * app-header can also condense when scrolling down. To achieve this behavior, the header + * must have a larger height than the `sticky` element in the light DOM. For example: + * + * ```html + * + * + *
App name
+ *
+ *
+ * ``` + * + * In this case the header is initially `96px` tall, and it shrinks to `64px` when scrolling down. + * That is what is meant by "condensing". + * + * ### Sticky element + * + * The element that is positioned fixed to top of the header's `scrollTarget` when a threshold + * is reached, similar to `position: sticky` in CSS. This element **must** be an immediate + * child of app-header. By default, the `sticky` element is the first `app-toolbar that + * is an immediate child of app-header. + * + * ```html + * + * Sticky element + * + * ``` + * + * #### Customizing the sticky element + * + * ```html + * + * + * Sticky element + * + * ``` + * + * ### Scroll target + * + * The app-header's `scrollTarget` property allows to customize the scrollable element to which + * the header responds when the user scrolls. By default, app-header uses the document as + * the scroll target, but you can customize this property by setting the id of the element, e.g. + * + * ```html + *
+ * + * + *
+ * ``` + * + * In this case, the `scrollTarget` property points to the outer div element. Alternatively, + * you can set this property programmatically: + * + * ```js + * appHeader.scrollTarget = document.querySelector("#scrollingRegion"); + * ``` + * + * ## Backgrounds + * app-header has two background layers that can be used for styling when the header is condensed + * or when the scrollable element is scrolled to the top. + * + * ## Scroll effects + * + * Scroll effects are _optional_ visual effects applied in app-header based on scroll position. For example, + * The [Material Design scrolling techniques](https://www.google.com/design/spec/patterns/scrolling-techniques.html) + * recommends effects that can be installed via the `effects` property. e.g. + * + * ```html + * + * App name + * + * ``` + * + * #### Importing the effects + * + * To use the scroll effects, you must explicitly import them in addition to `app-header`: + * + * ```html + * + * ``` + * + * #### List of effects + * + * **blend-background** + * Fades in/out two background elements by applying CSS opacity based on scroll position. + * You can use this effect to smoothly change the background color or image of the header. + * For example, using the mixin `--app-header-background-rear-layer` lets you assign a different + * background when the header is condensed: + * + * ```css + * app-header { + * background-color: red; + * --app-header-background-rear-layer: { + * /* The header is blue when condensed *\/ + * background-color: blue; + * }; + * } + * ``` + * + * **fade-background** + * Upon scrolling past a threshold, this effect will trigger an opacity transition to + * fade in/out the backgrounds. Compared to the `blend-background` effect, + * this effect doesn't interpolate the opacity based on scroll position. + * + * + * **parallax-background** + * A simple parallax effect that vertically translates the backgrounds based on a fraction + * of the scroll position. For example: + * + * ```css + * app-header { + * --app-header-background-front-layer: { + * background-image: url(...); + * }; + * } + * ``` + * ```html + * + * App name + * + * ``` + * + * The fraction determines how far the background moves relative to the scroll position. + * This value can be assigned via the `scalar` config value and it is typically a value + * between 0 and 1 inclusive. If `scalar=0`, the background doesn't move away from the header. + * + * **resize-title** + * Progressively interpolates the size of the title from the element with the `main-title` attribute + * to the element with the `condensed-title` attribute as the header condenses. For example: + * + * ```html + * + * + *

App name

+ *
+ * + *

App name

+ *
+ *
+ * ``` + * + * **resize-snapped-title** + * Upon scrolling past a threshold, this effect fades in/out the titles using opacity transitions. + * Similarly to `resize-title`, the `main-title` and `condensed-title` elements must be placed in the + * light DOM. + * + * **waterfall** + * Toggles the shadow property in app-header to create a sense of depth (as recommended in the + * MD spec) between the header and the underneath content. You can change the shadow by + * customizing the `--app-header-shadow` mixin. For example: + * + * ```css + * app-header { + * --app-header-shadow: { + * box-shadow: inset 0px 5px 2px -3px rgba(0, 0, 0, 0.2); + * }; + * } + * ``` + * + * ```html + * + * + *

App name

+ *
+ *
+ * ``` + * + * **material** + * Installs the waterfall, resize-title, blend-background and parallax-background effects. + * + * ### Content attributes + * + * Attribute | Description | Default + * ----------|---------------------|---------------------------------------- + * `sticky` | Element that remains at the top when the header condenses. | The first app-toolbar in the light DOM. + * + * + * ## Styling + * + * Mixin | Description | Default + * ------|-------------|---------- + * `--app-header-background-front-layer` | Applies to the front layer of the background. | {} + * `--app-header-background-rear-layer` | Applies to the rear layer of the background. | {} + * `--app-header-shadow` | Applies to the shadow. | {} + */ +interface AppHeaderElement extends Polymer.Element, Polymer.AppScrollEffectsBehavior, Polymer.AppLayoutBehavior { + + /** + * If true, the header will automatically collapse when scrolling down. + * That is, the `sticky` element remains visible when the header is fully + * condensed whereas the rest of the elements will collapse below `sticky` + * element. + * + * By default, the `sticky` element is the first toolbar in the light DOM: + * + * ```html + * + * This toolbar remains on top + * + * + * + * ``` + * + * Additionally, you can specify which toolbar or element remains visible in + * condensed mode by adding the `sticky` attribute to that element. For + * example: if we want the last toolbar to remain visible, we can add the + * `sticky` attribute to it. + * + * ```html + * + * + * + * This toolbar remains on top + * + * ``` + * + * Note the `sticky` element must be a direct child of `app-header`. + */ + condenses: boolean|null|undefined; + + /** + * Mantains the header fixed at the top so it never moves away. + */ + fixed: boolean|null|undefined; + + /** + * Slides back the header when scrolling back up. + */ + reveals: boolean|null|undefined; + + /** + * Displays a shadow below the header. + */ + shadow: boolean|null|undefined; + + /** + * A cached offsetHeight of the current element. + */ + _height: number; + + /** + * The distance in pixels the header will be translated to when scrolling. + */ + _dHeight: number; + + /** + * The offsetTop of `_stickyEl` + */ + _stickyElTop: number; + + /** + * A reference to the element that remains visible when the header condenses. + */ + _stickyElRef: HTMLElement|null; + + /** + * The header's top value used for the `transformY` + */ + _top: number; + + /** + * The current scroll progress. + */ + _progress: number; + _wasScrollingDown: boolean; + _initScrollTop: number; + _initTimestamp: number; + _lastTimestamp: number; + _lastScrollTop: number; + + /** + * The distance the header is allowed to move away. + */ + readonly _maxHeaderTop: any; + + /** + * Returns a reference to the sticky element. + */ + readonly _stickyEl: HTMLElement|null; + + /** + * Updates the scroll state. + * + * @param forceUpdate (default: false) + */ + _updateScrollState(scrollTop: number, forceUpdate?: boolean): void; + + /** + * Returns true if the current element is on the screen. + * That is, visible in the current viewport. + */ + isOnScreen(): boolean; + + /** + * Returns true if there's content below the current element. + */ + isContentBelow(): boolean; + _getDOMRef(id: any): any; + _updateLayoutStates(): void; + _configChanged(): void; + + /** + * Returns true if the current header is allowed to move as the user scrolls. + */ + _mayMove(): boolean; + + /** + * Returns true if the current header will condense based on the size of the + * header and the `consenses` property. + */ + willCondense(): boolean; + + /** + * Transforms the header. + */ + _transformHeader(y: number): void; + _clamp(v: any, min: any, max: any): any; + _ensureBgContainers(): void; + + /** + * Returns an object containing the progress value of the scroll effects + * and the top position of the header. + */ + getScrollState(): object|null; +} + +interface HTMLElementTagNameMap { + "app-header": AppHeaderElement; +} diff --git a/bower_components/app-layout/app-header/app-header.html b/bower_components/app-layout/app-header/app-header.html new file mode 100644 index 00000000..314022d5 --- /dev/null +++ b/bower_components/app-layout/app-header/app-header.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header/demo/blend-background-1.html b/bower_components/app-layout/app-header/demo/blend-background-1.html new file mode 100644 index 00000000..4412728f --- /dev/null +++ b/bower_components/app-layout/app-header/demo/blend-background-1.html @@ -0,0 +1,111 @@ + + + + + + + + + + app-header demo + + + + + + + + + + + + + + + + + + + +

What is material? — Environment

+ +
+ +

What is material?

+
+
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/blend-background-2.html b/bower_components/app-layout/app-header/demo/blend-background-2.html new file mode 100644 index 00000000..a5f913c7 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/blend-background-2.html @@ -0,0 +1,115 @@ + + + + + + + + + + app-header demo + + + + + + + + + + + + + + + + + + + +

What is material? — Environment

+ +
+ +

What is material?

+
+
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/blend-background-3.html b/bower_components/app-layout/app-header/demo/blend-background-3.html new file mode 100644 index 00000000..15793c9d --- /dev/null +++ b/bower_components/app-layout/app-header/demo/blend-background-3.html @@ -0,0 +1,111 @@ + + + + + + + + + + app-header demo + + + + + + + + + + + + + + + + + + + +

What is material? — Environment

+ +
+ +

What is material?

+
+
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/contacts.html b/bower_components/app-layout/app-header/demo/contacts.html new file mode 100644 index 00000000..581df5a9 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/contacts.html @@ -0,0 +1,123 @@ + + + + + + + + Contacts Demo + + + + + + + + + + + + + + + + + + + + +
Pharrell Williams
+ + +
+ + +
Pharrell Williams
+
+
+ + + + + + + + + diff --git a/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html b/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html new file mode 100644 index 00000000..06754340 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html @@ -0,0 +1,83 @@ + + + + + + + + + + app-header demo + + + + + + + + + + + + + + + + + + + + +

+ +
+ + + TAB 1 + TAB 2 + TAB 3 + +
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html b/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html new file mode 100644 index 00000000..168ce4c8 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html @@ -0,0 +1,90 @@ + + + + + + + + + + app-header demo + + + + + + + + + + + + + + + + + + + + +

+ +
+ + + TAB 1 + TAB 2 + TAB 3 + +
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/give.html b/bower_components/app-layout/app-header/demo/give.html new file mode 100644 index 00000000..b7be7f10 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/give.html @@ -0,0 +1,116 @@ + + + + + + + + + + app-header demo + + + + + + + + + + + + + + + + + + + +

GiveDirectly

+ +
+

GiveDirectly

+
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/index.html b/bower_components/app-layout/app-header/demo/index.html new file mode 100644 index 00000000..7cf003ee --- /dev/null +++ b/bower_components/app-layout/app-header/demo/index.html @@ -0,0 +1,48 @@ + + + + + + app-header demos + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header/demo/music.html b/bower_components/app-layout/app-header/demo/music.html new file mode 100644 index 00000000..7b3c2b7b --- /dev/null +++ b/bower_components/app-layout/app-header/demo/music.html @@ -0,0 +1,337 @@ + + + + + + + + Music Demo + + + + + + + + + + + + + + + + + + + + + + +
+

GIRL

+
+
Pharrell Williams
+
+ + Girl is the second studio album by American recording artist and record producer Pharrell Williams. The album was released on March 3, 2014, through Williams' label i Am Other and Columbia Records. + + +
+
1
+
Marilyn Monroe
+
5:51
+ +
+ +
+
2
+
Brand New
+
4:31
+ +
+ +
+
3
+
Hunter
+
4:00
+ +
+ +
+
4
+
Gush
+
3:54
+ +
+ +
+
5
+
Happy (From "Despicable Me 2")
+
3:52
+ +
+ +
+
6
+
Come Get It Bae
+
3:21
+ +
+ +
+
7
+
Gust of Wind
+
4:45
+ +
+ +
+
8
+
Lost Queen
+
7:56
+ +
+ +
+
9
+
Know Who You Are
+
3:56
+ +
+ +
+
10
+
It Girl
+
4:49
+ +
+ +
+
11
+
Marilyn Monroe
+
5:51
+ +
+ +
+
12
+
Brand New
+
4:31
+ +
+ +
+
13
+
Hunter
+
4:00
+ +
+ +
+
14
+
Gush
+
3:54
+ +
+ +
+
15
+
Happy (From "Despicable Me 2")
+
3:52
+ +
+ +
+
16
+
Come Get It Bae
+
3:21
+ +
+ +
+
17
+
Gust of Wind
+
4:45
+ +
+ +
+
18
+
Lost Queen
+
7:56
+ +
+ +
+
19
+
Know Who You Are
+
3:56
+ +
+ +
+
20
+
It Girl
+
4:49
+ +
+
+ + + + + + +
+ +
+
+ + + + + diff --git a/bower_components/app-layout/app-header/demo/no-effects.html b/bower_components/app-layout/app-header/demo/no-effects.html new file mode 100644 index 00000000..aa569670 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/no-effects.html @@ -0,0 +1,66 @@ + + + + + + + + + + app-header demo that doesn't use any effects + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header/demo/notes.html b/bower_components/app-layout/app-header/demo/notes.html new file mode 100644 index 00000000..95770ee2 --- /dev/null +++ b/bower_components/app-layout/app-header/demo/notes.html @@ -0,0 +1,172 @@ + + + + + + + + Notes Demo + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + +
Notes
+ +
+
+ + + + + diff --git a/bower_components/app-layout/app-header/test/app-header.html b/bower_components/app-layout/app-header/test/app-header.html new file mode 100644 index 00000000..eb70666f --- /dev/null +++ b/bower_components/app-layout/app-header/test/app-header.html @@ -0,0 +1,539 @@ + + + + + + test for app-header + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-header/test/index.html b/bower_components/app-layout/app-header/test/index.html new file mode 100644 index 00000000..d155e2a3 --- /dev/null +++ b/bower_components/app-layout/app-header/test/index.html @@ -0,0 +1,25 @@ + + + + + + app-header tests + + + + + + diff --git a/bower_components/app-layout/app-layout-behavior/app-layout-behavior.d.ts b/bower_components/app-layout/app-layout-behavior/app-layout-behavior.d.ts new file mode 100644 index 00000000..b20340ae --- /dev/null +++ b/bower_components/app-layout/app-layout-behavior/app-layout-behavior.d.ts @@ -0,0 +1,32 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-layout-behavior/app-layout-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + interface AppLayoutBehavior extends Polymer.IronResizableBehavior { + attached(): void; + _appResetLayoutHandler(e: any): void; + _updateLayoutStates(): void; + + /** + * Resets the layout. If you changed the size of this element via CSS + * you can notify the changes by either firing the `iron-resize` event + * or calling `resetLayout` directly. + */ + resetLayout(): void; + _notifyLayoutChanged(): void; + _notifyDescendantResize(): void; + } + + const AppLayoutBehavior: object; +} diff --git a/bower_components/app-layout/app-layout-behavior/app-layout-behavior.html b/bower_components/app-layout/app-layout-behavior/app-layout-behavior.html new file mode 100644 index 00000000..3599960e --- /dev/null +++ b/bower_components/app-layout/app-layout-behavior/app-layout-behavior.html @@ -0,0 +1,88 @@ + + + + + + diff --git a/bower_components/app-layout/app-layout.d.ts b/bower_components/app-layout/app-layout.d.ts new file mode 100644 index 00000000..b1e0a642 --- /dev/null +++ b/bower_components/app-layout/app-layout.d.ts @@ -0,0 +1,19 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-layout.html + */ + +/// +/// +/// +/// +/// +/// +/// +/// + diff --git a/bower_components/app-layout/app-layout.html b/bower_components/app-layout/app-layout.html new file mode 100644 index 00000000..c7443361 --- /dev/null +++ b/bower_components/app-layout/app-layout.html @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/README.md b/bower_components/app-layout/app-scroll-effects/README.md new file mode 100644 index 00000000..016d40f7 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/README.md @@ -0,0 +1,84 @@ +# Scroll effects + +`Polymer.AppScrollEffectsBehavior` provides an interface that allows an element to use scrolls effects. + +### Importing the app-layout effects + +app-layout provides a set of scroll effects that can be used by explicitly importing `app-scroll-effects.html`: + +```html + +``` + +The scroll effects can also be used by individually importing `app-layout/app-scroll-effects/effects/[effectName].html`. +For example: + +```html + +``` + +### Consuming effects + +Effects can be consumed via the `effects` property. For example: + +```html + +``` + +### Creating scroll effects + +You may want to create a custom scroll effect if you need to modify the CSS of an element +based on the scroll position. + +A scroll effect definition is an object with `setUp()`, `tearDown()` and `run()` functions. + +To register the effect, you can use `Polymer.AppLayout.registerEffect(effectName, effectDef)` +For example, let's define an effect that resizes the header's logo: + +```js +Polymer.AppLayout.registerEffect('resizable-logo', { + setUp: function(config) { + // the effect's config is passed to the setUp. + this._fxResizeLogo = { logo: Polymer.dom(this).querySelector('[logo]') }; + }, + + run: function(progress) { + // the progress of the effect + this.transform('scale3d(' + progress + ', '+ progress +', 1)', this._fxResizeLogo.logo); + }, + + tearDown: function() { + // clean up and reset of states + delete this._fxResizeLogo; + } +}); +``` +Now, you can consume the effect: + +```html + + + +``` + +### Imperative API + +```js +var logoEffect = appHeader.createEffect('resizable-logo', effectConfig); +// run the effect: logoEffect.run(progress); +// tear down the effect: logoEffect.tearDown(); +``` + +### Configuring effects + +For effects installed via the `effects` property, their configuration can be set +via the `effectsConfig` property. For example: + +```html + + +``` + +All effects have a `startsAt` and `endsAt` config property. They specify at what +point the effect should start and end. This value goes from 0 to 1 inclusive. diff --git a/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.d.ts b/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.d.ts new file mode 100644 index 00000000..9165cd7f --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.d.ts @@ -0,0 +1,269 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/app-scroll-effects-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * `Polymer.AppScrollEffectsBehavior` provides an interface that allows an + * element to use scrolls effects. + * + * ### Importing the app-layout effects + * + * app-layout provides a set of scroll effects that can be used by explicitly + * importing `app-scroll-effects.html`: + * + * ```html + * + * ``` + * + * The scroll effects can also be used by individually importing + * `app-layout/app-scroll-effects/effects/[effectName].html`. For example: + * + * ```html + * + * ``` + * + * ### Consuming effects + * + * Effects can be consumed via the `effects` property. For example: + * + * ```html + * + * ``` + * + * ### Creating scroll effects + * + * You may want to create a custom scroll effect if you need to modify the CSS + * of an element based on the scroll position. + * + * A scroll effect definition is an object with `setUp()`, `tearDown()` and + * `run()` functions. + * + * To register the effect, you can use + * `Polymer.AppLayout.registerEffect(effectName, effectDef)` For example, let's + * define an effect that resizes the header's logo: + * + * ```js + * Polymer.AppLayout.registerEffect('resizable-logo', { + * setUp: function(config) { + * // the effect's config is passed to the setUp. + * this._fxResizeLogo = { logo: Polymer.dom(this).querySelector('[logo]') }; + * }, + * + * run: function(progress) { + * // the progress of the effect + * this.transform('scale3d(' + progress + ', '+ progress +', 1)', + * this._fxResizeLogo.logo); + * }, + * + * tearDown: function() { + * // clean up and reset of states + * delete this._fxResizeLogo; + * } + * }); + * ``` + * Now, you can consume the effect: + * + * ```html + * + * + * + * ``` + * + * ### Imperative API + * + * ```js + * var logoEffect = appHeader.createEffect('resizable-logo', effectConfig); + * // run the effect: logoEffect.run(progress); + * // tear down the effect: logoEffect.tearDown(); + * ``` + * + * ### Configuring effects + * + * For effects installed via the `effects` property, their configuration can be + * set via the `effectsConfig` property. For example: + * + * ```html + * + * + * ``` + * + * All effects have a `startsAt` and `endsAt` config property. They specify at + * what point the effect should start and end. This value goes from 0 to 1 + * inclusive. + */ + interface AppScrollEffectsBehavior extends Polymer.IronScrollTargetBehavior { + + /** + * A space-separated list of the effects names that will be triggered when + * the user scrolls. e.g. `waterfall parallax-background` installs the + * `waterfall` and `parallax-background`. + */ + effects: string|null|undefined; + + /** + * An object that configurates the effects installed via the `effects` + * property. e.g. + * ```js + * element.effectsConfig = { + * "blend-background": { + * "startsAt": 0.5 + * } + * }; + * ``` + * Every effect has at least two config properties: `startsAt` and + * `endsAt`. These properties indicate when the event should start and end + * respectively and relative to the overall element progress. So for + * example, if `blend-background` starts at `0.5`, the effect will only + * start once the current element reaches 0.5 of its progress. In this + * context, the progress is a value in the range of `[0, 1]` that + * indicates where this element is on the screen relative to the viewport. + */ + effectsConfig: object|null|undefined; + + /** + * Disables CSS transitions and scroll effects on the element. + */ + disabled: boolean|null|undefined; + + /** + * Allows to set a `scrollTop` threshold. When greater than 0, + * `thresholdTriggered` is true only when the scroll target's `scrollTop` + * has reached this value. + * + * For example, if `threshold = 100`, `thresholdTriggered` is true when + * the `scrollTop` is at least `100`. + */ + threshold: number|null|undefined; + + /** + * True if the `scrollTop` threshold (set in `scrollTopThreshold`) has + * been reached. + */ + readonly thresholdTriggered: boolean|null|undefined; + + /** + * List of effects handlers that will take place during scroll. + */ + _effectsRunFn: Array|null; + + /** + * List of the effects definitions installed via the `effects` property. + */ + _effects: Array|null; + + /** + * The clamped value of `_scrollTop`. + */ + readonly _clampedScrollTop: any; + + /** + * Overrides the `_scrollHandler`. + */ + _scrollHandler(): void; + + /** + * Updates the scroll state. This method should be overridden + * by the consumer of this behavior. + */ + _updateScrollState(scrollTop: number): void; + + /** + * Returns true if the current element is on the screen. + * That is, visible in the current viewport. This method should be + * overridden by the consumer of this behavior. + */ + isOnScreen(): boolean; + + /** + * Returns true if there's content below the current element. This method + * should be overridden by the consumer of this behavior. + */ + isContentBelow(): boolean; + detached(): void; + + /** + * Creates an effect object from an effect's name that can be used to run + * effects programmatically. + * + * @param effectName The effect's name registered via `Polymer.AppLayout.registerEffect`. + * @param effectConfig The effect config object. (Optional) + * @returns An effect object with the following functions: + * + * * `effect.setUp()`, Sets up the requirements for the effect. + * This function is called automatically before the `effect` function + * returns. + * * `effect.run(progress, y)`, Runs the effect given a `progress`. + * * `effect.tearDown()`, Cleans up any DOM nodes or element references + * used by the effect. + * + * Example: + * ```js + * var parallax = element.createEffect('parallax-background'); + * // runs the effect + * parallax.run(0.5, 0); + * ``` + */ + createEffect(effectName: string, effectConfig?: object|null): object|null; + + /** + * Called when `effects` or `effectsConfig` changes. + */ + _effectsChanged(effects: any, effectsConfig: any, isAttached: any): void; + + /** + * Forces layout + */ + _layoutIfDirty(): any; + + /** + * Returns an effect object bound to the current context. + * + * @param effectsConfig The effect config object if the effect accepts config values. (Optional) + */ + _boundEffect(effectDef: object|null, effectsConfig?: object|null): any; + + /** + * Sets up the effects. + */ + _setUpEffect(): void; + + /** + * Tears down the effects. + */ + _tearDownEffects(): void; + + /** + * Runs the effects. + * + * @param p The progress + * @param y The top position of the current element relative to the viewport. + */ + _runEffects(p: number, y: number): void; + + /** + * Override this method to return a reference to a node in the local DOM. + * The node is consumed by a scroll effect. + * + * @param id The id for the node. + */ + _getDOMRef(id: string): void; + _getUndefinedMsg(effectName: any): any; + } + + const AppScrollEffectsBehavior: object; +} diff --git a/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html b/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html new file mode 100644 index 00000000..d374952c --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html @@ -0,0 +1,399 @@ + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/app-scroll-effects.d.ts b/bower_components/app-layout/app-scroll-effects/app-scroll-effects.d.ts new file mode 100644 index 00000000..2d293163 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/app-scroll-effects.d.ts @@ -0,0 +1,18 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/app-scroll-effects.html + */ + +/// +/// +/// +/// +/// +/// +/// + diff --git a/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html b/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html new file mode 100644 index 00000000..d61258fe --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/blend-background.d.ts b/bower_components/app-layout/app-scroll-effects/effects/blend-background.d.ts new file mode 100644 index 00000000..9443adb6 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/blend-background.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/blend-background.html + */ + +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/blend-background.html b/bower_components/app-layout/app-scroll-effects/effects/blend-background.html new file mode 100644 index 00000000..21733949 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/blend-background.html @@ -0,0 +1,42 @@ + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/fade-background.d.ts b/bower_components/app-layout/app-scroll-effects/effects/fade-background.d.ts new file mode 100644 index 00000000..7b59f041 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/fade-background.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/fade-background.html + */ + +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/fade-background.html b/bower_components/app-layout/app-scroll-effects/effects/fade-background.html new file mode 100644 index 00000000..7c013b5a --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/fade-background.html @@ -0,0 +1,53 @@ + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/material.d.ts b/bower_components/app-layout/app-scroll-effects/effects/material.d.ts new file mode 100644 index 00000000..33208370 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/material.d.ts @@ -0,0 +1,16 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/material.html + */ + +/// +/// +/// +/// +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/material.html b/bower_components/app-layout/app-scroll-effects/effects/material.html new file mode 100644 index 00000000..780cb94c --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/material.html @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/parallax-background.d.ts b/bower_components/app-layout/app-scroll-effects/effects/parallax-background.d.ts new file mode 100644 index 00000000..a6060106 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/parallax-background.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/parallax-background.html + */ + +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html b/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html new file mode 100644 index 00000000..7f2512cb --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html @@ -0,0 +1,60 @@ + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.d.ts b/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.d.ts new file mode 100644 index 00000000..07f8febc --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/resize-snapped-title.html + */ + +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html b/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html new file mode 100644 index 00000000..1c503516 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html @@ -0,0 +1,66 @@ + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/resize-title.d.ts b/bower_components/app-layout/app-scroll-effects/effects/resize-title.d.ts new file mode 100644 index 00000000..bb9871bc --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/resize-title.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/resize-title.html + */ + +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/resize-title.html b/bower_components/app-layout/app-scroll-effects/effects/resize-title.html new file mode 100644 index 00000000..d68057b8 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/resize-title.html @@ -0,0 +1,96 @@ + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/effects/waterfall.d.ts b/bower_components/app-layout/app-scroll-effects/effects/waterfall.d.ts new file mode 100644 index 00000000..b424ab99 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/waterfall.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-scroll-effects/effects/waterfall.html + */ + +/// + diff --git a/bower_components/app-layout/app-scroll-effects/effects/waterfall.html b/bower_components/app-layout/app-scroll-effects/effects/waterfall.html new file mode 100644 index 00000000..a78a229e --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/effects/waterfall.html @@ -0,0 +1,26 @@ + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html b/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html new file mode 100644 index 00000000..eae16f0e --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html @@ -0,0 +1,233 @@ + + + + + + test for app-scroll-effects-behavior + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/blend-background.html b/bower_components/app-layout/app-scroll-effects/test/blend-background.html new file mode 100644 index 00000000..36f8807f --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/blend-background.html @@ -0,0 +1,95 @@ + + + + + + test for the blend-background effect + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/fade-background.html b/bower_components/app-layout/app-scroll-effects/test/fade-background.html new file mode 100644 index 00000000..e9063c07 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/fade-background.html @@ -0,0 +1,104 @@ + + + + + + test for the fade-background effect + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/index.html b/bower_components/app-layout/app-scroll-effects/test/index.html new file mode 100644 index 00000000..6ed69596 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/index.html @@ -0,0 +1,37 @@ + + + + + + app-scroll-effects tests + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/parallax-background.html b/bower_components/app-layout/app-scroll-effects/test/parallax-background.html new file mode 100644 index 00000000..41c7f399 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/parallax-background.html @@ -0,0 +1,94 @@ + + + + + + test for the parallax-background effect + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html b/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html new file mode 100644 index 00000000..017c08a9 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html @@ -0,0 +1,98 @@ + + + + + + test for the resize-snappped-title effect + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/resize-title.html b/bower_components/app-layout/app-scroll-effects/test/resize-title.html new file mode 100644 index 00000000..098339d8 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/resize-title.html @@ -0,0 +1,109 @@ + + + + + + test for the resize-title effect + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/utils.html b/bower_components/app-layout/app-scroll-effects/test/utils.html new file mode 100644 index 00000000..476a31e9 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/utils.html @@ -0,0 +1,43 @@ + + diff --git a/bower_components/app-layout/app-scroll-effects/test/waterfall.html b/bower_components/app-layout/app-scroll-effects/test/waterfall.html new file mode 100644 index 00000000..41d7f776 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/waterfall.html @@ -0,0 +1,92 @@ + + + + + + test for the waterfall effect + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-scroll-effects/test/x-container.html b/bower_components/app-layout/app-scroll-effects/test/x-container.html new file mode 100644 index 00000000..cf8cb417 --- /dev/null +++ b/bower_components/app-layout/app-scroll-effects/test/x-container.html @@ -0,0 +1,89 @@ + + + + + + + + + + diff --git a/bower_components/app-layout/app-toolbar/README.md b/bower_components/app-layout/app-toolbar/README.md new file mode 100644 index 00000000..46502b09 --- /dev/null +++ b/bower_components/app-layout/app-toolbar/README.md @@ -0,0 +1,43 @@ +## <app-toolbar> + +app-toolbar is a horizontal toolbar containing items that can be used for +label, navigation, search and actions. + +### Example + +Add a title to the toolbar. + +```html + +
App name
+
+``` + +Add a button to the left and right side of the toolbar. + +```html + + +
App name
+ +
+``` + +You can use the attributes `top-item` or `bottom-item` to completely fit an element +to the top or bottom of the toolbar respectively. + +### Content attributes + +Attribute | Description +---------------------|--------------------------------------------------------- +`main-title` | The main title element. +`condensed-title` | The title element if used inside a condensed app-header. +`spacer` | Adds a left margin of `64px`. +`bottom-item` | Sticks the element to the bottom of the toolbar. +`top-item` | Sticks the element to the top of the toolbar. + +### Styling + +Custom property | Description | Default +-----------------------------|------------------------------|----------------------- +`--app-toolbar-font-size` | Toolbar font size | 20px diff --git a/bower_components/app-layout/app-toolbar/app-toolbar.d.ts b/bower_components/app-layout/app-toolbar/app-toolbar.d.ts new file mode 100644 index 00000000..7df2954d --- /dev/null +++ b/bower_components/app-layout/app-toolbar/app-toolbar.d.ts @@ -0,0 +1,62 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-toolbar/app-toolbar.html + */ + +/// +/// + +/** + * app-toolbar is a horizontal toolbar containing items that can be used for + * label, navigation, search and actions. + * + * ### Example + * + * Add a title to the toolbar. + * + * ```html + * + *
App name
+ *
+ * ``` + * + * Add a button to the left and right side of the toolbar. + * + * ```html + * + * + *
App name
+ * + *
+ * ``` + * + * You can use the attributes `top-item` or `bottom-item` to completely fit an element + * to the top or bottom of the toolbar respectively. + * + * ### Content attributes + * + * Attribute | Description + * ---------------------|--------------------------------------------------------- + * `main-title` | The main title element. + * `condensed-title` | The title element if used inside a condensed app-header. + * `spacer` | Adds a left margin of `64px`. + * `bottom-item` | Sticks the element to the bottom of the toolbar. + * `top-item` | Sticks the element to the top of the toolbar. + * + * ### Styling + * + * Custom property | Description | Default + * -----------------------------|------------------------------|----------------------- + * `--app-toolbar-font-size` | Toolbar font size | 20px + */ +interface AppToolbarElement extends Polymer.Element { +} + +interface HTMLElementTagNameMap { + "app-toolbar": AppToolbarElement; +} diff --git a/bower_components/app-layout/app-toolbar/app-toolbar.html b/bower_components/app-layout/app-toolbar/app-toolbar.html new file mode 100644 index 00000000..d42e477b --- /dev/null +++ b/bower_components/app-layout/app-toolbar/app-toolbar.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-toolbar/demo/index.html b/bower_components/app-layout/app-toolbar/demo/index.html new file mode 100644 index 00000000..3b222648 --- /dev/null +++ b/bower_components/app-layout/app-toolbar/demo/index.html @@ -0,0 +1,98 @@ + + + + + + + + + app-toolbar demo + + + + + + + + + + + + + + + + Random Text + + + + + + + +
App name
+
+ + +
App name
+
+ + + +
App name
+
+ + + +
App name
+ +
+ + + +
App name
+
+ + + +
App name
+ +
+ + + diff --git a/bower_components/app-layout/app-toolbar/test/app-toolbar.html b/bower_components/app-layout/app-toolbar/test/app-toolbar.html new file mode 100644 index 00000000..4837be93 --- /dev/null +++ b/bower_components/app-layout/app-toolbar/test/app-toolbar.html @@ -0,0 +1,85 @@ + + + + + + test for app-toolbar + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/app-toolbar/test/index.html b/bower_components/app-layout/app-toolbar/test/index.html new file mode 100644 index 00000000..f5c507dd --- /dev/null +++ b/bower_components/app-layout/app-toolbar/test/index.html @@ -0,0 +1,25 @@ + + + + + + app-toolbar tests + + + + + + diff --git a/bower_components/app-layout/bower.json b/bower_components/app-layout/bower.json new file mode 100644 index 00000000..f3901b62 --- /dev/null +++ b/bower_components/app-layout/bower.json @@ -0,0 +1,68 @@ +{ + "name": "app-layout", + "version": "2.1.0", + "description": "A set of layout elements for your app", + "authors": [ + "The Polymer Authors" + ], + "license": "https://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/app-layout", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/app-layout" + }, + "main": ["app-layout.html", "app-scroll-effects/effects/waterfall.html"], + "demos": { + "Demos": "demo/index.html" + }, + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-media-query": "PolymerElements/iron-media-query#1 - 2", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "iron-scroll-target-behavior": "PolymerElements/iron-scroll-target-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "es6-promise": "stefanpenner/es6-promise#4.1.1", + "font-roboto": "PolymerElements/font-roboto#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-list": "PolymerElements/iron-list#1 - 2", + "iron-pages": "PolymerElements/iron-pages#1 - 2", + "iron-scroll-threshold": "PolymerElements/iron-scroll-threshold#1 - 2", + "paper-fab": "PolymerElements/paper-fab#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-listbox": "PolymerElements/paper-listbox#1 - 2", + "paper-progress": "PolymerElements/paper-progress#1 - 2", + "paper-spinner": "PolymerElements/paper-spinner#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-tabs": "PolymerElements/paper-tabs#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "test-fixture": "^1.0.0", + "polymer": "^1.7.1", + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "private": true, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/app-layout/demo/contacts.json b/bower_components/app-layout/demo/contacts.json new file mode 100644 index 00000000..954b3905 --- /dev/null +++ b/bower_components/app-layout/demo/contacts.json @@ -0,0 +1,11002 @@ +[ + { + "index": 0, + "name": "Liz Grimes", + "first": "Isabel", + "last": "Conrad", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/enda/73.jpg", + "boolean": true, + "guid": "8ea90ed8-83e1-4a28-a371-e5c0e1d0e021", + "integer": 28, + "date": "Sun Aug 14 1994 03:27:03 GMT-0700 (PDT)", + "shortText": "est ad reprehenderit occaecat consequat", + "mediumText": "Non duis commodo dolore et esse non adipisicing nisi tempor. Nisi culpa adipisicing quis dolore amet anim nulla aliqua excepteur labore. Adipisicing fugiat anim commodo velit in nisi ex exercitation.", + "longText": "Id aliqua ullamco ullamco commodo ipsum Lorem. Amet ut eu voluptate cillum occaecat Lorem et cillum excepteur ullamco mollit enim. Ea nostrud dolore culpa nulla nostrud ex voluptate anim laborum esse commodo sunt. Velit laboris pariatur labore dolore occaecat enim fugiat qui. Sit in eu ex aute minim deserunt qui consectetur laboris nostrud ad quis qui id.\r\n", + "address": "3 Vista Place", + "city": "Longbranch", + "state": "North Carolina", + "zip": 64470, + "country": "Lesotho", + "email": "isabelconrad@scentric.com", + "phone": "(817) 426-2901", + "color": "rgb(76,120,108)" + }, + { + "index": 1, + "name": "Frazier Lara", + "first": "Jocelyn", + "last": "Wooten", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guillogo/73.jpg", + "boolean": false, + "guid": "7017f9b1-690e-4c9d-8eee-f63285ca5148", + "integer": 10, + "date": "Tue May 24 1988 14:10:20 GMT-0700 (PDT)", + "shortText": "consectetur culpa adipisicing voluptate enim", + "mediumText": "Occaecat in do proident et deserunt quis commodo veniam occaecat mollit. Nulla enim elit nulla excepteur.", + "longText": "Laboris nisi cupidatat occaecat officia ea sunt ex deserunt mollit. Est laboris in amet eu reprehenderit nisi minim. Id nulla fugiat ad nostrud nostrud tempor adipisicing. Minim duis esse irure nostrud cillum cupidatat. Cupidatat proident labore id duis deserunt cupidatat do incididunt sint minim consectetur. Ea Lorem reprehenderit fugiat culpa dolore consequat exercitation labore sit sunt culpa laborum dolore.\r\nAd nisi incididunt ea ex ullamco magna tempor. Ipsum fugiat commodo reprehenderit deserunt in adipisicing. Reprehenderit aliqua mollit ut enim. Veniam ipsum occaecat nisi ut pariatur dolor magna ea tempor eiusmod adipisicing aliqua adipisicing. Fugiat irure laborum incididunt nostrud cupidatat consectetur.\r\nEx esse cupidatat exercitation aute eu est excepteur tempor consectetur elit elit amet. Ullamco sunt aliqua veniam eu eiusmod esse sit. Incididunt aute non ex irure in deserunt. Nulla sit nulla sunt quis Lorem tempor officia exercitation nulla esse ipsum. Non qui sint ullamco minim ut consequat consectetur Lorem consequat.\r\nEiusmod irure aliqua magna non ea enim incididunt. Irure ea sunt deserunt laboris qui. Officia nostrud aute commodo sit sunt nisi irure officia cillum tempor id do tempor et. Est cupidatat esse consequat laboris culpa minim exercitation laboris eu. Ea incididunt nulla fugiat est pariatur do velit consectetur. Veniam dolor mollit veniam dolore ea consequat qui dolore deserunt adipisicing officia officia eu est. Velit dolor nostrud veniam reprehenderit consectetur quis ad consequat aliquip dolore labore.\r\nIn nisi non sunt elit aute nisi elit in adipisicing excepteur ex. Anim nulla ex tempor qui nulla dolor aute fugiat et sit ipsum sunt eiusmod sunt. Irure est dolore proident qui est adipisicing minim. Sint consequat adipisicing aute amet adipisicing adipisicing. Do labore ea enim occaecat cupidatat et. Elit deserunt anim commodo ullamco. Consequat elit excepteur nisi mollit ea.\r\n", + "address": "2 Catherine Street", + "city": "Healy", + "state": "Connecticut", + "zip": 41121, + "country": "Mongolia", + "email": "jocelynwooten@scentric.com", + "phone": "(901) 441-2582", + "color": "rgb(134,91,60)" + }, + { + "index": 2, + "name": "Dora Griffith", + "first": "Valentine", + "last": "Meyer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iboldurev/73.jpg", + "boolean": true, + "guid": "8c3bd9ad-e8d6-4ea4-85e6-d145295f3f91", + "integer": 99, + "date": "Sat Feb 17 1973 03:45:57 GMT-0800 (PST)", + "shortText": "veniam qui", + "mediumText": "Nulla ex consectetur dolore dolore cillum. Proident dolor cupidatat consequat irure enim nostrud aliqua fugiat tempor commodo et eiusmod irure. Lorem deserunt eiusmod laborum velit tempor do nostrud reprehenderit exercitation amet occaecat eiusmod aliqua sint. Dolore commodo ex ea id veniam ullamco et cupidatat dolore. Sit nostrud minim irure sint eiusmod ea est est ipsum eiusmod.", + "longText": "Ullamco eiusmod velit labore sunt deserunt excepteur commodo sunt anim incididunt ullamco adipisicing labore Lorem. Est id nostrud ad eiusmod ad ex aliqua quis irure dolore nostrud. Aute nostrud magna tempor ex pariatur cupidatat occaecat cillum ipsum reprehenderit cillum aute proident ex. Lorem ea ipsum quis adipisicing sit exercitation ipsum. Consectetur amet nulla id amet exercitation labore minim eu nisi ullamco id do. Cillum laborum sint elit laborum eiusmod irure nulla irure.\r\nId officia mollit commodo do laborum ut officia officia. Irure reprehenderit aliqua mollit pariatur. Exercitation laborum reprehenderit fugiat nisi pariatur anim mollit magna aliquip eu labore culpa reprehenderit. Irure ad quis magna laboris nisi commodo.\r\nPariatur ea exercitation labore laborum amet et mollit. Magna tempor laboris officia commodo exercitation consectetur ullamco esse. Non cillum laborum et et nisi. Culpa laboris ad amet est minim qui ea. Consequat nulla voluptate incididunt enim qui proident consectetur et adipisicing mollit. Esse elit incididunt excepteur deserunt reprehenderit quis irure eu Lorem tempor. Qui ea pariatur laborum culpa nulla eu consectetur exercitation.\r\nDo nisi occaecat eiusmod ad cupidatat nostrud deserunt ea ex ullamco do exercitation. Sit aliqua magna Lorem tempor commodo duis duis eu ex. Do labore voluptate proident elit ad id. Lorem laboris nostrud esse occaecat. Deserunt elit nisi et labore fugiat consectetur excepteur esse culpa. Amet ipsum sunt minim sint laboris incididunt. Esse excepteur excepteur mollit ea ipsum exercitation.\r\nIn dolore nulla eiusmod exercitation culpa in voluptate voluptate ipsum dolore proident. Minim enim veniam occaecat deserunt eiusmod consectetur consectetur elit id magna laboris reprehenderit nisi. Magna enim cupidatat non laborum minim anim consequat. Exercitation cupidatat tempor irure consequat.\r\n", + "address": "4 Whitty Lane", + "city": "Nicholson", + "state": "South Carolina", + "zip": 41343, + "country": "Germany", + "email": "valentinemeyer@scentric.com", + "phone": "(956) 428-2996", + "color": "rgb(201,142,97)" + }, + { + "index": 3, + "name": "Shelley Molina", + "first": "Silva", + "last": "Alexander", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/smalonso/73.jpg", + "boolean": true, + "guid": "37224065-ac71-4716-be9a-108ecddfee47", + "integer": 16, + "date": "Wed Aug 02 1995 07:03:12 GMT-0700 (PDT)", + "shortText": "laboris do velit ipsum non", + "mediumText": "Eiusmod ut magna sint ut dolor magna anim ipsum non velit. Occaecat reprehenderit ex aliquip consequat. Eu dolor non in pariatur dolore minim.", + "longText": "Cillum ullamco ullamco sunt sunt incididunt ea commodo enim nulla irure irure. Magna sunt incididunt do duis ad. Magna pariatur dolore commodo duis reprehenderit commodo aliqua anim sit deserunt veniam aute officia. Consequat non deserunt deserunt cupidatat ad do culpa. Labore aliqua aliqua ex sint ut.\r\nEnim ullamco elit eu mollit id ullamco. Tempor velit amet anim sint est ea consequat commodo ea. Aliquip magna veniam pariatur sint ullamco est aliquip do reprehenderit qui. Anim nulla occaecat commodo quis velit fugiat veniam ut.\r\nEst nisi proident id incididunt occaecat aliquip in cillum reprehenderit non et. Incididunt consectetur fugiat aute excepteur eu reprehenderit ex laboris dolore dolor reprehenderit mollit. Amet laboris ipsum ullamco id pariatur commodo excepteur est sint cillum incididunt.\r\n", + "address": "2 Berkeley Place", + "city": "Manila", + "state": "Michigan", + "zip": 22009, + "country": "Thailand", + "email": "silvaalexander@scentric.com", + "phone": "(823) 415-2224", + "color": "rgb(113,105,251)" + }, + { + "index": 4, + "name": "Rita Lopez", + "first": "Hopkins", + "last": "Wong", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taherrapee/73.jpg", + "boolean": false, + "guid": "1ea0922e-179d-4057-abeb-d8fe63e55da8", + "integer": 94, + "date": "Wed Sep 21 2011 04:03:55 GMT-0700 (PDT)", + "shortText": "ad esse ullamco", + "mediumText": "Fugiat nostrud et consectetur mollit labore incididunt est duis nostrud id tempor veniam ad. Nulla voluptate est irure ipsum commodo do nostrud. Minim aliqua voluptate officia sit tempor nulla esse pariatur eu. Ipsum deserunt est magna veniam adipisicing nisi aute officia.", + "longText": "Officia do consequat ullamco est voluptate voluptate. Esse tempor irure aute ullamco. Aliqua veniam esse mollit veniam elit consectetur aliqua anim. Irure aute nostrud voluptate tempor consequat ut elit elit ipsum cupidatat. Aliqua duis duis minim tempor mollit qui. Labore id adipisicing laborum commodo. Tempor aliqua velit excepteur velit laborum Lorem id amet pariatur.\r\nEt nisi reprehenderit aliquip dolore ea ut aliquip duis laboris pariatur tempor cillum. Pariatur quis mollit aliquip ut proident sunt. Est aute laboris tempor officia. Sint anim qui officia deserunt amet Lorem occaecat aliquip. In eiusmod elit anim id elit eiusmod ex veniam sit sit adipisicing aliquip.\r\nQuis irure fugiat labore ex pariatur fugiat est irure. Deserunt commodo in nostrud sit Lorem amet non quis commodo eu. Nulla voluptate id enim commodo fugiat esse qui magna nostrud occaecat. Excepteur sunt cupidatat esse consequat sit voluptate ipsum magna excepteur deserunt sunt laboris labore minim. Labore ipsum ullamco dolore sint ut aliqua id nisi sunt id ipsum ea aute magna. Consequat qui commodo velit esse anim reprehenderit ea anim ut duis et veniam deserunt. Consequat amet dolor esse cupidatat incididunt exercitation laboris esse in labore.\r\nCulpa commodo commodo veniam elit elit. Consequat proident deserunt voluptate ea ut consectetur sit ex ex proident dolore nisi. Mollit est mollit sint eiusmod mollit voluptate adipisicing tempor cupidatat nisi duis dolor irure id.\r\nEu velit aliquip consectetur mollit. Officia ipsum incididunt cupidatat occaecat consequat adipisicing. Aute cupidatat quis quis consectetur aliqua. Consequat ut eu exercitation elit Lorem incididunt sint commodo ut consectetur eu non. Pariatur pariatur ut sunt aliquip exercitation nostrud mollit cillum nostrud ea cillum.\r\n", + "address": "4 Tompkins Avenue", + "city": "Movico", + "state": "Maine", + "zip": 89440, + "country": "Seychelles", + "email": "hopkinswong@scentric.com", + "phone": "(814) 488-2063", + "color": "rgb(133,126,66)" + }, + { + "index": 5, + "name": "Wagner Shelton", + "first": "Harriet", + "last": "Sherman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ismailmayat/73.jpg", + "boolean": true, + "guid": "46a4a1bc-97af-46e0-aedd-c3cc42e6b8f5", + "integer": 27, + "date": "Wed Jul 07 2010 05:48:57 GMT-0700 (PDT)", + "shortText": "do dolore tempor labore", + "mediumText": "Enim exercitation incididunt minim eiusmod est enim qui ex sit. Sit duis eiusmod officia nostrud ullamco aliquip. Minim ipsum ad fugiat dolore sint nisi tempor. Anim minim sint nisi est ea id cillum adipisicing ullamco fugiat velit aute.", + "longText": "Do veniam eiusmod sint irure. Ad aute magna consequat sint enim duis ad laboris mollit dolore esse ex do labore. Minim pariatur incididunt velit nostrud proident minim sit ad ex Lorem dolore. Esse do do sit veniam officia non sunt aliquip non exercitation id aliquip voluptate elit.\r\n", + "address": "3 Stratford Road", + "city": "Makena", + "state": "Kansas", + "zip": 21389, + "country": "Chad", + "email": "harrietsherman@scentric.com", + "phone": "(887) 497-3612", + "color": "rgb(195,89,110)" + }, + { + "index": 6, + "name": "Bethany Adkins", + "first": "Stacie", + "last": "Bartlett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/carlyson/73.jpg", + "boolean": false, + "guid": "17aac57d-4644-44d8-8a6b-b2eedd3d42dc", + "integer": 49, + "date": "Sun Mar 14 1999 23:13:33 GMT-0800 (PST)", + "shortText": "deserunt", + "mediumText": "Lorem dolor sint labore minim eu ullamco cupidatat ea velit minim. Sint eiusmod dolor nisi adipisicing pariatur esse sint anim labore consectetur irure exercitation cillum. Quis labore nulla occaecat incididunt qui ex dolor voluptate sunt eiusmod sunt proident occaecat excepteur. Dolore quis magna adipisicing esse enim occaecat.", + "longText": "Aute labore ipsum id proident occaecat cillum magna commodo excepteur Lorem et ea incididunt. Labore reprehenderit minim ipsum id aliquip fugiat elit. Sit in esse aute mollit id elit sint amet minim commodo id. Esse tempor aliqua enim amet anim commodo non anim nisi.\r\n", + "address": "4 Luquer Street", + "city": "Newcastle", + "state": "Iowa", + "zip": 72190, + "country": "Uruguay", + "email": "staciebartlett@scentric.com", + "phone": "(957) 412-3261", + "color": "rgb(164,84,221)" + }, + { + "index": 7, + "name": "Angelia Rowe", + "first": "Charlene", + "last": "Stevens", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thewillbeard/73.jpg", + "boolean": true, + "guid": "f3c6a195-d50e-479f-9c2a-c54c2a629852", + "integer": 13, + "date": "Sat Jan 04 1992 04:10:22 GMT-0800 (PST)", + "shortText": "eu reprehenderit aliquip minim", + "mediumText": "Fugiat ipsum ex irure dolore. Reprehenderit laborum proident commodo ut qui ea reprehenderit duis occaecat nostrud aliqua.", + "longText": "Esse ullamco veniam aliquip cillum aliqua veniam in consequat eu cupidatat. Ad amet reprehenderit sit anim dolor sit amet labore magna irure consequat duis cupidatat cillum. Voluptate aute consectetur ea elit labore nulla reprehenderit excepteur sit laboris sit.\r\nUllamco aliqua adipisicing velit adipisicing nulla anim cillum sunt mollit labore. Et anim aliquip adipisicing non. Exercitation consectetur nisi aute ipsum eiusmod nisi dolore. Excepteur deserunt reprehenderit occaecat sunt eu culpa ullamco proident qui excepteur. Sit proident sunt elit aliqua sit dolore deserunt officia fugiat laborum eiusmod nisi est dolor.\r\nQuis fugiat duis ullamco mollit do. Cillum cupidatat magna do id proident ut nisi do nostrud fugiat cillum incididunt. Est enim tempor labore tempor qui ipsum reprehenderit aliquip commodo quis est aute eiusmod.\r\nFugiat deserunt esse laborum labore sit nisi mollit eu dolore elit non ullamco. Velit id et quis aute esse culpa deserunt nostrud. Quis consequat consectetur fugiat ex aute sit proident aliqua dolor laboris et. Ipsum aliquip minim nostrud nostrud sunt quis eiusmod ea fugiat anim sint est duis aute.\r\nVelit aliqua cillum laboris sit officia deserunt incididunt. Consequat labore ad incididunt incididunt excepteur ex ad sunt dolore nulla qui pariatur. Cupidatat aute qui velit ipsum mollit. Aliqua veniam velit elit nostrud do consequat in in ea ea. Proident ea in qui adipisicing tempor irure qui eu ex dolore deserunt. Ipsum voluptate nulla id id culpa consectetur cillum nulla amet. Amet elit fugiat dolore anim laborum irure aute.\r\n", + "address": "4 Tiffany Place", + "city": "Dargan", + "state": "Vermont", + "zip": 31427, + "country": "Burkina Faso", + "email": "charlenestevens@scentric.com", + "phone": "(946) 404-2511", + "color": "rgb(99,147,74)" + }, + { + "index": 8, + "name": "Knox Rivers", + "first": "Reyes", + "last": "Hartman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tgormtx/73.jpg", + "boolean": true, + "guid": "88e71d65-5a7a-4973-a1dc-9f5c1df485c8", + "integer": 41, + "date": "Sat May 28 1994 15:27:35 GMT-0700 (PDT)", + "shortText": "incididunt ut", + "mediumText": "Quis voluptate eu ea et id voluptate.", + "longText": "Nostrud esse proident laborum et ex. Cupidatat proident ex velit id fugiat nulla exercitation Lorem velit ullamco exercitation excepteur. Occaecat reprehenderit occaecat in in deserunt. Ea quis laborum cupidatat ullamco aliquip. Duis proident ad mollit do eiusmod non minim sint voluptate nisi in ea deserunt consequat. Nostrud aliqua voluptate sit aliqua. Do laborum dolor ex commodo irure.\r\nIrure ipsum laboris elit ullamco labore cillum consequat et esse reprehenderit culpa elit sint consectetur. Aute exercitation excepteur Lorem do occaecat voluptate ullamco ullamco commodo sint deserunt. Esse nulla laboris non dolore adipisicing fugiat enim Lorem cillum do id proident quis eu. Ullamco officia consectetur aliqua labore cupidatat anim sint. Ipsum aute aliquip magna nostrud sint officia id irure. Non ad non reprehenderit id sunt cupidatat esse tempor officia proident occaecat qui mollit ut.\r\nExcepteur excepteur ullamco aute deserunt magna laboris ipsum ullamco laborum laboris nostrud. Excepteur sunt fugiat aliquip nostrud magna cillum commodo voluptate amet ad laboris. Officia minim sint dolor nostrud fugiat. Consequat velit sint irure amet cillum enim sunt pariatur amet mollit aute ipsum cupidatat do.\r\n", + "address": "3 Wythe Place", + "city": "Coldiron", + "state": "Nebraska", + "zip": 76971, + "country": "Greenland", + "email": "reyeshartman@scentric.com", + "phone": "(910) 533-3832", + "color": "rgb(99,55,193)" + }, + { + "index": 9, + "name": "Warren Scott", + "first": "Alissa", + "last": "Duncan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/73.jpg", + "boolean": true, + "guid": "dfc23019-ab40-4597-91fe-74bcf60a9e2b", + "integer": 54, + "date": "Sun Feb 08 2009 21:57:53 GMT-0800 (PST)", + "shortText": "ullamco aliquip veniam", + "mediumText": "Officia est sint velit magna reprehenderit.", + "longText": "Eu ipsum ipsum nisi voluptate sit voluptate occaecat sunt laborum do aute. Et id amet consequat culpa sunt. Quis aliquip adipisicing velit officia adipisicing cupidatat. Sint Lorem et consequat consectetur. Anim adipisicing ullamco dolore pariatur aliquip quis aliqua qui cillum amet amet fugiat.\r\nCupidatat fugiat exercitation duis proident in esse eiusmod dolore nisi ut. Anim dolor minim elit est ex eiusmod est. In elit pariatur non non veniam nostrud consectetur.\r\n", + "address": "4 Henderson Walk", + "city": "Oley", + "state": "Florida", + "zip": 38878, + "country": "Fiji", + "email": "alissaduncan@scentric.com", + "phone": "(876) 584-3746", + "color": "rgb(218,58,52)" + }, + { + "index": 10, + "name": "Mai Shepherd", + "first": "Christina", + "last": "Craft", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mwarkentin/73.jpg", + "boolean": false, + "guid": "7b829e11-da52-4302-a645-4711c9af7df2", + "integer": 40, + "date": "Sat Apr 18 1992 20:34:36 GMT-0700 (PDT)", + "shortText": "culpa laboris aliquip veniam nostrud", + "mediumText": "Dolore voluptate esse eiusmod ea reprehenderit aliqua sunt magna pariatur tempor veniam ad reprehenderit nostrud. Deserunt esse fugiat enim nisi in fugiat eu. Enim sit deserunt nostrud adipisicing laboris voluptate eu do non exercitation culpa deserunt. Ullamco cillum occaecat cillum adipisicing cupidatat deserunt qui. Tempor nisi duis irure cillum occaecat ullamco cillum quis enim exercitation proident proident excepteur.", + "longText": "Quis incididunt in cillum in sit deserunt excepteur ipsum magna consectetur nulla. Incididunt cillum reprehenderit ut cupidatat proident officia commodo eiusmod id nulla aliquip aliquip anim pariatur. Sint tempor do elit nisi minim consequat cupidatat non mollit ex. Laboris ullamco laborum pariatur ea exercitation eu tempor. Aute incididunt voluptate ut nulla veniam sint. Eu aliquip labore aliquip dolore sunt reprehenderit elit labore elit aliqua reprehenderit duis quis. Esse qui pariatur nostrud nostrud irure nulla aliqua non pariatur.\r\nReprehenderit sunt consequat laborum eu tempor ad Lorem commodo consequat. Incididunt officia est incididunt aliquip mollit pariatur enim qui pariatur non anim veniam aute ullamco. Fugiat nisi aliqua ex in pariatur cillum aliquip nisi elit dolor laborum labore do sit.\r\nConsectetur non sit aliqua esse est aliqua. Deserunt consequat Lorem dolore proident elit occaecat in. Esse commodo aute minim adipisicing enim eiusmod aliqua magna ea magna. Qui proident id adipisicing non ea non quis sit. Et dolore dolore labore non consequat.\r\nNostrud qui irure laborum ipsum occaecat consectetur laboris. Sunt irure eiusmod irure labore cillum veniam enim. Do aliquip proident et amet sunt laborum dolore amet reprehenderit exercitation do id duis. Sunt magna labore minim nostrud enim laborum mollit ullamco amet laborum mollit magna consequat. Sunt eiusmod cupidatat tempor duis exercitation ad minim laboris. Magna dolor nulla et ut eiusmod incididunt Lorem anim magna. Ipsum sit sint quis eu deserunt nulla nisi ad in amet proident.\r\n", + "address": "3 Ocean Court", + "city": "Fairmount", + "state": "New Jersey", + "zip": 95002, + "country": "Viet Nam", + "email": "christinacraft@scentric.com", + "phone": "(842) 503-2389", + "color": "rgb(181,253,141)" + }, + { + "index": 11, + "name": "Flora Tran", + "first": "Burt", + "last": "Landry", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/herkulano/73.jpg", + "boolean": false, + "guid": "3efeb9cc-5705-4e17-b800-42ee8e354d30", + "integer": 64, + "date": "Fri Apr 30 1982 14:23:53 GMT-0700 (PDT)", + "shortText": "nostrud ipsum", + "mediumText": "Excepteur mollit velit nulla nisi culpa irure laboris cillum sunt ullamco. Laborum minim excepteur dolore ea labore Lorem eiusmod adipisicing.", + "longText": "Laborum exercitation id cupidatat voluptate cupidatat laboris id. Do exercitation dolor anim occaecat officia. Fugiat esse et aliqua incididunt consequat.\r\n", + "address": "2 Butler Street", + "city": "Walker", + "state": "Wisconsin", + "zip": 56241, + "country": "France, Metropolitan", + "email": "burtlandry@scentric.com", + "phone": "(914) 461-3510", + "color": "rgb(95,147,193)" + }, + { + "index": 12, + "name": "Crawford Jordan", + "first": "Baldwin", + "last": "Hammond", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jonny_moon/73.jpg", + "boolean": true, + "guid": "758e8af9-6a3c-47e1-a062-b49e6263b6e8", + "integer": 80, + "date": "Sat Sep 22 2012 18:24:55 GMT-0700 (PDT)", + "shortText": "excepteur eiusmod sit irure", + "mediumText": "Ad esse ex exercitation aliqua cillum. Magna ut est nisi nisi aute enim officia excepteur aliqua. Excepteur aliqua dolor sunt mollit esse officia.", + "longText": "Esse fugiat laborum mollit labore exercitation dolor magna esse anim qui in. Excepteur proident exercitation duis laboris nostrud irure fugiat labore aute ut pariatur ea. Adipisicing labore ad laborum id et ad. Lorem laboris nulla velit pariatur ipsum. Cillum reprehenderit anim dolore mollit dolor. Ut velit veniam pariatur nisi dolor anim ut laborum cillum ut ad.\r\n", + "address": "3 Preston Court", + "city": "Vincent", + "state": "Washington", + "zip": 47560, + "country": "Uganda", + "email": "baldwinhammond@scentric.com", + "phone": "(800) 559-2165", + "color": "rgb(175,176,59)" + }, + { + "index": 13, + "name": "Stanley Williams", + "first": "Laverne", + "last": "Hampton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alyssalowww/73.jpg", + "boolean": false, + "guid": "718262e9-01e7-4016-b068-6edd11a14a38", + "integer": 62, + "date": "Sat Sep 27 1975 16:25:15 GMT-0700 (PDT)", + "shortText": "tempor", + "mediumText": "Sunt voluptate magna ullamco cupidatat laborum anim irure.", + "longText": "Duis magna nulla laborum reprehenderit ullamco ipsum irure. Exercitation veniam Lorem Lorem est commodo. In et occaecat et quis veniam quis esse ea anim cupidatat labore.\r\nDeserunt commodo est consectetur velit ullamco eu do nisi consequat culpa sunt. Nulla aliquip veniam anim reprehenderit irure occaecat sit nulla. Culpa Lorem in culpa adipisicing eiusmod aute cillum fugiat voluptate deserunt.\r\nDo do enim et tempor minim aliqua incididunt aute nulla ullamco fugiat magna occaecat in. Mollit aute sunt eu culpa enim magna nulla pariatur cillum amet quis consectetur et laboris. Ex officia nulla dolor ea aliqua est voluptate do Lorem aliquip irure. Lorem velit ad eiusmod aliquip. Amet irure amet consequat est aliqua quis.\r\nEt Lorem magna sunt aliquip dolore minim. Adipisicing ea ipsum dolore commodo labore eiusmod nisi consectetur. Reprehenderit culpa officia culpa mollit. Eu nostrud ullamco elit nostrud incididunt. Reprehenderit officia fugiat est sunt sunt consectetur Lorem ex magna reprehenderit.\r\nElit laboris eiusmod sunt cupidatat elit qui irure adipisicing culpa voluptate laborum eiusmod nisi. Ullamco magna minim enim ea veniam incididunt laborum aliqua qui minim commodo laborum. Consectetur nisi adipisicing voluptate velit ex. Id anim est sunt elit dolore qui incididunt aute voluptate consectetur exercitation. Sint tempor est laboris laborum incididunt fugiat dolor. Laboris est duis ullamco laborum eiusmod incididunt aliquip aute.\r\n", + "address": "4 Varet Street", + "city": "Breinigsville", + "state": "Oregon", + "zip": 54164, + "country": "Antarctica", + "email": "lavernehampton@scentric.com", + "phone": "(988) 478-3842", + "color": "rgb(225,78,134)" + }, + { + "index": 14, + "name": "Key Keith", + "first": "Kirsten", + "last": "Chang", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rafelorden/73.jpg", + "boolean": true, + "guid": "1e75c394-1574-4168-a33d-c5895f7af76d", + "integer": 47, + "date": "Tue Sep 18 1990 08:36:33 GMT-0700 (PDT)", + "shortText": "quis proident ea", + "mediumText": "Do voluptate et reprehenderit aute tempor exercitation ipsum enim quis elit dolore in quis. Veniam sunt dolore excepteur consectetur. Lorem occaecat laborum elit veniam ad commodo sint ullamco exercitation aliquip.", + "longText": "Nulla esse et consectetur in nulla nostrud laboris reprehenderit minim sit sunt nisi est fugiat. Duis elit id sit excepteur amet aute culpa incididunt. Nisi veniam ut nisi mollit sunt proident Lorem reprehenderit. Et voluptate occaecat veniam et proident ipsum non cillum aliquip laboris ad.\r\n", + "address": "4 Ryder Avenue", + "city": "Wheatfields", + "state": "Illinois", + "zip": 28092, + "country": "Kiribati", + "email": "kirstenchang@scentric.com", + "phone": "(882) 531-2818", + "color": "rgb(118,83,134)" + }, + { + "index": 15, + "name": "Lizzie Oneal", + "first": "Mercado", + "last": "Hancock", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wim1k/73.jpg", + "boolean": false, + "guid": "8fbb9f3a-64df-4069-9aec-0d3dd0c2dd3f", + "integer": 22, + "date": "Thu Jan 02 1986 03:48:22 GMT-0800 (PST)", + "shortText": "cupidatat pariatur consequat incididunt", + "mediumText": "Non do dolore consequat nostrud. Ullamco dolore sunt anim incididunt aliqua minim mollit ad consectetur do ipsum.", + "longText": "Enim consequat dolor nostrud culpa cillum consequat mollit eu sint est commodo. Sit cillum minim incididunt id mollit eiusmod non nostrud sunt proident aliquip. Excepteur occaecat amet ullamco deserunt. Nisi elit excepteur commodo nisi anim incididunt consequat laboris exercitation pariatur occaecat deserunt sint. Aliquip in non quis enim cillum eiusmod duis pariatur elit proident consequat nostrud proident culpa.\r\nMollit culpa adipisicing laboris occaecat commodo id incididunt aliquip adipisicing ex ipsum elit elit adipisicing. Officia voluptate reprehenderit elit dolore. Consequat culpa officia id ut irure eu Lorem eu mollit excepteur adipisicing aute occaecat amet. Anim reprehenderit enim deserunt velit elit ut amet. Deserunt voluptate eiusmod labore tempor duis in est consequat adipisicing excepteur sunt consequat ea. Occaecat eiusmod fugiat do elit sunt.\r\nDeserunt fugiat velit mollit do culpa sunt in enim qui tempor anim esse sunt. Do eu fugiat culpa ex aliquip quis exercitation. Culpa non culpa duis magna officia dolore officia minim culpa non. Enim voluptate minim ullamco eiusmod dolore do sit non quis et anim incididunt aliqua tempor.\r\n", + "address": "4 Sumner Place", + "city": "Ruckersville", + "state": "West Virginia", + "zip": 65886, + "country": "Ecuador", + "email": "mercadohancock@scentric.com", + "phone": "(996) 557-3624", + "color": "rgb(244,178,231)" + }, + { + "index": 16, + "name": "Bentley Guthrie", + "first": "Obrien", + "last": "Bruce", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rpeezy/73.jpg", + "boolean": false, + "guid": "720e6095-dc65-4bef-b8bf-56b3e43c13e8", + "integer": 33, + "date": "Sat Sep 09 1989 04:51:19 GMT-0700 (PDT)", + "shortText": "nulla officia ullamco anim", + "mediumText": "Incididunt ut irure quis non ad ut tempor et labore enim Lorem eiusmod. Sit laborum elit duis pariatur occaecat fugiat labore. Laborum velit incididunt dolor minim aute aute. Cillum id amet ut in. Eiusmod tempor et fugiat do qui dolor aliquip labore mollit tempor.", + "longText": "Labore et amet excepteur ea id. Anim mollit cupidatat nulla in sint. Nulla nulla proident Lorem minim consequat ea quis. Non Lorem mollit duis aliquip labore est. Eiusmod excepteur do do eiusmod officia id nisi proident consequat. Occaecat anim eiusmod dolore nostrud culpa adipisicing commodo anim incididunt laborum.\r\nDuis occaecat qui ullamco in magna nisi ad ex. Qui laboris tempor nulla magna. Ut est nulla laboris mollit do id qui esse exercitation culpa officia exercitation. Ipsum mollit amet ad exercitation ut eu Lorem reprehenderit magna. Veniam laboris officia ea voluptate sint anim qui est quis mollit qui occaecat cillum. Officia magna deserunt eu laboris culpa proident.\r\nElit est eiusmod non dolor nisi tempor et in deserunt eiusmod veniam ea quis. Elit magna anim pariatur ea do elit in duis cupidatat incididunt quis qui laboris. Ad ad ex officia proident ullamco consequat labore nulla consequat enim.\r\nProident ut elit quis anim reprehenderit amet deserunt eiusmod sit sit velit proident deserunt sunt. Est quis magna fugiat in nisi proident. Adipisicing Lorem sint enim esse laboris sit laborum.\r\n", + "address": "2 Chester Street", + "city": "Finzel", + "state": "Mississippi", + "zip": 52444, + "country": "Bulgaria", + "email": "obrienbruce@scentric.com", + "phone": "(923) 461-2312", + "color": "rgb(52,103,133)" + }, + { + "index": 17, + "name": "Marsh Cleveland", + "first": "Pearl", + "last": "Moran", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sectronov/73.jpg", + "boolean": true, + "guid": "9b385d87-2847-44f4-acae-a47970ff7c9f", + "integer": 8, + "date": "Tue Apr 26 1988 18:46:50 GMT-0700 (PDT)", + "shortText": "reprehenderit in reprehenderit dolor", + "mediumText": "Ex cillum in minim ullamco laborum. Dolor dolore adipisicing dolore ad.", + "longText": "Voluptate fugiat veniam do minim culpa. Proident irure mollit est exercitation est. Tempor pariatur proident excepteur aliquip cupidatat quis id ut fugiat excepteur tempor aliquip ea non. Consectetur ipsum Lorem reprehenderit laboris enim reprehenderit duis irure eu sint sit magna eu cupidatat. Sunt sunt laborum mollit ex fugiat ex quis. Proident quis labore occaecat est laborum quis ea irure ipsum magna ad nisi ut. Proident est culpa aliquip ullamco irure eu duis duis occaecat Lorem amet qui.\r\nMinim in adipisicing nostrud Lorem esse anim aute ullamco adipisicing ut enim magna. Cupidatat non dolor pariatur deserunt consectetur cillum dolor adipisicing. In proident commodo non exercitation cupidatat enim culpa officia voluptate. Et in sunt dolore mollit aute commodo sint et adipisicing. Labore velit esse occaecat esse commodo tempor veniam officia Lorem proident aute.\r\nEx magna aliqua adipisicing non esse labore non duis. Excepteur cupidatat eiusmod laborum laborum in quis reprehenderit id irure. Incididunt laboris qui adipisicing eu.\r\n", + "address": "4 Portland Avenue", + "city": "Henrietta", + "state": "Rhode Island", + "zip": 53764, + "country": "American Samoa", + "email": "pearlmoran@scentric.com", + "phone": "(964) 543-3486", + "color": "rgb(168,119,234)" + }, + { + "index": 18, + "name": "Maude Perry", + "first": "Underwood", + "last": "Barton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/starburst1977/73.jpg", + "boolean": true, + "guid": "0f6385b5-481e-4ddf-9ad4-b91f8e951922", + "integer": 33, + "date": "Wed Apr 23 2014 06:02:36 GMT-0700 (PDT)", + "shortText": "do pariatur quis consequat ex", + "mediumText": "Sunt magna elit adipisicing sint quis minim. Commodo irure pariatur esse deserunt proident enim incididunt et deserunt sit consectetur enim anim. Esse pariatur non magna culpa cillum culpa dolore ad id ex dolor deserunt. Dolore qui amet cupidatat et pariatur fugiat voluptate eiusmod duis commodo. Proident adipisicing irure eu aliquip nisi.", + "longText": "Nisi ipsum excepteur eiusmod irure velit. Elit ad nulla culpa eu sint veniam deserunt cupidatat. Esse culpa nisi velit aliquip esse consequat dolor amet velit culpa labore est do.\r\nLorem consectetur ad proident Lorem aute eiusmod sit incididunt. Pariatur sit cupidatat enim fugiat sunt ut. Aliquip mollit fugiat ea non laboris exercitation amet Lorem cillum.\r\n", + "address": "3 Mermaid Avenue", + "city": "Deputy", + "state": "Georgia", + "zip": 58449, + "country": "Angola", + "email": "underwoodbarton@scentric.com", + "phone": "(946) 414-3492", + "color": "rgb(112,197,153)" + }, + { + "index": 19, + "name": "Knapp Pratt", + "first": "Solomon", + "last": "Lloyd", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mocabyte/73.jpg", + "boolean": true, + "guid": "895a8dab-d037-46f4-b822-795814f418d9", + "integer": 72, + "date": "Thu Apr 13 1978 08:14:17 GMT-0800 (PST)", + "shortText": "nisi quis", + "mediumText": "Officia id sint exercitation excepteur aliqua enim est id duis occaecat consectetur excepteur. Ea incididunt nulla quis ea ad et ex exercitation laboris sit sit aliquip. Est magna tempor ex commodo id aliquip nostrud aliquip id culpa quis velit excepteur.", + "longText": "Ut nostrud nisi sit sit laboris labore ea ullamco fugiat enim esse. Velit fugiat adipisicing amet amet. Sint cillum eiusmod cillum esse exercitation duis adipisicing incididunt eiusmod culpa laboris eiusmod.\r\nEu cupidatat anim mollit laboris excepteur do in voluptate. In voluptate exercitation proident commodo Lorem id. Laboris cillum dolor et eiusmod do eu. Amet veniam proident in id deserunt mollit incididunt quis exercitation sunt pariatur duis cillum proident. Sunt ad deserunt adipisicing adipisicing consectetur.\r\nLorem reprehenderit deserunt reprehenderit incididunt anim elit aliquip ipsum reprehenderit. Aliqua amet sint mollit fugiat ut est ut tempor aliquip elit laboris. Esse minim qui non aliquip exercitation dolore quis incididunt incididunt. Ullamco cillum excepteur eu duis eu id in commodo.\r\nVelit duis ullamco veniam dolore exercitation aliquip magna veniam et. Excepteur ipsum duis voluptate Lorem in veniam reprehenderit eu deserunt magna reprehenderit. Minim ullamco nostrud irure irure culpa esse. Laboris ad incididunt proident elit sit eiusmod voluptate ad culpa qui duis aute. Cillum ex esse non veniam nulla excepteur quis non.\r\nEiusmod adipisicing Lorem sunt est. Duis reprehenderit esse sint aute. Est dolore cillum minim anim Lorem adipisicing amet fugiat. Esse dolor commodo labore ea nulla ipsum nulla laboris proident consequat duis ex ut minim. Occaecat irure nostrud nulla eiusmod est aliqua proident irure laboris.\r\n", + "address": "4 Glenwood Road", + "city": "Berlin", + "state": "New Mexico", + "zip": 64625, + "country": "Bhutan", + "email": "solomonlloyd@scentric.com", + "phone": "(802) 539-3360", + "color": "rgb(69,68,176)" + }, + { + "index": 20, + "name": "Jodi Tanner", + "first": "Lyons", + "last": "Stevenson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamasifmirza/73.jpg", + "boolean": false, + "guid": "f6a0ef12-6a1e-48a8-990a-da79c0bbf30e", + "integer": 79, + "date": "Tue Feb 11 2003 17:16:18 GMT-0800 (PST)", + "shortText": "et", + "mediumText": "Eu laboris adipisicing nostrud in in officia pariatur irure occaecat ut consequat commodo adipisicing elit.", + "longText": "Ullamco aliquip reprehenderit Lorem id duis ipsum sit exercitation id Lorem consequat enim ea. Aliquip officia minim dolore ea aliqua non. Aliqua cillum ipsum qui commodo non nostrud eiusmod duis commodo officia et nisi. Proident cillum deserunt eiusmod ea nisi quis incididunt id consectetur qui excepteur ad ipsum. Proident non dolor eu laboris proident Lorem aliquip elit sunt eu tempor sint fugiat Lorem.\r\nId mollit veniam amet labore id. Est proident tempor qui excepteur. Ipsum non irure sint minim sint eu cupidatat eu exercitation dolor et.\r\nSunt sunt nulla et mollit eu in amet est do qui ipsum mollit. Cillum voluptate excepteur consectetur sunt laboris tempor sunt laborum mollit veniam incididunt voluptate pariatur laboris. Mollit cupidatat esse aute sunt dolore cillum cillum qui sunt duis consequat anim. Sit ad laboris et do proident ipsum veniam amet dolor. Id elit anim ut et laborum. Dolor aliqua Lorem Lorem consectetur sint sunt.\r\n", + "address": "3 Cropsey Avenue", + "city": "Lewis", + "state": "Arizona", + "zip": 89420, + "country": "Dominica", + "email": "lyonsstevenson@scentric.com", + "phone": "(818) 424-2348", + "color": "rgb(178,99,182)" + }, + { + "index": 21, + "name": "Mamie Crane", + "first": "Swanson", + "last": "Richardson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/benoitboucart/73.jpg", + "boolean": true, + "guid": "66c048df-eefc-4c09-a468-b3044e4e7f11", + "integer": 26, + "date": "Sun Jun 30 2002 05:57:21 GMT-0700 (PDT)", + "shortText": "quis aliquip aliqua", + "mediumText": "Non ad sit sit veniam officia id officia laborum qui irure eiusmod elit reprehenderit. Voluptate cillum mollit adipisicing mollit esse commodo. Labore exercitation voluptate duis pariatur magna labore ex non cillum incididunt eu esse nostrud.", + "longText": "Anim ut amet laboris culpa velit sunt ea sunt. Do anim nisi minim labore. In cillum pariatur ex non minim sint.\r\n", + "address": "3 Aurelia Court", + "city": "Inkerman", + "state": "Texas", + "zip": 10482, + "country": "Egypt", + "email": "swansonrichardson@scentric.com", + "phone": "(810) 406-3416", + "color": "rgb(230,107,202)" + }, + { + "index": 22, + "name": "Cooley Macdonald", + "first": "Aida", + "last": "Hurley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/markwienands/73.jpg", + "boolean": false, + "guid": "466a665b-b7b6-4eae-b404-e9b5a8d1641d", + "integer": 20, + "date": "Sun Jan 05 2014 15:48:57 GMT-0800 (PST)", + "shortText": "incididunt irure", + "mediumText": "Anim incididunt commodo minim voluptate enim proident aute adipisicing dolore reprehenderit commodo reprehenderit ipsum ut.", + "longText": "Id quis elit duis veniam enim cupidatat duis. Dolore proident magna minim reprehenderit Lorem. Velit tempor consequat adipisicing aute cillum exercitation eu sunt dolore.\r\nTempor ex laborum dolore voluptate aliqua in id est non. Eiusmod sunt non in culpa id magna non. Cupidatat voluptate magna aute cupidatat aliqua deserunt ut Lorem duis occaecat magna. Occaecat sit pariatur quis ipsum. Non qui non laboris cupidatat adipisicing.\r\nEst nulla aute veniam deserunt nulla labore reprehenderit reprehenderit sint. Nulla cupidatat laboris tempor labore cillum in excepteur minim laboris quis. Amet voluptate sunt in nostrud excepteur dolor in irure laborum commodo et cupidatat. Aliqua enim incididunt voluptate dolore est exercitation officia labore enim commodo quis veniam aliquip. Esse aliquip do labore eiusmod reprehenderit enim officia officia enim dolore magna dolore. Velit in sit dolore consequat.\r\nAdipisicing ea consequat voluptate proident enim commodo labore. Eu dolore ut amet aute tempor exercitation ad mollit occaecat velit non labore reprehenderit. Aute esse dolore id cillum Lorem eu quis elit exercitation ex esse sint. Sit nostrud non ullamco do esse. Voluptate velit officia eu laboris ut commodo tempor velit. Eiusmod cupidatat nostrud ex veniam sit duis. Proident fugiat laboris quis id dolor reprehenderit.\r\n", + "address": "4 Hall Street", + "city": "Stouchsburg", + "state": "District Of Columbia", + "zip": 32399, + "country": "Chile", + "email": "aidahurley@scentric.com", + "phone": "(975) 451-3272", + "color": "rgb(119,239,85)" + }, + { + "index": 23, + "name": "Snow Blankenship", + "first": "Mccormick", + "last": "Jensen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/menghe/73.jpg", + "boolean": false, + "guid": "961f5da2-2479-4f45-9132-9e89a8bc32e4", + "integer": 70, + "date": "Tue Jan 22 1974 01:18:15 GMT-0700 (PDT)", + "shortText": "aliqua commodo", + "mediumText": "Proident est sunt aliqua cillum ex sit aliquip irure ad. Pariatur dolore cillum nulla qui excepteur deserunt culpa magna consectetur et officia.", + "longText": "Culpa id veniam minim enim nulla ea enim proident. Esse sint ipsum et culpa. Cillum cillum incididunt fugiat occaecat Lorem velit. Quis esse incididunt esse sunt labore nulla. In minim ullamco officia do ad tempor. Sint sunt labore ullamco reprehenderit dolor ullamco ut occaecat.\r\n", + "address": "3 Lewis Place", + "city": "Elizaville", + "state": "Virgin Islands", + "zip": 32784, + "country": "Norfolk Island", + "email": "mccormickjensen@scentric.com", + "phone": "(961) 443-3343", + "color": "rgb(204,198,130)" + }, + { + "index": 24, + "name": "Gabriela Brock", + "first": "Ramona", + "last": "Meyers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/heyanata/73.jpg", + "boolean": false, + "guid": "07133f92-9308-420e-ae7b-e5ecd657aa85", + "integer": 76, + "date": "Sat Sep 15 1984 07:22:38 GMT-0700 (PDT)", + "shortText": "ex duis do", + "mediumText": "Aliqua qui dolore laborum aute culpa eiusmod ipsum incididunt. Incididunt cillum nisi culpa ea. Incididunt reprehenderit Lorem veniam occaecat elit anim mollit deserunt.", + "longText": "Magna nostrud laboris cupidatat sint esse pariatur ut irure sint dolore laborum. Ut id aute dolor laboris. Cillum officia id officia ut. Irure incididunt dolor exercitation eiusmod sunt nostrud labore. Ad do deserunt deserunt ad elit culpa commodo pariatur. Pariatur excepteur et nisi aute. Ex amet irure anim pariatur voluptate pariatur adipisicing dolor eiusmod dolore.\r\nVelit eu consectetur sint nulla culpa laboris ex et esse. Nostrud voluptate nostrud esse nisi proident quis consequat sit commodo consectetur ut. Ea ex irure labore ullamco proident ullamco consequat sit. Ipsum sit adipisicing mollit deserunt.\r\nEst quis ea magna aliquip anim. Cupidatat ea commodo amet tempor laboris commodo eu. Duis qui irure sunt aliquip velit elit. Laboris fugiat anim officia eiusmod enim ut aliqua incididunt eiusmod ad nulla aute esse. Sit in velit amet labore non consequat id id enim labore Lorem.\r\n", + "address": "3 Rodney Street", + "city": "Orin", + "state": "Puerto Rico", + "zip": 60446, + "country": "Japan", + "email": "ramonameyers@scentric.com", + "phone": "(839) 591-3993", + "color": "rgb(236,222,59)" + }, + { + "index": 25, + "name": "Graciela Orr", + "first": "Sharp", + "last": "Lindsay", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/73.jpg", + "boolean": true, + "guid": "0ea67b0a-5ea7-4e07-8d06-48b6e2a00c6e", + "integer": 39, + "date": "Mon May 25 1970 21:04:46 GMT-0700 (PDT)", + "shortText": "ex", + "mediumText": "Aliqua sunt commodo occaecat nisi esse aliqua labore exercitation qui in ut officia laborum ad. Tempor nisi ad aliquip ipsum nostrud nostrud et sint commodo cillum labore. Ullamco qui fugiat consectetur minim consequat cupidatat laboris. Eu irure veniam sint esse adipisicing ipsum do aliqua pariatur.", + "longText": "Tempor Lorem reprehenderit quis exercitation sit sunt labore elit. Laborum incididunt quis deserunt fugiat culpa aliquip irure esse sit excepteur. Elit elit ad et do dolore minim enim.\r\n", + "address": "2 Tech Place", + "city": "Kraemer", + "state": "Maryland", + "zip": 24019, + "country": "Saudi Arabia", + "email": "sharplindsay@scentric.com", + "phone": "(852) 538-3232", + "color": "rgb(218,74,95)" + }, + { + "index": 26, + "name": "Ethel Wood", + "first": "Dina", + "last": "Robbins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bluesix/73.jpg", + "boolean": true, + "guid": "342d8ae0-5eea-403c-9922-a85d39738463", + "integer": 22, + "date": "Sat Jun 03 1978 07:31:03 GMT-0700 (PDT)", + "shortText": "qui", + "mediumText": "Excepteur eu laboris magna cupidatat eiusmod nostrud laborum commodo officia sunt fugiat ad. Aliqua reprehenderit duis est consequat incididunt ullamco.", + "longText": "Pariatur velit exercitation aute adipisicing et enim laborum. Laboris anim nostrud consequat Lorem eu irure non aute eiusmod tempor veniam. Aute amet elit tempor irure occaecat esse labore elit veniam anim ea anim. Consequat excepteur esse mollit tempor mollit aute et sit duis. Labore veniam cillum enim nostrud ea laborum.\r\n", + "address": "2 Plymouth Street", + "city": "Bison", + "state": "Massachusetts", + "zip": 64340, + "country": "Micronesia", + "email": "dinarobbins@scentric.com", + "phone": "(967) 410-2522", + "color": "rgb(158,62,57)" + }, + { + "index": 27, + "name": "Tameka Francis", + "first": "Franco", + "last": "Carrillo", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/w8candice/73.jpg", + "boolean": false, + "guid": "d193f8ac-79ea-4201-9a75-c66cbf504ad5", + "integer": 37, + "date": "Mon Jul 14 1986 03:07:27 GMT-0700 (PDT)", + "shortText": "do aliqua laborum", + "mediumText": "Est incididunt exercitation voluptate culpa ut excepteur voluptate velit est minim nulla. Mollit anim ipsum velit excepteur eu occaecat exercitation. Mollit ipsum commodo aliqua voluptate do incididunt ipsum quis.", + "longText": "Anim voluptate cupidatat labore amet. Ex pariatur duis officia commodo excepteur. Quis dolor esse quis veniam. Non veniam et fugiat quis magna. Cillum ad commodo ex cupidatat labore duis aute est cillum. Ad nostrud duis officia ea proident non veniam qui quis.\r\nEx enim duis Lorem sit adipisicing laboris occaecat amet consectetur labore. Pariatur deserunt qui veniam ad exercitation proident commodo dolore aliqua. Aliquip sit Lorem mollit est culpa sint veniam veniam adipisicing elit eiusmod ipsum deserunt. Sint eiusmod consequat occaecat exercitation commodo qui. Labore et consequat dolor voluptate dolor excepteur in anim aliquip ea ullamco labore exercitation ipsum. Mollit occaecat dolor proident ipsum ad esse mollit qui laboris. Anim reprehenderit nulla magna mollit exercitation labore minim.\r\n", + "address": "2 Harkness Avenue", + "city": "Hollins", + "state": "Oklahoma", + "zip": 57691, + "country": "Liberia", + "email": "francocarrillo@scentric.com", + "phone": "(812) 540-2032", + "color": "rgb(89,84,186)" + }, + { + "index": 28, + "name": "Hendricks Levy", + "first": "Guadalupe", + "last": "Odom", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mbilderbach/73.jpg", + "boolean": false, + "guid": "cb09adfd-ad50-4ada-85f2-9a6da5e61812", + "integer": 51, + "date": "Tue Sep 12 1995 23:12:02 GMT-0700 (PDT)", + "shortText": "laboris non labore elit ea", + "mediumText": "Veniam tempor cillum non deserunt duis aliquip elit velit velit do sunt est ad et. Incididunt anim id dolore reprehenderit Lorem est laborum aliqua. Cupidatat ut irure proident pariatur nulla minim nostrud minim laborum non.", + "longText": "Dolor consectetur eu Lorem ea fugiat culpa dolore magna qui magna mollit. Minim est qui eiusmod incididunt nisi ullamco incididunt irure. Tempor officia amet ea nisi elit sunt nulla dolor non labore officia ipsum sit. Esse tempor duis labore laborum cillum nostrud sunt do quis.\r\nEx quis consequat est laborum eu non consequat exercitation aute proident ea excepteur irure ex. Adipisicing nulla laborum ipsum enim dolore. Reprehenderit labore veniam Lorem qui adipisicing dolore commodo cillum anim reprehenderit cupidatat cupidatat amet.\r\nAliqua est magna incididunt amet sit et ad laboris nostrud. Labore culpa cupidatat aliquip magna tempor elit cillum ad ut irure. Ipsum irure qui ullamco aliqua ex sit do. Ut irure nisi voluptate excepteur nulla deserunt dolor dolore id ut laboris proident pariatur. Consequat est exercitation esse id nulla culpa cupidatat deserunt deserunt nostrud in est nostrud. Incididunt eiusmod non sunt deserunt reprehenderit eiusmod officia cupidatat quis ea cupidatat pariatur dolore.\r\n", + "address": "4 Terrace Place", + "city": "Salunga", + "state": "Ohio", + "zip": 43114, + "country": "Korea (South)", + "email": "guadalupeodom@scentric.com", + "phone": "(902) 544-3976", + "color": "rgb(180,227,238)" + }, + { + "index": 29, + "name": "Porter Mcpherson", + "first": "Mcguire", + "last": "Kerr", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/coreyweb/73.jpg", + "boolean": false, + "guid": "c15b43e1-5b71-49c8-8319-7c6739d3d481", + "integer": 81, + "date": "Tue Jun 05 2012 02:47:02 GMT-0700 (PDT)", + "shortText": "do", + "mediumText": "Qui est labore deserunt velit ut adipisicing quis. Aliquip ex esse enim esse commodo duis non nisi nisi incididunt anim duis sunt magna.", + "longText": "Consequat laborum est irure eiusmod fugiat dolore fugiat do. Consequat occaecat deserunt non consectetur. Do et dolore minim dolore in ex enim.\r\nMinim pariatur tempor sit anim reprehenderit quis laboris elit veniam Lorem ipsum amet. Sunt aute reprehenderit eiusmod sint mollit proident sint veniam. Eu elit amet minim excepteur aliqua esse enim. Dolor nulla magna excepteur id nostrud Lorem magna duis.\r\n", + "address": "4 Myrtle Avenue", + "city": "Waukeenah", + "state": "Nevada", + "zip": 54957, + "country": "Pakistan", + "email": "mcguirekerr@scentric.com", + "phone": "(812) 545-2648", + "color": "rgb(122,207,233)" + }, + { + "index": 30, + "name": "Rosalie Noble", + "first": "Giles", + "last": "Miller", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyshimko/73.jpg", + "boolean": false, + "guid": "490401d1-d8e8-4bd1-866c-b9ddd28804a4", + "integer": 45, + "date": "Sun Apr 21 2002 02:16:55 GMT-0700 (PDT)", + "shortText": "proident ad adipisicing duis non", + "mediumText": "Veniam esse officia laborum pariatur. Esse cillum duis sunt minim nisi irure eu in. Occaecat minim culpa adipisicing do amet in amet ipsum velit minim est. Est quis voluptate deserunt id sunt exercitation reprehenderit duis ad dolor et dolor mollit.", + "longText": "Ex dolor culpa fugiat amet esse Lorem dolor ad anim reprehenderit voluptate adipisicing. Nostrud minim laborum mollit labore Lorem officia dolor Lorem. Et voluptate in nulla id ea est duis velit. Aute adipisicing sint commodo et.\r\nNon deserunt nostrud veniam velit occaecat cupidatat adipisicing exercitation. Anim duis enim enim excepteur non voluptate mollit occaecat sunt adipisicing cillum duis. Adipisicing eiusmod nulla ex minim ipsum.\r\nLabore ea dolore fugiat culpa ad aute veniam sint id nulla sit voluptate. Esse magna cupidatat mollit eiusmod. Consectetur dolor incididunt deserunt veniam veniam voluptate elit do aute officia occaecat aliquip aliqua. Ea irure incididunt ut in elit minim et laborum minim enim culpa est do. Nostrud quis ullamco excepteur amet irure ad exercitation voluptate dolore amet pariatur non nisi.\r\n", + "address": "4 Dakota Place", + "city": "Matheny", + "state": "Montana", + "zip": 48981, + "country": "Guyana", + "email": "gilesmiller@scentric.com", + "phone": "(937) 481-3812", + "color": "rgb(117,82,141)" + }, + { + "index": 31, + "name": "Katrina Stuart", + "first": "Norton", + "last": "Carr", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pavelbuben/73.jpg", + "boolean": false, + "guid": "f9c2cf75-a70b-45c5-8a9c-cbceae872250", + "integer": 77, + "date": "Sun May 09 1993 04:38:21 GMT-0700 (PDT)", + "shortText": "labore", + "mediumText": "Adipisicing tempor ad sit ut anim eiusmod exercitation laboris. Velit pariatur occaecat minim consectetur aliquip nostrud anim.", + "longText": "Commodo anim aliquip nostrud occaecat cupidatat quis tempor aliquip consequat dolore. Ea sit ullamco amet consequat elit. Magna magna amet in reprehenderit adipisicing amet cillum tempor qui nisi ad. Eu veniam ad adipisicing aliquip officia ut occaecat exercitation do ad irure do magna veniam. Reprehenderit nisi voluptate consectetur Lorem eu duis incididunt aliquip irure duis sit ea nostrud id. Reprehenderit reprehenderit ipsum in commodo.\r\nAd excepteur adipisicing aliqua eu veniam ullamco velit eu enim nisi reprehenderit non duis nulla. Voluptate aliqua sit sit duis exercitation ad. Incididunt incididunt quis aliqua eu anim esse reprehenderit ut aliqua. Ea id pariatur dolor dolor minim tempor laboris magna non culpa ut non. Officia Lorem proident elit consectetur excepteur dolor velit id velit minim mollit aliqua qui. Aliquip dolor sint aliqua ex tempor.\r\n", + "address": "3 Estate Road", + "city": "Zortman", + "state": "California", + "zip": 33484, + "country": "Poland", + "email": "nortoncarr@scentric.com", + "phone": "(807) 556-3727", + "color": "rgb(189,210,164)" + }, + { + "index": 32, + "name": "Katy Guzman", + "first": "Marcie", + "last": "Rose", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hafeeskhan/73.jpg", + "boolean": false, + "guid": "0b1f8fd2-2acd-402f-aa66-728b60d1d8ba", + "integer": 62, + "date": "Mon Aug 05 1985 19:37:56 GMT-0700 (PDT)", + "shortText": "elit laborum esse", + "mediumText": "Nulla officia ex elit nulla aliqua magna cillum mollit ad sint. Fugiat consequat officia id ullamco ullamco excepteur aliquip. Occaecat esse eu veniam labore laboris laborum sint laborum esse eiusmod Lorem. Aliquip ex quis et adipisicing sunt cillum pariatur exercitation exercitation fugiat. Est velit anim esse consequat id in nisi adipisicing qui ad ex do non velit.", + "longText": "Amet dolor cillum voluptate occaecat quis cupidatat laborum commodo. Ut et quis ut proident qui do aliquip exercitation non. Ipsum ullamco commodo mollit Lorem do consectetur qui ad in cillum tempor irure consequat.\r\nVeniam laboris minim do exercitation eiusmod ut do sint reprehenderit anim irure proident proident. Quis adipisicing duis qui ut quis veniam dolor non velit consectetur eu voluptate. Duis mollit velit fugiat magna eu ullamco magna irure ipsum est tempor labore eu sint. Cupidatat ullamco nulla dolore quis commodo esse cupidatat quis sunt tempor proident. Labore ullamco ullamco ex Lorem laboris veniam mollit in sint eiusmod.\r\n", + "address": "4 Bedford Place", + "city": "Outlook", + "state": "Marshall Islands", + "zip": 74859, + "country": "Canada", + "email": "marcierose@scentric.com", + "phone": "(968) 546-3854", + "color": "rgb(211,242,218)" + }, + { + "index": 33, + "name": "Lindsay Vega", + "first": "Loraine", + "last": "Castro", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/timmillwood/73.jpg", + "boolean": true, + "guid": "e380ab32-0565-4177-8396-017f4ffea65f", + "integer": 16, + "date": "Thu Aug 30 1984 16:22:17 GMT-0700 (PDT)", + "shortText": "aliquip veniam duis mollit incididunt", + "mediumText": "Ut ea cillum magna nulla eiusmod velit ullamco proident quis quis duis. Culpa aliqua sint excepteur id sint velit. Ex ut consectetur occaecat officia excepteur non sit reprehenderit laboris.", + "longText": "Culpa deserunt adipisicing non anim. Elit do veniam proident incididunt dolore ut et occaecat. Ut reprehenderit commodo irure velit deserunt velit et esse nisi labore officia do nisi quis. Do reprehenderit ex exercitation tempor esse esse cupidatat. Consequat occaecat nisi adipisicing mollit excepteur adipisicing velit nostrud ex do. Et dolor labore exercitation nostrud laboris amet nostrud labore.\r\nAmet aliqua dolore velit sint non. Velit in esse aute esse nulla et quis nulla ut excepteur commodo. Culpa veniam consectetur ut ullamco minim culpa Lorem dolor aute amet qui cillum nulla id.\r\nSint excepteur in culpa occaecat minim deserunt aliquip mollit cupidatat ipsum et mollit ad deserunt. Sunt eu aliquip ut nulla cillum commodo laboris labore nisi ut dolore amet. Magna sunt ipsum ut officia pariatur dolore elit ullamco velit qui Lorem duis. Enim anim quis et incididunt aute sit consectetur. Amet non commodo exercitation quis tempor labore ex do eu et anim voluptate.\r\nIncididunt sit esse fugiat velit incididunt cillum. Est elit do deserunt elit excepteur do. Adipisicing est tempor cillum consequat.\r\nEst consectetur elit ad nisi reprehenderit tempor eiusmod culpa reprehenderit veniam anim. Mollit minim nulla commodo excepteur occaecat nulla ex deserunt irure nisi aliquip. Enim ullamco sunt duis veniam mollit nulla dolor elit nulla.\r\n", + "address": "4 Robert Street", + "city": "Ellerslie", + "state": "Indiana", + "zip": 16816, + "country": "US Minor Outlying Islands", + "email": "lorainecastro@scentric.com", + "phone": "(816) 465-3014", + "color": "rgb(76,135,180)" + }, + { + "index": 34, + "name": "Hughes Flynn", + "first": "Fry", + "last": "Harmon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/butchewing/73.jpg", + "boolean": true, + "guid": "bcaa95bc-6077-4332-84f7-c432a0f25269", + "integer": 52, + "date": "Thu Sep 22 1983 12:18:11 GMT-0700 (PDT)", + "shortText": "consectetur voluptate et enim sint", + "mediumText": "Veniam duis ut aute id occaecat nisi officia qui ut anim magna eiusmod quis non. Qui duis ad nostrud et sint eu est consectetur amet ad id velit enim.", + "longText": "Cillum labore in voluptate sit pariatur laborum laboris veniam anim officia tempor. Ad nisi amet enim consequat do est est ut deserunt sunt commodo cupidatat aliqua. Irure ad dolor officia veniam commodo labore incididunt. Ex aliquip ad dolor fugiat exercitation minim cillum exercitation eiusmod velit. Aliqua minim minim exercitation dolore dolor laboris.\r\nEnim cillum do consectetur occaecat dolor nulla. Et officia culpa ad et ea irure culpa laboris ullamco ea enim aliquip proident eiusmod. Irure veniam ipsum fugiat sint exercitation deserunt commodo eu consectetur amet nostrud aute duis ullamco.\r\nAliqua minim veniam dolore exercitation non in ipsum irure et culpa irure labore excepteur exercitation. Ad reprehenderit officia deserunt velit aliqua consectetur commodo magna magna consectetur reprehenderit Lorem. Elit qui officia cillum do duis cillum. Non quis proident cillum et non deserunt elit voluptate commodo minim non. Ad occaecat dolor dolore incididunt voluptate proident.\r\n", + "address": "2 Logan Street", + "city": "Cataract", + "state": "Tennessee", + "zip": 16373, + "country": "East Timor", + "email": "fryharmon@scentric.com", + "phone": "(810) 510-3744", + "color": "rgb(157,152,156)" + }, + { + "index": 35, + "name": "Massey Merritt", + "first": "Cooper", + "last": "Sampson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dotmariusz/73.jpg", + "boolean": false, + "guid": "b3614dbf-f75d-410c-9a0a-8d805f386b40", + "integer": 75, + "date": "Tue Feb 03 1981 16:12:08 GMT-0800 (PST)", + "shortText": "enim ad ea mollit aute", + "mediumText": "Aute exercitation magna do veniam ea sunt qui id aliquip do eiusmod. Ipsum veniam cillum tempor labore. Est nostrud ut Lorem dolore. Id ad amet fugiat aliquip ea ut veniam nulla aliquip dolor.", + "longText": "Quis culpa quis nulla sunt proident consectetur ex reprehenderit est fugiat duis enim minim. Elit et culpa ex ipsum et amet eu quis exercitation et laborum ullamco commodo do. Tempor in elit veniam deserunt proident fugiat est ea excepteur et ipsum eu magna. Adipisicing ad elit officia ea velit veniam nostrud ullamco. Id nostrud exercitation esse labore dolore do.\r\nOfficia labore nulla amet ipsum. Reprehenderit dolore qui elit labore nisi ullamco dolor aliqua consequat sunt reprehenderit labore. Ad ea dolore anim proident quis reprehenderit quis consectetur ea.\r\n", + "address": "4 Doscher Street", + "city": "Bagtown", + "state": "Palau", + "zip": 32759, + "country": "Denmark", + "email": "coopersampson@scentric.com", + "phone": "(982) 438-3850", + "color": "rgb(248,164,122)" + }, + { + "index": 36, + "name": "Estelle Owen", + "first": "Rosa", + "last": "Velazquez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aaronbeashel/73.jpg", + "boolean": false, + "guid": "bb33bd2d-a4cd-4bf2-a3f7-d82b5e108068", + "integer": 67, + "date": "Fri Jul 11 2003 11:54:17 GMT-0700 (PDT)", + "shortText": "officia consequat proident", + "mediumText": "Ex velit velit mollit consectetur eiusmod in do minim id esse excepteur nulla est. Reprehenderit incididunt deserunt ea excepteur nostrud voluptate nisi exercitation ea excepteur magna deserunt cillum proident. Exercitation minim velit sit fugiat sint ut cillum consectetur ullamco exercitation enim aliqua in aute. Laborum consequat amet aliquip laborum quis.", + "longText": "Non est irure amet eiusmod Lorem nostrud. Tempor est ut nisi nisi ullamco pariatur mollit proident eu magna sit. Amet tempor sint ut deserunt sint cillum aute anim officia mollit ex exercitation ea laborum.\r\nIn proident magna exercitation ut do. Lorem minim cillum do velit amet deserunt incididunt duis adipisicing laboris dolore officia. Sint ea id culpa labore aute sit cillum. Ut ad nisi ex culpa. Aliqua nostrud do culpa incididunt ut eiusmod nulla irure duis reprehenderit cillum. Cupidatat ea est non id cillum non adipisicing et adipisicing veniam cillum dolor ex.\r\n", + "address": "2 Wakeman Place", + "city": "Morgandale", + "state": "Virginia", + "zip": 43228, + "country": "Yemen", + "email": "rosavelazquez@scentric.com", + "phone": "(887) 500-3974", + "color": "rgb(112,251,244)" + }, + { + "index": 37, + "name": "Jamie Clarke", + "first": "Claire", + "last": "Jefferson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jina/73.jpg", + "boolean": true, + "guid": "44d98ab6-0a88-43f9-8c15-02c24bfe5a10", + "integer": 47, + "date": "Mon Aug 31 1992 20:48:08 GMT-0700 (PDT)", + "shortText": "aliqua nisi excepteur dolore", + "mediumText": "Aliqua ullamco labore occaecat laborum culpa anim exercitation. Deserunt cupidatat tempor id eu cupidatat magna veniam amet aute ea mollit.", + "longText": "Amet cupidatat eiusmod occaecat nostrud eu cillum culpa irure pariatur quis sit in. Ea id anim tempor duis sunt cillum veniam laborum culpa occaecat reprehenderit do commodo minim. Dolor aliquip cillum magna Lorem aliqua exercitation officia nisi id voluptate esse. Laborum occaecat velit deserunt tempor laboris sunt duis incididunt tempor dolore. Aliquip magna amet culpa culpa reprehenderit veniam commodo dolor fugiat commodo eu. Adipisicing veniam ipsum irure quis consectetur voluptate enim officia.\r\nNon occaecat proident nostrud do cillum ipsum tempor sit magna qui. Cupidatat Lorem aliqua adipisicing mollit. Consequat sint do pariatur est. Minim laborum duis eiusmod do do do qui Lorem. Labore anim laborum do fugiat tempor ut. Aliqua culpa id aliqua velit Lorem do consectetur consequat sunt aliqua.\r\n", + "address": "2 Jerome Avenue", + "city": "Cliff", + "state": "Wyoming", + "zip": 10308, + "country": "Laos", + "email": "clairejefferson@scentric.com", + "phone": "(897) 481-2359", + "color": "rgb(219,64,230)" + }, + { + "index": 38, + "name": "Louella Vincent", + "first": "Frieda", + "last": "Butler", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gu5taf/73.jpg", + "boolean": true, + "guid": "8169ff1e-f098-4cf7-9e00-35457f189340", + "integer": 65, + "date": "Mon Sep 09 2013 00:02:00 GMT-0700 (PDT)", + "shortText": "qui cupidatat sit velit", + "mediumText": "Sunt ad et exercitation aliqua consectetur commodo commodo adipisicing magna irure. Duis sint non duis ipsum pariatur ut pariatur dolor cillum anim et mollit laboris minim.", + "longText": "Excepteur enim laborum eiusmod exercitation aute id veniam non et ullamco. Ipsum veniam adipisicing non dolor id ad quis ex. Ipsum aliquip excepteur sunt irure adipisicing enim exercitation irure minim proident nulla ipsum id nulla. Adipisicing est do aliquip esse consectetur ipsum minim exercitation pariatur. Elit irure eiusmod commodo voluptate proident veniam quis do aliquip commodo. Amet labore incididunt exercitation commodo dolore officia ipsum ea non irure occaecat voluptate pariatur. Pariatur dolore do occaecat Lorem enim culpa cillum adipisicing incididunt labore.\r\nFugiat veniam ut culpa adipisicing cupidatat exercitation ea laboris consectetur reprehenderit nulla eiusmod ut. Tempor in non esse labore dolore labore qui duis. Duis esse consequat ex duis ea dolore voluptate id exercitation sunt eiusmod pariatur nisi ut. Excepteur amet et eu magna et.\r\nReprehenderit occaecat sunt elit cupidatat. Nostrud cupidatat id fugiat fugiat veniam mollit nostrud cillum. Laboris est ut esse cillum. Aute tempor ex veniam qui culpa deserunt mollit enim commodo velit eu. Et in adipisicing veniam sint id duis sint nulla. Ad voluptate aliquip consectetur commodo in. Exercitation ea sint non exercitation labore esse cillum.\r\nFugiat deserunt reprehenderit aliquip officia exercitation labore cupidatat pariatur aliqua in Lorem. Amet aliquip excepteur laborum do eiusmod aliqua minim anim dolore elit. Elit aute ex fugiat mollit excepteur.\r\n", + "address": "3 Rockwell Place", + "city": "Grimsley", + "state": "Colorado", + "zip": 38741, + "country": "Sierra Leone", + "email": "friedabutler@scentric.com", + "phone": "(867) 520-2422", + "color": "rgb(159,133,82)" + }, + { + "index": 39, + "name": "Schultz Rosario", + "first": "Juliana", + "last": "Gutierrez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/antonkudin/73.jpg", + "boolean": true, + "guid": "c238f75a-9f6d-41fe-bfc7-7035f020fdfa", + "integer": 62, + "date": "Tue Sep 13 1988 04:52:35 GMT-0700 (PDT)", + "shortText": "enim", + "mediumText": "Esse mollit anim dolore tempor qui aliqua Lorem. Eu adipisicing culpa nisi est commodo fugiat minim aute deserunt officia sint cillum.", + "longText": "Mollit enim deserunt aliqua nisi officia consectetur. Nostrud et ipsum eiusmod et. Proident nisi magna adipisicing occaecat consequat ut officia ea nisi proident voluptate duis commodo in. Aliquip velit fugiat Lorem ad est quis eiusmod consectetur dolore laborum voluptate minim nisi et. Pariatur non et elit laboris adipisicing reprehenderit laboris nisi. Ut laborum sint consectetur tempor excepteur in velit voluptate dolor ipsum consequat nisi.\r\nNon excepteur incididunt culpa incididunt et pariatur excepteur voluptate commodo esse. Commodo eiusmod duis ut cupidatat sint fugiat nisi ad anim enim. Pariatur qui ad aute deserunt do irure non quis et excepteur ullamco eu laboris. Qui enim velit minim tempor irure duis.\r\nQui id minim ullamco ex est elit Lorem aliqua officia ut cillum. Voluptate aute do qui pariatur nisi deserunt eu. Officia incididunt sit cillum consectetur anim fugiat sit et ad est tempor nulla fugiat mollit.\r\nEx magna ex do aute non esse excepteur. Est excepteur voluptate eiusmod eu esse ad eiusmod nisi ad. Quis irure laboris est fugiat aute culpa deserunt non ut mollit ea nisi occaecat enim.\r\nQuis dolore amet quis exercitation reprehenderit proident nisi excepteur veniam occaecat ipsum. Consectetur ad elit do quis mollit pariatur deserunt. Culpa qui cillum nulla incididunt incididunt ad nostrud duis. Deserunt pariatur non consequat sint occaecat ad dolor in mollit deserunt nulla laboris. Do eiusmod aute proident nulla eiusmod sunt voluptate.\r\n", + "address": "3 Loring Avenue", + "city": "Mulberry", + "state": "Utah", + "zip": 65299, + "country": "Nigeria", + "email": "julianagutierrez@scentric.com", + "phone": "(968) 541-2220", + "color": "rgb(102,250,175)" + }, + { + "index": 40, + "name": "April Mejia", + "first": "Mallory", + "last": "Gross", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/derekebradley/73.jpg", + "boolean": true, + "guid": "09c07ac9-6428-420c-9244-e97b458cef1c", + "integer": 95, + "date": "Mon Oct 10 1977 19:43:28 GMT-0700 (PDT)", + "shortText": "eiusmod voluptate eiusmod exercitation", + "mediumText": "Esse est laboris sint commodo enim ut fugiat excepteur pariatur eiusmod cillum. Occaecat occaecat cupidatat et occaecat do Lorem. Ad culpa sint magna tempor ex magna. Eu fugiat nisi exercitation sit ex in ad est occaecat officia ullamco pariatur non. Sit esse consequat deserunt enim.", + "longText": "Id pariatur ullamco officia excepteur. Excepteur occaecat nulla magna excepteur Lorem in laboris proident veniam veniam Lorem sint pariatur labore. Anim incididunt sint ea eiusmod tempor magna sit ullamco. Pariatur cillum id ullamco mollit tempor aute pariatur reprehenderit quis nulla quis elit. Irure duis voluptate consectetur ex anim ad. Ipsum do labore mollit commodo et cillum dolore est labore amet amet esse est. Duis et minim anim non magna sit incididunt aute consequat occaecat voluptate esse aliqua in.\r\nSint officia ad occaecat reprehenderit et velit eu consequat et esse. Occaecat et deserunt aute nulla aliqua occaecat eiusmod fugiat irure ut dolore incididunt. Ea magna magna velit consequat commodo id aliqua ad pariatur minim laborum ad.\r\nExercitation id reprehenderit enim consequat ea sunt labore cillum. Lorem tempor eiusmod elit amet velit incididunt occaecat. Amet aute tempor ea eu nostrud est velit. Amet est do duis ut do Lorem sint amet eiusmod.\r\nIrure mollit exercitation eu non. Labore ullamco do amet occaecat aute consectetur voluptate. Quis esse cillum laborum mollit exercitation. Officia quis consectetur cillum fugiat ullamco exercitation non dolore voluptate aute ex id. Ad culpa nisi quis non voluptate amet cillum in. Laborum occaecat ad aliquip aute veniam adipisicing non proident consequat voluptate commodo.\r\nVeniam anim sit officia laboris. Incididunt est ea magna nulla anim magna mollit reprehenderit adipisicing sit. Labore ex et do eu eu. Officia nostrud consectetur proident sint. Cillum dolor dolore consectetur ullamco. Reprehenderit veniam fugiat elit culpa nisi laborum magna. Consequat ea excepteur sint enim exercitation occaecat Lorem nisi culpa deserunt.\r\n", + "address": "2 Crawford Avenue", + "city": "Winchester", + "state": "Idaho", + "zip": 61697, + "country": "Netherlands", + "email": "mallorygross@scentric.com", + "phone": "(822) 493-3031", + "color": "rgb(161,51,155)" + }, + { + "index": 41, + "name": "Vicki Phelps", + "first": "Elsie", + "last": "Hahn", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karachentsov/73.jpg", + "boolean": false, + "guid": "1dc69b61-c106-4a7b-83c6-e05dfed45668", + "integer": 88, + "date": "Wed Mar 28 2001 03:43:02 GMT-0800 (PST)", + "shortText": "ipsum eiusmod laboris proident", + "mediumText": "Nisi incididunt in commodo duis culpa voluptate sit laborum. Consectetur do exercitation irure nostrud.", + "longText": "Eu culpa eiusmod do sit aliquip consequat. Consectetur aliquip non culpa id reprehenderit labore non dolore in voluptate voluptate. Nisi in exercitation reprehenderit fugiat duis ea consequat nostrud labore enim ut sit.\r\nAdipisicing eiusmod mollit ipsum dolor et nisi irure elit sunt laboris. Proident tempor incididunt et consectetur fugiat nisi excepteur do nisi irure aliqua. Sit aliqua sint aute ut.\r\nFugiat quis ad nisi sunt consectetur ut ullamco laboris. Ut ea laboris ipsum Lorem eiusmod incididunt. Excepteur minim adipisicing nisi exercitation enim consectetur voluptate sunt. Est consequat irure ipsum ex qui laboris tempor. Commodo duis minim ullamco labore proident minim. Aliqua aliquip cillum dolore qui nostrud. Irure adipisicing mollit tempor occaecat excepteur.\r\nCupidatat nisi adipisicing adipisicing officia consectetur et. Laborum deserunt aute non culpa in ea aliqua sit. Sit esse incididunt qui veniam quis do excepteur exercitation nisi ipsum adipisicing quis. Mollit cupidatat occaecat adipisicing nisi irure pariatur exercitation id esse id tempor sunt. Quis deserunt eiusmod dolore ut esse eu consectetur consectetur ea veniam amet adipisicing nisi. Excepteur voluptate consectetur dolor sint nisi laborum aute eiusmod ea.\r\nNon ex eiusmod dolore est ea exercitation et quis deserunt culpa nostrud aliqua. Qui non qui laboris dolor reprehenderit enim deserunt cupidatat consequat dolore ex. In voluptate pariatur ullamco non laborum velit ea minim cillum consequat eu. Est ullamco proident ad fugiat aliqua occaecat est. Nisi dolore irure velit excepteur aliquip incididunt irure non voluptate.\r\n", + "address": "2 Coles Street", + "city": "Stockwell", + "state": "Arkansas", + "zip": 39778, + "country": "Morocco", + "email": "elsiehahn@scentric.com", + "phone": "(821) 517-2066", + "color": "rgb(63,164,79)" + }, + { + "index": 42, + "name": "Faulkner Mcdaniel", + "first": "Hayes", + "last": "Ball", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmeffess/73.jpg", + "boolean": false, + "guid": "731380cb-785a-4aa3-9e6c-281953a83daf", + "integer": 85, + "date": "Fri Jul 25 1980 06:28:07 GMT-0700 (PDT)", + "shortText": "sunt magna aliquip", + "mediumText": "Pariatur ipsum adipisicing ut quis.", + "longText": "Veniam veniam enim Lorem eu mollit consectetur ea qui est pariatur. Magna occaecat sit est exercitation exercitation irure laboris enim commodo consequat tempor mollit. Id ea elit proident exercitation. Dolore reprehenderit nostrud nostrud exercitation eiusmod nulla.\r\nDo amet duis excepteur ullamco cillum velit. Consectetur adipisicing fugiat non dolore fugiat ipsum qui est elit enim consequat Lorem laboris proident. Aliquip reprehenderit ut reprehenderit anim sunt ex. Adipisicing aliquip sint Lorem minim laborum dolor minim tempor laboris. Exercitation ad aute ullamco ea deserunt adipisicing laborum fugiat proident adipisicing veniam ut veniam laborum. Id reprehenderit labore ea esse ea officia cillum. Sit sunt pariatur cupidatat mollit velit qui ut.\r\nElit mollit do non dolor quis Lorem anim aliqua occaecat aute reprehenderit irure. Sit do labore pariatur id. Anim ad veniam ea Lorem reprehenderit ipsum minim. In elit irure nulla elit elit sit in sunt incididunt magna. Pariatur commodo anim magna ut aliquip nulla nostrud commodo aliquip incididunt commodo est. Nulla enim nostrud qui commodo reprehenderit.\r\n", + "address": "2 Cheever Place", + "city": "Interlochen", + "state": "Delaware", + "zip": 14410, + "country": "Czech Republic", + "email": "hayesball@scentric.com", + "phone": "(875) 561-3839", + "color": "rgb(215,92,182)" + }, + { + "index": 43, + "name": "Wilson Booth", + "first": "Baker", + "last": "Slater", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bmovement/73.jpg", + "boolean": false, + "guid": "4357bfc6-3fa0-41e3-8a7b-0ab1f0a2e139", + "integer": 16, + "date": "Tue Aug 18 1998 18:43:53 GMT-0700 (PDT)", + "shortText": "sunt reprehenderit fugiat in est", + "mediumText": "Exercitation nisi ut enim do incididunt eiusmod cupidatat aliquip occaecat sit occaecat elit consequat sunt. Cupidatat fugiat dolor ea proident ipsum officia exercitation reprehenderit dolore elit.", + "longText": "Et in ipsum duis amet aute qui commodo fugiat eiusmod. Enim veniam nisi non sunt ex esse eiusmod. Non amet et ex cupidatat. Veniam laboris do proident et in reprehenderit incididunt ut velit enim aliqua. Quis adipisicing tempor consequat consequat commodo consequat do. Minim laboris nostrud duis tempor aliqua fugiat pariatur incididunt Lorem nostrud velit ad.\r\nAliquip commodo laborum culpa consequat aliquip voluptate irure sit excepteur reprehenderit enim ullamco veniam do. Minim elit quis laborum eiusmod incididunt proident nostrud do laboris. Deserunt non nostrud minim ut qui proident incididunt est elit pariatur nisi. Eiusmod reprehenderit sit deserunt aliqua aliqua. Reprehenderit id pariatur magna sunt fugiat labore veniam velit pariatur minim occaecat. Nostrud duis est magna ad ad consequat proident ut laboris aliquip. Magna duis est non reprehenderit minim nulla est cupidatat ut officia do sit.\r\nPariatur officia culpa ullamco sunt. Adipisicing amet amet culpa excepteur proident officia. In dolor aliqua nostrud tempor tempor elit tempor exercitation enim sint.\r\nQuis aliqua velit magna ad occaecat minim velit eiusmod ex consequat ad nisi adipisicing. Veniam et culpa sunt ex ad non ut ad in qui magna dolor nostrud incididunt. Aliquip minim elit eu exercitation pariatur irure id non occaecat id id commodo. Ea excepteur et excepteur Lorem eiusmod elit ex laborum labore et cillum cillum. Lorem consequat non culpa eu Lorem do amet nulla velit ullamco cillum.\r\nVelit nisi consectetur dolore amet irure tempor voluptate laborum. Id sit incididunt aute nostrud fugiat adipisicing incididunt excepteur anim sunt et id deserunt. Voluptate incididunt sunt anim enim laboris. Laboris id sit aliqua nisi cillum cupidatat ipsum. Laborum veniam adipisicing velit nulla eu commodo quis do.\r\n", + "address": "2 Arlington Avenue", + "city": "Welda", + "state": "Federated States Of Micronesia", + "zip": 13497, + "country": "Cape Verde", + "email": "bakerslater@scentric.com", + "phone": "(980) 527-2867", + "color": "rgb(98,119,186)" + }, + { + "index": 44, + "name": "Galloway Michael", + "first": "Martha", + "last": "Knight", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taiyab/73.jpg", + "boolean": false, + "guid": "a12acd83-99f7-4c53-8849-e0c0a8aef81f", + "integer": 41, + "date": "Sun Jan 15 2006 04:41:03 GMT-0800 (PST)", + "shortText": "cillum fugiat cupidatat", + "mediumText": "Cupidatat eiusmod nisi commodo aute deserunt ea labore aute aliquip consequat voluptate aliquip aliqua sunt. Culpa cillum ex quis ad in nisi enim.", + "longText": "Enim ad pariatur esse ea officia ullamco consectetur ut adipisicing culpa voluptate Lorem do. Voluptate mollit enim dolore laboris Lorem id in Lorem aliquip mollit. Enim aliquip occaecat amet cupidatat elit dolor officia magna qui aute sit. In elit tempor pariatur sunt velit ad anim laboris do dolor et nisi anim voluptate. Proident aliquip anim veniam cillum ullamco laborum. Adipisicing occaecat voluptate deserunt ad consequat fugiat laborum aute fugiat deserunt exercitation incididunt. In do tempor amet excepteur non enim tempor excepteur reprehenderit anim sit aute.\r\nAmet ea est dolor adipisicing sit occaecat occaecat incididunt commodo. Veniam officia esse excepteur excepteur nostrud deserunt elit minim amet eu quis non. Quis duis tempor pariatur aute. Anim anim tempor in nisi Lorem do do adipisicing. Exercitation fugiat elit nisi nostrud aliquip id cillum exercitation elit non cupidatat. Irure ea nulla quis aliquip nulla ex exercitation est velit eiusmod.\r\nDeserunt aute nisi exercitation sunt aliquip aute proident incididunt dolor commodo non pariatur mollit laborum. Minim tempor deserunt labore non sit duis culpa. Commodo velit duis quis aliqua fugiat sit sint labore magna officia sunt eiusmod magna. Deserunt est nisi ad fugiat consectetur commodo voluptate amet nulla sit. Incididunt do adipisicing irure minim eiusmod aliqua et pariatur pariatur tempor irure.\r\n", + "address": "4 Willoughby Street", + "city": "Calverton", + "state": "Guam", + "zip": 21650, + "country": "Madagascar", + "email": "marthaknight@scentric.com", + "phone": "(893) 423-2241", + "color": "rgb(87,159,93)" + }, + { + "index": 45, + "name": "Mcintosh Evans", + "first": "Slater", + "last": "Erickson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rigelstpierre/73.jpg", + "boolean": false, + "guid": "1fa2a893-38af-4f5a-8580-a8a20f0edffe", + "integer": 89, + "date": "Wed Sep 03 2003 04:11:03 GMT-0700 (PDT)", + "shortText": "eiusmod in labore id", + "mediumText": "Cillum labore pariatur in occaecat eu. Ipsum reprehenderit occaecat ipsum in id velit pariatur ut duis. Dolor esse dolor eiusmod est duis. Elit nulla commodo cillum proident tempor anim qui nulla laboris cillum occaecat consequat.", + "longText": "Id qui sunt excepteur Lorem in occaecat id. Culpa eu dolore cupidatat cillum labore aute officia. Cupidatat ex dolore excepteur aliqua sunt elit qui excepteur sit amet sint adipisicing dolore.\r\nSint consequat ullamco exercitation anim et commodo. Mollit ad aute dolor in veniam tempor ullamco nisi ex id cupidatat incididunt. Veniam cupidatat et enim aliqua laboris officia. Dolor ipsum excepteur elit enim ipsum enim est labore do amet duis cupidatat aliqua. Officia occaecat in ex enim officia id culpa sint. Aliquip magna duis ut ea aliquip duis non ad.\r\nDolor mollit exercitation reprehenderit commodo sunt aute commodo aliquip. Aute qui culpa aliquip magna in enim occaecat quis. Proident magna sunt do tempor. Minim laboris aliqua esse culpa anim. Eu laborum ut ea nostrud excepteur laboris. Velit veniam nostrud deserunt incididunt sit incididunt Lorem cillum enim ullamco ipsum cupidatat ea laborum.\r\n", + "address": "4 Meeker Avenue", + "city": "Mansfield", + "state": "Pennsylvania", + "zip": 64998, + "country": "Austria", + "email": "slatererickson@scentric.com", + "phone": "(916) 568-2718", + "color": "rgb(61,216,133)" + }, + { + "index": 46, + "name": "Garrison Conway", + "first": "Beck", + "last": "Potts", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vlajki/73.jpg", + "boolean": true, + "guid": "f4aa8b8b-f3b1-4a47-9625-0213a3ab6e8d", + "integer": 90, + "date": "Thu Jun 21 1979 14:10:02 GMT-0700 (PDT)", + "shortText": "adipisicing irure", + "mediumText": "Elit do ipsum sint qui non nulla laborum aute.", + "longText": "Sint voluptate ad irure laborum. Aliqua incididunt dolore do irure enim aliquip non officia sunt nisi consectetur. Ex laborum reprehenderit dolore laborum voluptate sit adipisicing consequat adipisicing culpa nisi ipsum anim aliqua. In est fugiat officia ullamco velit ut duis sit sint anim ex minim cupidatat. Commodo incididunt cillum non adipisicing tempor. Pariatur adipisicing dolore ut aliqua magna non amet.\r\nUt ex id enim cillum veniam consectetur ipsum sit cillum. Adipisicing qui cillum mollit consequat nulla quis elit nostrud et. Cillum dolore non voluptate magna qui officia. Lorem in quis incididunt dolore ut. Adipisicing do id fugiat elit ullamco pariatur culpa nisi.\r\nCommodo culpa dolore aliqua ex ex mollit minim. Duis cupidatat ipsum sunt quis amet est minim aute Lorem non proident. Duis cillum Lorem quis velit.\r\nTempor incididunt reprehenderit eiusmod adipisicing amet exercitation. Duis occaecat eu consequat ea officia occaecat enim Lorem ullamco. Non commodo cillum sunt amet nulla ex officia ut duis sunt. Enim minim anim minim anim non minim ad magna tempor Lorem. Enim cupidatat nostrud in sunt officia occaecat esse cupidatat. Sint veniam ullamco qui consectetur duis fugiat pariatur ad proident mollit.\r\nAd consectetur elit aute sit nostrud. Culpa non esse non nostrud id anim nulla aute in laboris id duis magna cillum. Sunt cillum ut id laborum tempor reprehenderit excepteur ut velit aliqua ad ipsum ut incididunt. Eiusmod qui quis ea deserunt excepteur amet culpa eiusmod eiusmod.\r\n", + "address": "3 Troy Avenue", + "city": "Witmer", + "state": "New Hampshire", + "zip": 85501, + "country": "Venezuela", + "email": "beckpotts@scentric.com", + "phone": "(865) 596-2021", + "color": "rgb(156,172,221)" + }, + { + "index": 47, + "name": "Hopper Anthony", + "first": "Pugh", + "last": "Douglas", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/leeiio/73.jpg", + "boolean": true, + "guid": "d522fa57-486b-4ca9-9ee2-f4bddc8d8db0", + "integer": 32, + "date": "Wed Mar 16 1988 07:04:05 GMT-0800 (PST)", + "shortText": "ullamco sit elit", + "mediumText": "Nisi fugiat irure amet fugiat. Commodo ut nisi dolore cillum officia culpa. Veniam in duis aliquip voluptate do pariatur nostrud cupidatat amet consectetur reprehenderit id dolore. Anim adipisicing mollit ut enim aliqua ex elit aute ea culpa mollit. Sit cillum ut excepteur officia ullamco irure aute culpa elit.", + "longText": "Quis non cillum et sit enim culpa tempor. Veniam velit eu dolor pariatur in aute. Et tempor Lorem ad velit fugiat Lorem sunt aliqua exercitation laboris ad.\r\nExcepteur laboris et magna ea nostrud ut cillum. Exercitation anim cupidatat magna non pariatur id enim esse ullamco adipisicing deserunt anim. Duis sint nisi est voluptate deserunt proident anim nisi consequat labore culpa aliqua. Sit amet consequat ad occaecat cupidatat tempor eiusmod nostrud Lorem magna labore mollit in.\r\nPariatur qui anim culpa ex. In nostrud aliqua non adipisicing. Quis labore magna aliqua magna.\r\nAute commodo consectetur elit minim exercitation eiusmod non commodo. Aute deserunt non quis ullamco culpa ex et mollit nisi dolor. Minim amet eiusmod mollit esse Lorem eu reprehenderit nisi cillum eiusmod fugiat nostrud tempor duis. Officia quis commodo pariatur esse excepteur officia. In non incididunt aliquip mollit dolore ex labore.\r\nExcepteur commodo eu proident fugiat nulla. Minim excepteur consequat officia esse dolore irure qui anim culpa in deserunt consectetur laborum in. Exercitation in esse ad aliquip commodo. Irure duis pariatur eiusmod culpa enim mollit tempor Lorem qui proident ad. Qui exercitation elit culpa ex non dolor do pariatur proident. Anim ut velit minim voluptate labore in commodo excepteur irure proident amet officia cupidatat.\r\n", + "address": "3 Madoc Avenue", + "city": "Norfolk", + "state": "North Dakota", + "zip": 73808, + "country": "Hong Kong", + "email": "pughdouglas@scentric.com", + "phone": "(829) 562-3502", + "color": "rgb(70,112,74)" + }, + { + "index": 48, + "name": "Edwina Wiley", + "first": "Margo", + "last": "Hodges", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/brad_frost/73.jpg", + "boolean": false, + "guid": "363f5f6a-2d42-4e87-845c-7cf7b881d3fa", + "integer": 26, + "date": "Fri Dec 07 2012 11:20:25 GMT-0800 (PST)", + "shortText": "fugiat fugiat", + "mediumText": "Ex commodo sit quis commodo fugiat Lorem aliquip mollit fugiat mollit veniam.", + "longText": "Ea ea aliquip consectetur in labore eu fugiat voluptate nisi ipsum sunt. Occaecat id sit qui officia culpa laboris. Deserunt aliqua duis est sint.\r\nProident consequat occaecat cillum occaecat occaecat adipisicing laboris exercitation sit ut non dolor culpa consectetur. Ipsum ex reprehenderit veniam aliquip esse. Est commodo tempor fugiat id laborum duis do fugiat magna eiusmod eiusmod. Sit sit est anim officia consequat Lorem commodo qui velit duis. Adipisicing ipsum mollit ipsum in deserunt adipisicing ad culpa dolore. Nisi excepteur consectetur id proident fugiat proident reprehenderit magna.\r\nConsectetur duis ipsum occaecat culpa sit in. Tempor elit amet est Lorem elit consectetur fugiat tempor magna. Nulla ullamco incididunt cillum quis ea. Voluptate officia officia officia sint quis cillum sit est. Aliquip non laborum et laboris in velit dolore mollit ad dolor velit amet ut laboris. Cillum sunt irure in in eu do ullamco.\r\n", + "address": "3 Vernon Avenue", + "city": "Yettem", + "state": "Northern Mariana Islands", + "zip": 84068, + "country": "Sri Lanka", + "email": "margohodges@scentric.com", + "phone": "(852) 558-3074", + "color": "rgb(56,222,148)" + }, + { + "index": 49, + "name": "Salazar Nolan", + "first": "Polly", + "last": "Mitchell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alsobrooks/73.jpg", + "boolean": true, + "guid": "36295fa8-495e-4763-b920-b8e8d9e90105", + "integer": 28, + "date": "Mon May 08 2006 04:34:39 GMT-0700 (PDT)", + "shortText": "aliquip id commodo pariatur eu", + "mediumText": "Amet fugiat nisi ut eiusmod enim. Et id mollit voluptate dolore laborum cillum qui est laborum duis fugiat.", + "longText": "Qui cillum proident id irure quis sit. Sit nisi et fugiat amet exercitation eiusmod esse enim pariatur cupidatat. Esse proident velit reprehenderit fugiat.\r\nNostrud dolore eiusmod aliquip pariatur labore duis veniam laboris velit duis proident excepteur veniam. Proident fugiat velit nisi aute veniam. Irure pariatur ex eu tempor veniam nisi et eiusmod anim mollit dolore ad ex.\r\nEu quis dolor sit amet ut consequat magna nostrud quis sit. Laboris aliqua consectetur sit tempor consectetur aliqua exercitation officia minim magna duis. Laborum eu ut veniam magna. Nisi enim cillum adipisicing sint ex. Magna proident labore sint aliquip aute. Ut nulla exercitation laboris qui nulla do adipisicing voluptate do. Nulla ullamco nulla dolore cupidatat duis ea aute est ullamco.\r\n", + "address": "4 Pilling Street", + "city": "Rushford", + "state": "South Dakota", + "zip": 48734, + "country": "Turkmenistan", + "email": "pollymitchell@scentric.com", + "phone": "(891) 598-2904", + "color": "rgb(119,240,183)" + }, + { + "index": 50, + "name": "Pat Delgado", + "first": "Brown", + "last": "Perkins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thekishpatel/73.jpg", + "boolean": true, + "guid": "ec3986d2-8262-464b-bb60-352b533f186f", + "integer": 76, + "date": "Thu Jul 17 1975 16:18:22 GMT-0700 (PDT)", + "shortText": "voluptate est labore", + "mediumText": "Duis incididunt velit nulla consectetur ut labore. Ipsum culpa consectetur quis id velit nulla mollit cupidatat magna veniam consequat. Qui elit laboris veniam amet tempor Lorem dolore. Ex voluptate officia magna ipsum nulla eu Lorem.", + "longText": "Aute proident cupidatat laboris qui officia velit amet nostrud. Aliquip cupidatat sit pariatur ut id sint duis proident laborum sint aliquip. Qui cupidatat labore quis et ut magna fugiat laboris commodo proident ad ut. Consequat aute incididunt proident in cupidatat quis nisi exercitation. Et proident qui et occaecat ea minim.\r\nMinim ex do veniam do. Aliqua commodo minim dolore voluptate ullamco ea. Aliquip ad esse aliqua exercitation laboris qui incididunt dolore eu ut.\r\n", + "address": "3 Ash Street", + "city": "Loyalhanna", + "state": "Alaska", + "zip": 49922, + "country": "Burundi", + "email": "brownperkins@scentric.com", + "phone": "(908) 488-3939", + "color": "rgb(100,214,126)" + }, + { + "index": 51, + "name": "York Marks", + "first": "Janette", + "last": "Cherry", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iqonicd/73.jpg", + "boolean": false, + "guid": "0da3bbca-40ca-4a5d-ab2d-dc983c50ed75", + "integer": 20, + "date": "Sat May 08 2004 23:04:24 GMT-0700 (PDT)", + "shortText": "occaecat velit fugiat dolor", + "mediumText": "Ea non aute incididunt proident sit enim officia. Ad ea eiusmod ex nisi qui duis non consectetur amet minim. Lorem magna tempor consectetur qui reprehenderit nostrud officia incididunt.", + "longText": "Anim dolore minim consequat pariatur non veniam consequat veniam et exercitation mollit eu deserunt. Duis irure duis et cillum nisi sint sit velit. Duis Lorem ut aliqua eu ullamco Lorem proident pariatur aliqua velit amet voluptate.\r\nVeniam dolore velit proident qui sint anim ea. Id ea id Lorem laborum ea aute nulla tempor elit laboris laboris nulla veniam. Laborum duis reprehenderit aute ipsum. Cillum anim nostrud dolore id ex cillum excepteur officia ipsum elit do. Veniam officia duis do consectetur sunt exercitation reprehenderit.\r\nVelit pariatur sunt enim magna elit ex ex excepteur ex id. Aliquip et amet anim non non minim veniam. Ut aliqua non exercitation commodo culpa pariatur sunt do ea.\r\nEu commodo enim pariatur pariatur. Velit anim esse irure ea id qui duis nostrud anim amet. Do enim ut aliquip elit laboris dolor culpa culpa voluptate irure ex. Est labore officia qui est incididunt proident laborum excepteur ullamco cupidatat. Velit dolore aute non dolore voluptate nisi. In id ullamco consectetur incididunt Lorem ullamco.\r\n", + "address": "3 Hubbard Street", + "city": "Beason", + "state": "Louisiana", + "zip": 10084, + "country": "Western Sahara", + "email": "janettecherry@scentric.com", + "phone": "(828) 500-2593", + "color": "rgb(100,221,172)" + }, + { + "index": 52, + "name": "Wilkinson Nelson", + "first": "Florine", + "last": "Hobbs", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamlechev/73.jpg", + "boolean": false, + "guid": "4fdb5837-9e84-4ee7-8c11-0bba68a3b621", + "integer": 20, + "date": "Sun Feb 26 2012 16:07:03 GMT-0800 (PST)", + "shortText": "veniam nulla incididunt", + "mediumText": "Officia amet incididunt enim duis veniam velit aute incididunt esse qui consequat. Sit nostrud tempor minim nulla excepteur est aliquip dolor esse.", + "longText": "Pariatur commodo tempor laboris nulla minim ut nostrud nostrud in non incididunt exercitation. Pariatur enim deserunt ad dolore ut laborum cupidatat et elit ullamco voluptate eiusmod. Anim labore incididunt voluptate nulla officia dolore ipsum culpa est cupidatat laborum proident.\r\n", + "address": "2 Dodworth Street", + "city": "Hall", + "state": "Missouri", + "zip": 21320, + "country": "Mozambique", + "email": "florinehobbs@scentric.com", + "phone": "(869) 544-3589", + "color": "rgb(208,253,152)" + }, + { + "index": 53, + "name": "Alta Wright", + "first": "Farley", + "last": "Santos", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elliotpopel/73.jpg", + "boolean": false, + "guid": "19c307c0-cabb-4ab4-8b5e-857bf94a4838", + "integer": 46, + "date": "Tue Nov 27 1973 17:48:13 GMT-0800 (PST)", + "shortText": "do mollit", + "mediumText": "Proident irure in sunt id proident. Incididunt ipsum enim cupidatat nisi qui occaecat qui esse sint mollit nulla. Officia ad eiusmod eu consectetur occaecat mollit culpa deserunt qui exercitation mollit. Duis elit dolore occaecat Lorem sit minim consectetur qui culpa. Aliqua aute irure cupidatat commodo proident labore do aliqua aliquip officia.", + "longText": "Sunt aliqua laborum enim ipsum consequat adipisicing eu consequat labore sit cillum proident veniam proident. Et et sunt commodo aute nostrud mollit labore. Consequat in eu labore in incididunt officia esse mollit in minim minim mollit duis. Enim ea anim do voluptate eiusmod ut qui velit nostrud deserunt mollit.\r\nCommodo amet duis magna deserunt eu nulla eu sunt pariatur aliqua laborum cupidatat esse in. Quis do mollit nulla eiusmod exercitation. Ea eiusmod dolore minim sunt est irure minim non exercitation dolor veniam duis.\r\nIncididunt qui ex aliqua commodo qui aliquip duis. Ea dolore est duis esse sint nisi aliqua exercitation aute aliqua. Enim deserunt laboris eu eu duis nisi eu sint. Mollit est eu cillum excepteur id sit labore occaecat culpa minim adipisicing magna nulla.\r\nAd minim exercitation sunt nostrud quis. Fugiat quis officia officia irure aute eiusmod. Quis in officia do dolore duis duis. Veniam ipsum aute mollit officia pariatur deserunt. Reprehenderit adipisicing ipsum ut qui ex cupidatat sunt id nostrud reprehenderit. Eu incididunt magna duis et nisi minim exercitation laboris nisi. Adipisicing consectetur occaecat enim ad nisi voluptate ut aliquip ea labore do nulla laboris.\r\n", + "address": "3 Hanson Place", + "city": "Madaket", + "state": "Kentucky", + "zip": 95242, + "country": "Grenada", + "email": "farleysantos@scentric.com", + "phone": "(808) 507-2955", + "color": "rgb(143,68,160)" + }, + { + "index": 54, + "name": "Ivy Sparks", + "first": "Gray", + "last": "Paul", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/diesellaws/73.jpg", + "boolean": false, + "guid": "13f75baf-1bd4-4e7d-b527-a007260fe0bf", + "integer": 12, + "date": "Thu May 18 2000 12:52:37 GMT-0700 (PDT)", + "shortText": "laborum veniam ipsum", + "mediumText": "Consequat sit labore esse culpa ex officia eu enim ad sit. Deserunt consequat magna anim adipisicing eu est ipsum mollit est in. Proident et excepteur consectetur cupidatat eu aute ea magna amet qui ea culpa.", + "longText": "Dolore laborum anim sunt ea. Incididunt velit velit Lorem incididunt reprehenderit ea. Cupidatat esse laborum consectetur minim eiusmod nostrud occaecat. Elit esse cupidatat culpa tempor dolor laboris ad.\r\nIpsum ad veniam laboris eiusmod deserunt esse qui ullamco culpa magna sunt cupidatat ad. In pariatur aliquip voluptate quis voluptate qui. Minim ea velit excepteur eiusmod Lorem id consectetur tempor ex occaecat laboris ut tempor officia. Sunt irure exercitation ipsum sint elit amet duis irure.\r\n", + "address": "2 Conklin Avenue", + "city": "Sardis", + "state": "American Samoa", + "zip": 99662, + "country": "Cote D'Ivoire (Ivory Coast)", + "email": "graypaul@scentric.com", + "phone": "(896) 543-3314", + "color": "rgb(180,93,104)" + }, + { + "index": 55, + "name": "Henrietta Riddle", + "first": "Roman", + "last": "Dunlap", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/juanpablob/73.jpg", + "boolean": false, + "guid": "51bc59d2-dab6-443d-98ea-8171f77ad676", + "integer": 79, + "date": "Mon Oct 22 2007 23:28:02 GMT-0700 (PDT)", + "shortText": "sit", + "mediumText": "Est ex duis aliqua in adipisicing enim eu eiusmod consectetur. Reprehenderit nostrud aliquip sit nulla proident eu reprehenderit et minim do. Eiusmod laborum dolor ipsum exercitation nisi amet labore eu do laboris labore. Ad enim ut sunt anim reprehenderit culpa reprehenderit duis ullamco mollit.", + "longText": "Anim commodo voluptate eu voluptate voluptate sunt ipsum irure ipsum mollit cillum anim anim reprehenderit. Nulla ut reprehenderit enim occaecat consequat. Cupidatat Lorem eu qui id id adipisicing incididunt et cillum. Id enim sit cupidatat nulla ut enim consequat est sit sit culpa. Labore do consectetur pariatur qui labore proident dolor consectetur pariatur sit do tempor Lorem dolore. Et incididunt sint aliquip occaecat non dolor aute ea.\r\n", + "address": "2 Anna Court", + "city": "Stollings", + "state": "Minnesota", + "zip": 49877, + "country": "Philippines", + "email": "romandunlap@scentric.com", + "phone": "(852) 477-2611", + "color": "rgb(73,51,135)" + }, + { + "index": 56, + "name": "Odom Hicks", + "first": "Meyer", + "last": "Blackburn", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/whale/73.jpg", + "boolean": false, + "guid": "5cd1a911-4464-4653-9db3-05e55a0f306b", + "integer": 20, + "date": "Mon Jul 24 1978 17:22:48 GMT-0700 (PDT)", + "shortText": "excepteur ex cupidatat ipsum", + "mediumText": "Proident excepteur nostrud sint voluptate ad sint. Exercitation commodo amet nostrud occaecat sunt officia nulla eu. Adipisicing enim velit officia proident sint minim laboris magna officia laborum do occaecat pariatur laboris. Commodo minim ipsum anim amet esse deserunt in ea ad.", + "longText": "Incididunt est pariatur est culpa dolor duis dolore sunt duis dolor qui laboris. Aliqua dolore nostrud dolor commodo esse ex laborum proident et anim. Ut consectetur in minim minim officia mollit id quis. Tempor aliqua dolore esse culpa.\r\nNostrud duis est minim pariatur reprehenderit in qui do nulla non id. Incididunt magna enim reprehenderit incididunt magna tempor duis esse sunt esse commodo. Nulla ex anim laborum laboris. Culpa officia anim reprehenderit ex laboris labore proident exercitation deserunt deserunt ipsum ea esse et. Laborum laborum eiusmod Lorem consectetur consequat. Aute tempor voluptate laboris pariatur amet esse ut labore dolore sint qui. Occaecat aliqua excepteur sit labore.\r\n", + "address": "3 Bleecker Street", + "city": "Albrightsville", + "state": "Hawaii", + "zip": 67670, + "country": "Bermuda", + "email": "meyerblackburn@scentric.com", + "phone": "(812) 415-2585", + "color": "rgb(132,80,57)" + }, + { + "index": 57, + "name": "Dalton Bishop", + "first": "Schwartz", + "last": "Garcia", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kalmerrautam/73.jpg", + "boolean": true, + "guid": "cb6c4011-ab62-4469-bdd6-120762fbd8dc", + "integer": 31, + "date": "Thu Aug 29 2013 04:23:49 GMT-0700 (PDT)", + "shortText": "irure cupidatat adipisicing", + "mediumText": "Elit esse aute dolor officia cupidatat adipisicing duis fugiat aliqua nisi nisi. Culpa reprehenderit consequat voluptate proident in deserunt tempor sint amet ad pariatur. Mollit incididunt magna ullamco deserunt commodo excepteur esse esse commodo duis elit est duis. Sunt amet nisi dolor id laboris dolor exercitation ex exercitation proident pariatur anim. Duis nisi occaecat fugiat tempor sint est incididunt laboris cillum consectetur non cillum.", + "longText": "Eu esse Lorem veniam et dolor. Ad laboris exercitation adipisicing voluptate culpa ullamco ad non sunt ad veniam sit officia consequat. Est ea fugiat consectetur duis aliquip id in reprehenderit. Tempor officia enim tempor aliqua eu. Ut tempor duis minim ea eu proident. Nisi non eiusmod do tempor proident et commodo nisi nisi occaecat. Ullamco cupidatat eiusmod ex magna cillum nisi est.\r\nNisi consequat qui reprehenderit laboris dolor esse Lorem officia dolore ipsum exercitation do. Nulla nulla eiusmod nostrud incididunt ad elit ea non eiusmod incididunt reprehenderit culpa minim. Sint aliqua magna aliquip et magna. Fugiat ut voluptate irure aliquip consequat ut exercitation minim amet enim culpa.\r\nCulpa est pariatur aliquip non amet eu elit veniam Lorem velit nulla aute. Excepteur do commodo minim eu commodo dolore. Ex dolore ea irure adipisicing Lorem labore. Ipsum sit consequat aliquip tempor est. Labore deserunt incididunt et occaecat dolore est laborum exercitation exercitation dolore. Fugiat ipsum est proident anim ullamco ipsum labore fugiat consequat velit. Anim elit cillum ex laborum ad exercitation voluptate ad magna Lorem voluptate tempor.\r\n", + "address": "2 Lynch Street", + "city": "Allison", + "state": "Alabama", + "zip": 19522, + "country": "Benin", + "email": "schwartzgarcia@scentric.com", + "phone": "(890) 442-3503", + "color": "rgb(97,239,223)" + }, + { + "index": 58, + "name": "Adela Key", + "first": "Thornton", + "last": "Sykes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicoleglynn/73.jpg", + "boolean": true, + "guid": "8b7914e5-a64e-4c6a-aa82-b62d133a71b4", + "integer": 13, + "date": "Fri Jul 22 1983 16:03:00 GMT-0700 (PDT)", + "shortText": "nisi laboris duis ullamco", + "mediumText": "Aute aliqua adipisicing adipisicing nisi anim veniam adipisicing commodo. Pariatur adipisicing exercitation ullamco quis ad irure labore ad proident magna. Ea duis duis elit Lorem tempor nulla magna dolor adipisicing esse proident deserunt anim. Anim consectetur mollit irure consectetur velit Lorem enim Lorem exercitation laborum fugiat quis reprehenderit irure.", + "longText": "Minim occaecat consequat pariatur pariatur elit amet. Ex nostrud amet in cillum esse id laborum do velit. Anim laboris cillum incididunt fugiat reprehenderit est laboris mollit aliquip occaecat aliqua excepteur irure.\r\nVeniam occaecat sunt occaecat esse occaecat quis proident aliqua est ad magna. Occaecat proident esse officia consectetur sunt consectetur labore sint aliquip veniam ullamco in consequat est. Eiusmod labore amet id nulla tempor ad.\r\nDeserunt anim ea duis eu laborum aliqua exercitation. Proident enim Lorem enim mollit esse eu est ipsum adipisicing pariatur magna laboris. Excepteur exercitation labore ut qui velit do nulla. Et incididunt consectetur incididunt ipsum Lorem anim aute in dolor consequat laborum labore velit. Adipisicing duis voluptate duis deserunt dolore. Commodo culpa eiusmod excepteur sunt qui et elit non id occaecat est fugiat ea. Et ea elit dolore officia magna ad sit tempor est ullamco fugiat elit tempor dolor.\r\n", + "address": "2 Beaver Street", + "city": "Sidman", + "state": "North Carolina", + "zip": 72662, + "country": "Lithuania", + "email": "thorntonsykes@scentric.com", + "phone": "(895) 528-2574", + "color": "rgb(134,86,134)" + }, + { + "index": 59, + "name": "Church Walls", + "first": "Webb", + "last": "Maddox", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rickdt/73.jpg", + "boolean": true, + "guid": "446ed374-2f83-4fc6-933b-60892c7e61f6", + "integer": 97, + "date": "Fri Jun 11 1993 04:18:26 GMT-0700 (PDT)", + "shortText": "officia sint amet aute aliquip", + "mediumText": "Consectetur reprehenderit duis dolor duis sint adipisicing elit anim incididunt labore aliquip enim sit adipisicing.", + "longText": "Qui sit enim sunt anim quis aliquip reprehenderit id commodo pariatur sint. Ex aliquip quis voluptate id incididunt. Et fugiat laborum aute anim proident aliquip aliquip reprehenderit eu irure sint proident officia. Ipsum in commodo sint enim consectetur aliqua laboris ea proident ex. Proident culpa eiusmod ea officia excepteur anim fugiat irure ex nostrud dolore.\r\n", + "address": "4 Hicks Street", + "city": "Derwood", + "state": "Connecticut", + "zip": 72544, + "country": "Virgin Islands (British)", + "email": "webbmaddox@scentric.com", + "phone": "(944) 564-2803", + "color": "rgb(162,85,229)" + }, + { + "index": 60, + "name": "Kristi Crosby", + "first": "Cathleen", + "last": "Nichols", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/funwatercat/73.jpg", + "boolean": true, + "guid": "7a7ad168-8ae8-492d-956e-c2a16f8578e9", + "integer": 92, + "date": "Sun Jan 01 1989 18:01:36 GMT-0800 (PST)", + "shortText": "adipisicing Lorem velit quis", + "mediumText": "Velit esse consequat exercitation eu excepteur officia minim laborum cupidatat officia id ad amet occaecat. Dolor officia qui est ea nisi non.", + "longText": "Culpa anim qui adipisicing id cillum id officia quis incididunt aliqua. Anim excepteur dolore proident amet. Cillum sunt quis pariatur proident esse Lorem eiusmod et eiusmod non. Ipsum aliquip magna esse veniam nulla Lorem pariatur nulla voluptate ullamco excepteur nostrud non ex. Nisi et occaecat pariatur est irure amet consequat consectetur nisi consequat quis in exercitation. Culpa eu amet laborum ullamco do mollit mollit.\r\nIrure aliqua dolore nulla occaecat ipsum minim Lorem dolor Lorem ut. Velit amet laborum deserunt nostrud mollit Lorem ullamco incididunt excepteur magna. Eiusmod tempor pariatur anim do esse laborum sint ea elit excepteur. Commodo cillum cupidatat duis dolor ad laboris occaecat. Occaecat ad nostrud amet exercitation laborum eiusmod.\r\nAliquip ullamco officia ullamco do mollit amet non. Do ut aute velit culpa officia ullamco aliquip voluptate consequat quis quis irure qui dolore. Labore amet reprehenderit do velit aliqua minim aliqua commodo non ipsum labore culpa dolor ad. Nisi sit occaecat proident labore officia incididunt non consectetur Lorem. Consequat anim dolore duis esse ad aliqua ea sit ad ex. Consectetur est id non esse aliqua sit ut adipisicing commodo aliqua. Exercitation nisi consectetur tempor nulla.\r\nLorem in consectetur anim fugiat dolore duis fugiat. Nisi Lorem velit occaecat cillum consectetur ipsum aliqua velit et. Do cupidatat enim sit duis eu labore officia nostrud nisi qui.\r\n", + "address": "4 Engert Avenue", + "city": "Lumberton", + "state": "South Carolina", + "zip": 64235, + "country": "Jordan", + "email": "cathleennichols@scentric.com", + "phone": "(963) 428-3124", + "color": "rgb(237,75,179)" + }, + { + "index": 61, + "name": "Winnie Coleman", + "first": "Ila", + "last": "Bentley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ssiskind/73.jpg", + "boolean": false, + "guid": "2d8a81c0-1dd7-4c00-a89f-473446addf54", + "integer": 38, + "date": "Tue Jun 30 1998 19:23:01 GMT-0700 (PDT)", + "shortText": "incididunt", + "mediumText": "Ex velit voluptate aliquip adipisicing eiusmod. Occaecat aliqua voluptate nisi nostrud est sit sunt qui. Excepteur est nisi sunt esse ipsum ipsum reprehenderit velit deserunt minim labore est.", + "longText": "Do esse eu mollit sunt elit aute velit incididunt reprehenderit sunt. Ad ad minim adipisicing eiusmod magna pariatur irure velit labore cupidatat ea ipsum eu. Ipsum consequat ut in minim aliqua.\r\n", + "address": "2 Havemeyer Street", + "city": "Frank", + "state": "Michigan", + "zip": 60748, + "country": "Nicaragua", + "email": "ilabentley@scentric.com", + "phone": "(947) 456-2663", + "color": "rgb(77,78,128)" + }, + { + "index": 62, + "name": "Clemons Chen", + "first": "Warner", + "last": "Blair", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_purplebunny/73.jpg", + "boolean": true, + "guid": "1d9dfc0f-0e70-4189-9a2d-d134505173d7", + "integer": 28, + "date": "Sat Sep 12 2009 19:12:02 GMT-0700 (PDT)", + "shortText": "officia", + "mediumText": "Exercitation non labore et duis et Lorem est et irure fugiat dolore officia ex.", + "longText": "Ea aute eiusmod ipsum ipsum eu nostrud. Duis culpa consequat aute nulla nisi ut sint sit culpa et duis magna enim. Nisi sunt dolore minim quis do. Magna deserunt duis velit et ut et enim magna laborum nulla ea culpa commodo. Minim ut id culpa anim laborum laborum consectetur amet et ullamco culpa do labore.\r\nEst magna aliquip ea ullamco. Exercitation deserunt occaecat id in ut sit laborum aute. Ex ut ex anim cupidatat do amet proident mollit. Dolor magna irure id culpa. Amet ut laborum pariatur irure dolor velit aute magna cupidatat commodo amet officia reprehenderit. Aute elit nisi excepteur qui cillum nulla consequat quis veniam est fugiat sunt. Proident consequat sunt exercitation sint nostrud commodo laborum adipisicing excepteur deserunt.\r\nEiusmod sunt consequat enim non irure excepteur adipisicing. Ad id veniam consectetur fugiat excepteur ex non et velit ut Lorem. Exercitation occaecat officia fugiat consectetur tempor exercitation culpa sint enim cupidatat commodo ullamco Lorem. Aliquip non ut fugiat nisi Lorem nulla mollit aliquip voluptate et exercitation minim enim cupidatat.\r\nElit do est amet nulla aliquip proident consectetur aliquip. Lorem nulla incididunt laborum in proident. Lorem veniam enim tempor non consectetur et ea non elit. Cupidatat pariatur adipisicing quis ex in incididunt dolor officia in. Aliqua do laboris dolore eu dolore magna eiusmod consequat nostrud anim.\r\nUt ullamco voluptate fugiat ullamco irure laboris commodo officia veniam sint ex magna id nisi. Qui occaecat sit deserunt aliqua veniam. Cillum do eiusmod velit voluptate magna do sunt adipisicing adipisicing ex esse officia eiusmod. Consectetur minim sint pariatur eiusmod ipsum anim. Consectetur anim esse fugiat tempor excepteur aliqua esse deserunt consequat tempor velit magna.\r\n", + "address": "2 Woodbine Street", + "city": "Rivers", + "state": "Maine", + "zip": 35489, + "country": "South Africa", + "email": "warnerblair@scentric.com", + "phone": "(811) 480-2342", + "color": "rgb(88,244,211)" + }, + { + "index": 63, + "name": "Marcy William", + "first": "Garcia", + "last": "Carter", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linkthief/73.jpg", + "boolean": false, + "guid": "bb80a091-a78d-4187-ab75-c5e5a6cb2362", + "integer": 3, + "date": "Wed Mar 20 1974 00:41:43 GMT-0700 (PDT)", + "shortText": "amet", + "mediumText": "Deserunt officia laboris velit enim do cillum enim. Aliquip commodo veniam dolore commodo eiusmod nostrud occaecat adipisicing amet id. Incididunt cillum sunt esse consequat magna eiusmod ex culpa. Aliquip irure excepteur sunt esse incididunt et sint.", + "longText": "Ullamco veniam exercitation velit eu aute fugiat nisi dolor do. Deserunt culpa laboris ipsum cillum sunt pariatur occaecat cillum sint qui deserunt tempor pariatur. Ex ea incididunt aute in fugiat dolor reprehenderit mollit velit ut eiusmod. Veniam sunt sit officia sint Lorem fugiat dolor commodo amet culpa. Officia nostrud eiusmod commodo ex labore nulla id ea ipsum excepteur laboris velit.\r\nFugiat eiusmod laboris pariatur labore. Non enim nisi nostrud quis amet laboris aliquip laborum et irure aute veniam. Anim ullamco in officia commodo aliqua minim. Amet in enim nostrud pariatur id est occaecat ad occaecat. Nisi commodo proident et pariatur est ea esse proident dolore aliqua sit voluptate.\r\nEt est fugiat duis cillum veniam nulla. Enim anim commodo consequat aliquip excepteur Lorem dolor adipisicing anim incididunt officia dolore laboris. Incididunt pariatur officia minim fugiat consectetur reprehenderit commodo et ut. Commodo nisi exercitation duis excepteur ea minim qui enim tempor aliqua Lorem ipsum est excepteur. Ullamco veniam occaecat excepteur et laborum. Voluptate Lorem proident id ipsum laboris consequat ullamco occaecat est cupidatat aute ipsum aliqua.\r\nAnim mollit laboris amet dolor occaecat tempor id. Adipisicing sit magna ullamco tempor dolor ullamco sunt exercitation enim dolore exercitation non ullamco eiusmod. Esse ad aliquip ullamco voluptate dolor voluptate Lorem nostrud Lorem aute id Lorem. Laborum nulla ex pariatur anim irure cillum veniam eiusmod commodo.\r\nAdipisicing est ea adipisicing incididunt nostrud reprehenderit labore pariatur est. Consequat sint deserunt ea ullamco do cupidatat incididunt mollit sunt veniam. Eu velit Lorem officia ex officia deserunt adipisicing culpa cillum mollit tempor cupidatat proident. Qui aliquip labore sunt commodo veniam aliqua est cillum. Ut esse laboris consectetur mollit eiusmod duis sunt esse duis laboris tempor.\r\n", + "address": "2 Sedgwick Place", + "city": "Malott", + "state": "Kansas", + "zip": 33342, + "country": "Mexico", + "email": "garciacarter@scentric.com", + "phone": "(838) 400-3578", + "color": "rgb(238,146,141)" + }, + { + "index": 64, + "name": "Saunders Tyler", + "first": "Bowen", + "last": "Olson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ffbel/73.jpg", + "boolean": false, + "guid": "81275503-dc66-4920-a852-66b9bb420ab7", + "integer": 83, + "date": "Sat Jun 05 2004 18:02:53 GMT-0700 (PDT)", + "shortText": "eu", + "mediumText": "Cillum eiusmod sit aliquip magna excepteur occaecat adipisicing culpa. Sint quis dolor est laborum cupidatat ea dolore eu incididunt quis ullamco. Culpa non ad consectetur aliqua sint consequat duis ea tempor cupidatat culpa minim duis aliqua.", + "longText": "Non veniam consequat laborum dolor deserunt nulla amet incididunt. Velit eu ut adipisicing labore nisi. Aute ea ex esse reprehenderit quis officia do. Labore dolor elit ea aliqua. Ex ut anim eiusmod est ullamco qui laborum consequat consequat ullamco velit nulla. Nisi id proident occaecat id ipsum cillum irure ea quis labore reprehenderit ipsum eu. Ea ex irure quis culpa proident laborum ut veniam magna nostrud ex officia.\r\nTempor ut sint sunt fugiat commodo dolore irure qui enim mollit. Lorem id cillum nulla ullamco amet. Proident anim proident ea ut aliquip in elit. Consequat eiusmod ut aliqua enim qui nulla reprehenderit laboris et ea ad aliqua commodo. Excepteur in proident irure esse.\r\n", + "address": "2 Fleet Walk", + "city": "Shelby", + "state": "Iowa", + "zip": 95437, + "country": "Sudan", + "email": "bowenolson@scentric.com", + "phone": "(895) 420-2620", + "color": "rgb(71,127,188)" + }, + { + "index": 65, + "name": "Landry Hendricks", + "first": "Kidd", + "last": "Sanders", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/labibjaffar/73.jpg", + "boolean": true, + "guid": "c1d57dbd-5b06-44aa-bf5b-ffa5bb4cc5ba", + "integer": 15, + "date": "Sat Oct 19 1996 17:52:51 GMT-0700 (PDT)", + "shortText": "elit duis", + "mediumText": "Laboris irure quis ipsum consequat consectetur culpa aliqua in.", + "longText": "Ad aliquip adipisicing eu ex sunt duis pariatur fugiat consectetur ex. Reprehenderit do Lorem velit et tempor. Duis ad ad minim dolore excepteur ex nostrud officia. Elit aute aliqua laboris enim velit esse ullamco. Cupidatat non sunt laborum labore eu aliqua exercitation ea. Mollit ex non consectetur ad ex. Dolor occaecat deserunt excepteur culpa sit proident ad sint nisi esse elit et irure anim.\r\nCupidatat ullamco aliquip in commodo laboris elit minim ad. Sit esse nulla et ipsum officia commodo. Dolore ad proident tempor aliquip occaecat tempor mollit.\r\n", + "address": "3 Union Avenue", + "city": "Shepardsville", + "state": "Vermont", + "zip": 42858, + "country": "Papua New Guinea", + "email": "kiddsanders@scentric.com", + "phone": "(857) 415-3707", + "color": "rgb(205,180,193)" + }, + { + "index": 66, + "name": "Hogan Strickland", + "first": "Deanne", + "last": "Casey", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tnrzdmr/73.jpg", + "boolean": false, + "guid": "66bcba0b-2ae4-4fba-9b76-ebf0bacf8b3c", + "integer": 23, + "date": "Tue Mar 24 2009 07:16:09 GMT-0700 (PDT)", + "shortText": "id non labore cupidatat enim", + "mediumText": "Deserunt dolor do cillum ut proident. Ad non proident laborum sint tempor velit. Voluptate eu ea commodo est ipsum laboris non nulla reprehenderit incididunt laborum proident id exercitation. Laboris amet exercitation qui proident veniam laboris.", + "longText": "Ea proident esse nisi eu officia eiusmod laborum. Occaecat aliqua eu enim ullamco culpa labore irure amet sunt adipisicing magna. Culpa enim veniam magna qui anim ad nulla. Lorem fugiat in nostrud sunt do mollit eiusmod ut. Occaecat ipsum esse laboris nostrud reprehenderit velit.\r\nVoluptate eiusmod ullamco sunt cupidatat pariatur ea qui non. Velit commodo sint esse adipisicing pariatur ut id ad Lorem cillum. Nisi ut esse quis deserunt magna eu esse minim.\r\nIncididunt ullamco sunt sunt velit. Minim quis quis quis aliqua anim quis est ad pariatur esse reprehenderit labore laboris. Irure magna dolor in nisi sunt et.\r\n", + "address": "2 Cornelia Street", + "city": "Kent", + "state": "Nebraska", + "zip": 46682, + "country": "Romania", + "email": "deannecasey@scentric.com", + "phone": "(935) 548-2580", + "color": "rgb(106,182,101)" + }, + { + "index": 67, + "name": "Hart Carlson", + "first": "Hardin", + "last": "Thornton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyjantz/73.jpg", + "boolean": true, + "guid": "7601ed4e-21fb-4024-bb7e-36d45c052b7f", + "integer": 68, + "date": "Sat Apr 20 2002 15:29:17 GMT-0700 (PDT)", + "shortText": "ex anim", + "mediumText": "Tempor veniam proident elit proident aliqua nostrud tempor eiusmod. Commodo id dolor sint amet commodo officia. Anim sint ea amet cillum. Esse cupidatat aute veniam ipsum excepteur.", + "longText": "Cillum aute voluptate veniam minim et excepteur ad nulla enim anim adipisicing incididunt aute. Aliqua adipisicing elit minim officia id mollit laborum sunt do. Nostrud do laboris fugiat ad mollit. Eu dolor dolor Lorem labore mollit esse consectetur in fugiat enim ullamco sit elit nisi. Enim eiusmod nostrud enim velit. Lorem commodo laboris excepteur eu occaecat minim.\r\nEst nulla eiusmod tempor amet dolore aute proident eu commodo minim sint proident consectetur. Cupidatat sunt quis laboris adipisicing eiusmod aliqua mollit. Elit qui nostrud commodo irure irure ex esse sunt officia. Tempor cillum nulla anim aliqua. Cillum tempor irure voluptate sunt laboris non commodo anim qui ullamco. Quis velit consectetur eu irure proident reprehenderit nisi nulla dolore sunt magna.\r\nCulpa laborum enim enim proident sit dolore pariatur eiusmod. Excepteur proident mollit in ut do non. Cillum duis non consectetur ullamco minim Lorem occaecat consequat tempor ullamco veniam labore labore aliquip.\r\nLaboris voluptate anim dolore nisi ullamco consequat nostrud dolor. Nulla do do esse aute sint deserunt qui. Ex aliqua dolore minim dolore consectetur nulla consequat ad consequat. Nulla et proident magna eu consequat ullamco excepteur in ipsum enim ut duis. Deserunt et sunt tempor quis amet deserunt cupidatat veniam. Labore reprehenderit magna minim amet nostrud amet. Reprehenderit pariatur dolore ut culpa sint dolore.\r\n", + "address": "2 Lincoln Place", + "city": "Walland", + "state": "Florida", + "zip": 37274, + "country": "Bangladesh", + "email": "hardinthornton@scentric.com", + "phone": "(905) 466-2231", + "color": "rgb(145,123,64)" + }, + { + "index": 68, + "name": "Benita Lester", + "first": "Taylor", + "last": "Irwin", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ibrahemaq/73.jpg", + "boolean": false, + "guid": "dc96c6e9-9c43-4525-8de4-9a5e504ab886", + "integer": 2, + "date": "Sat Jun 25 1977 03:55:08 GMT-0700 (PDT)", + "shortText": "ex", + "mediumText": "Anim laboris dolore non aliqua proident aliqua et est ad reprehenderit duis ipsum do. Irure Lorem voluptate tempor ipsum exercitation. Sint deserunt adipisicing Lorem sit ea duis ex. Et fugiat anim est non irure proident in commodo sunt pariatur nulla.", + "longText": "Ut aute anim amet minim nulla. Fugiat dolor pariatur quis do aute officia magna in culpa ipsum fugiat. Cupidatat cillum duis aliquip nulla ea quis aliqua. Cillum sunt laboris velit deserunt cupidatat ullamco. Incididunt eiusmod culpa proident duis ex enim ad dolor labore voluptate eiusmod.\r\nLabore culpa commodo amet eu elit magna nisi minim in irure. Dolor adipisicing aliquip laboris irure. Amet et enim fugiat mollit ad laboris sint elit cupidatat deserunt. Ut amet laborum veniam elit amet minim et laboris aute nulla consequat esse ut. Ea dolore sit excepteur eiusmod pariatur sit non non consequat aute.\r\nAute culpa aute ullamco sunt irure quis voluptate est laborum. Duis eu ut do laboris laborum ipsum. Incididunt officia culpa velit commodo elit aliquip Lorem consectetur quis dolor veniam officia. Voluptate cupidatat duis ipsum elit cupidatat.\r\nCillum non ad ad et. Ad eiusmod dolor excepteur cillum mollit laboris ullamco cillum esse est. Aliquip eiusmod cupidatat ex id aute do officia excepteur non.\r\nOccaecat ullamco velit aliqua amet labore veniam dolore officia dolor nisi deserunt nisi qui fugiat. Velit laborum duis reprehenderit reprehenderit laboris occaecat. Aute exercitation magna exercitation magna sit. Fugiat cupidatat tempor eiusmod voluptate enim. Aliqua cillum sunt deserunt ex consectetur anim in labore excepteur fugiat reprehenderit.\r\n", + "address": "4 Crosby Avenue", + "city": "Wintersburg", + "state": "New Jersey", + "zip": 37633, + "country": "Monaco", + "email": "taylorirwin@scentric.com", + "phone": "(898) 517-3041", + "color": "rgb(85,97,125)" + }, + { + "index": 69, + "name": "Cantu Owens", + "first": "Stone", + "last": "Watson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/croakx/73.jpg", + "boolean": false, + "guid": "32abd836-bc46-4a8e-a2c1-7dc92b9e8322", + "integer": 46, + "date": "Mon Nov 17 2003 17:10:32 GMT-0800 (PST)", + "shortText": "cupidatat officia anim ipsum aliquip", + "mediumText": "Elit duis non minim aliqua aliquip irure. Duis ex est ut exercitation laborum excepteur aliqua. Nostrud ut fugiat officia exercitation cupidatat adipisicing nisi in ut ipsum sit reprehenderit. Qui ea Lorem quis velit.", + "longText": "Ipsum ullamco est aute tempor culpa aute enim id incididunt commodo aliqua. Mollit aute sit eu sint cillum ea cupidatat nulla labore anim ut. Est officia tempor ex amet veniam anim non mollit nulla cillum labore adipisicing velit. Et ut nostrud Lorem quis minim laboris mollit sit.\r\nVelit officia nulla reprehenderit exercitation irure exercitation eiusmod exercitation voluptate consequat cupidatat incididunt nisi. Ipsum aliqua quis laborum est sunt. In consectetur eiusmod aute magna. Ex ullamco sit sint excepteur esse eu magna aliqua do aute elit sunt cillum adipisicing. Sunt irure pariatur laboris et fugiat irure. Amet ipsum nostrud est Lorem anim velit. Est cupidatat dolor consectetur velit occaecat mollit cillum anim est pariatur ad occaecat in dolor.\r\nUllamco incididunt fugiat sit fugiat id Lorem pariatur laborum Lorem consequat. Ullamco irure incididunt duis occaecat aliqua pariatur. Aliqua reprehenderit aliqua est non nisi et consequat commodo nisi laborum. Ipsum est qui sunt voluptate elit do voluptate culpa sint ex est officia ad.\r\n", + "address": "2 Bayard Street", + "city": "Glasgow", + "state": "Wisconsin", + "zip": 57777, + "country": "Martinique", + "email": "stonewatson@scentric.com", + "phone": "(867) 474-2146", + "color": "rgb(96,110,114)" + }, + { + "index": 70, + "name": "Colon Jarvis", + "first": "Avery", + "last": "Knox", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_dukex/73.jpg", + "boolean": false, + "guid": "9bcf96b4-7ca7-4a59-b7b7-6d6a57293012", + "integer": 28, + "date": "Sun Jan 28 2001 22:12:27 GMT-0800 (PST)", + "shortText": "pariatur officia reprehenderit ut", + "mediumText": "Ut dolore quis eiusmod culpa laboris ad fugiat.", + "longText": "Irure sunt labore commodo ea ex in dolore. Minim reprehenderit sit non et reprehenderit qui esse ex adipisicing. Duis ipsum in culpa est. Non do nisi pariatur dolore elit do qui non pariatur. Id id laboris aliquip minim sint pariatur officia consequat proident cillum sint.\r\nFugiat duis est irure mollit. Cupidatat enim anim adipisicing mollit enim ut nostrud sit. Dolore anim ut enim sint fugiat dolor dolore laboris Lorem eu nostrud pariatur ullamco. Dolore eiusmod aliquip amet esse sunt culpa eiusmod aliquip et exercitation Lorem. Mollit deserunt eiusmod ex ipsum qui consectetur ullamco velit. Reprehenderit proident cupidatat reprehenderit cupidatat. Voluptate eu sit reprehenderit veniam ut.\r\nDo consectetur culpa deserunt dolor. Laborum dolore cillum exercitation id sit veniam dolor sunt consequat. Proident est proident sit ut incididunt tempor ullamco sunt.\r\nIn amet consectetur nulla ullamco ullamco culpa. Magna deserunt esse id ad proident pariatur aliquip cupidatat elit nulla deserunt ipsum consectetur elit. Eu sint sint incididunt nulla ad consequat ex anim sit duis ut quis mollit. Id aliquip consectetur cupidatat officia irure enim eu nostrud aliqua eiusmod dolore culpa. Cillum aute laborum aliquip aute labore nostrud cillum veniam incididunt veniam amet. Sit ad in proident cupidatat elit irure nostrud dolore.\r\n", + "address": "4 Sharon Street", + "city": "Chapin", + "state": "Washington", + "zip": 80442, + "country": "Kuwait", + "email": "averyknox@scentric.com", + "phone": "(851) 582-2204", + "color": "rgb(122,179,117)" + }, + { + "index": 71, + "name": "Ratliff Kline", + "first": "Cathryn", + "last": "Rodgers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gregsqueeb/73.jpg", + "boolean": false, + "guid": "9a177597-6ee1-4784-b217-60ded54d0072", + "integer": 32, + "date": "Fri May 07 1976 11:12:00 GMT-0700 (PDT)", + "shortText": "nostrud enim", + "mediumText": "Officia do enim nisi ullamco enim eiusmod eu enim ex tempor. Id voluptate nisi quis officia sint ut ex veniam mollit excepteur tempor. Et aliqua velit sit fugiat do voluptate ipsum aliquip veniam in sint do. Culpa ut dolore culpa sunt nostrud reprehenderit do veniam voluptate ut labore labore ullamco tempor. Voluptate voluptate veniam laborum deserunt.", + "longText": "Et laboris labore irure consequat consequat et eu minim aute consectetur. Nisi tempor sunt officia ad dolore culpa. Veniam proident minim velit nisi amet id nulla ullamco eiusmod sit ad.\r\n", + "address": "2 Burnett Street", + "city": "Tivoli", + "state": "Oregon", + "zip": 69271, + "country": "Ukraine", + "email": "cathrynrodgers@scentric.com", + "phone": "(819) 482-2099", + "color": "rgb(177,117,238)" + }, + { + "index": 72, + "name": "Burgess Mcconnell", + "first": "Head", + "last": "Cohen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/csmnng/73.jpg", + "boolean": false, + "guid": "22894c1b-29ad-4e31-a69e-d724d00cdec3", + "integer": 51, + "date": "Fri Jan 08 1993 09:39:13 GMT-0800 (PST)", + "shortText": "cupidatat ex excepteur tempor", + "mediumText": "Proident eiusmod mollit voluptate culpa incididunt et velit commodo laborum et. Anim ex sunt id ea id excepteur commodo esse exercitation pariatur esse anim. Qui dolore irure eiusmod eu dolore.", + "longText": "Dolor incididunt eiusmod nostrud consequat mollit amet nisi ea. Officia dolore mollit eiusmod ullamco anim incididunt. Laboris sint enim ex mollit consequat consequat.\r\nMinim quis labore eu dolor adipisicing magna nulla nulla quis voluptate voluptate. Nisi tempor non veniam duis qui dolore qui et ut exercitation amet labore elit. Reprehenderit magna do aliquip aliqua cillum tempor ex veniam mollit dolore est nulla ad aute. Est amet non ipsum adipisicing sunt duis Lorem officia ad culpa do proident ad. Consectetur excepteur culpa consequat esse consequat exercitation deserunt adipisicing adipisicing occaecat nisi. Commodo officia commodo deserunt minim excepteur do fugiat consectetur. Aliqua proident ad fugiat eiusmod tempor dolore do incididunt eiusmod labore quis.\r\nLabore fugiat incididunt aliquip deserunt fugiat nostrud. Velit minim aliqua sit incididunt. Velit ad et nulla est consectetur Lorem officia ut eu consequat enim ut. Consequat labore qui magna do aute deserunt consectetur. Minim aliquip in quis minim ad mollit ut non Lorem.\r\nEu laboris culpa magna dolor pariatur anim ea amet fugiat minim. Adipisicing fugiat ea est eiusmod proident proident anim commodo quis laboris cupidatat. Labore aliquip mollit Lorem voluptate sit laborum irure id adipisicing ex. Ad cillum sunt sit magna exercitation mollit eiusmod mollit est elit. Ullamco aute esse magna deserunt irure ex et ullamco consequat laborum deserunt aute. Nulla mollit sunt nostrud in quis in est nisi eiusmod excepteur ut voluptate. Do anim ex cillum eiusmod duis ut sit.\r\nAdipisicing nisi ullamco qui sint est laborum tempor incididunt pariatur excepteur fugiat. Officia sunt proident laborum fugiat quis magna veniam. Nulla do do esse magna. Labore ad sit mollit ullamco nulla aute est sit ipsum ex cupidatat. Dolor ex duis nostrud amet incididunt incididunt reprehenderit non tempor elit magna.\r\n", + "address": "3 Hamilton Avenue", + "city": "Crisman", + "state": "Illinois", + "zip": 36121, + "country": "Guatemala", + "email": "headcohen@scentric.com", + "phone": "(930) 570-3544", + "color": "rgb(151,112,173)" + }, + { + "index": 73, + "name": "Roberta Bond", + "first": "Simone", + "last": "Whitfield", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ogmenemre/73.jpg", + "boolean": false, + "guid": "4750f9fa-37f6-41d0-8599-946f9dff2e00", + "integer": 6, + "date": "Thu Sep 06 1984 11:04:11 GMT-0700 (PDT)", + "shortText": "Lorem consectetur", + "mediumText": "Ad anim sint ex in voluptate deserunt ut nulla adipisicing. Elit non velit pariatur nostrud quis do quis cillum ea et sint Lorem. Laboris eu amet do dolor cillum esse voluptate adipisicing officia aliqua aliqua duis.", + "longText": "Commodo cupidatat velit duis elit id duis aliqua. Laboris dolor laboris ad irure laborum. Dolor amet aliqua eu sint. Anim occaecat irure ex cillum qui et adipisicing cupidatat deserunt et est consequat velit quis. Magna ut cillum nostrud ea pariatur occaecat. Culpa eu voluptate nostrud elit anim cupidatat fugiat aute dolore nisi nostrud magna nostrud pariatur. Non aliquip irure excepteur culpa irure veniam ea ad deserunt laborum reprehenderit Lorem.\r\nCillum tempor nulla do tempor eiusmod id esse officia culpa aliqua culpa et exercitation laboris. Sit sit Lorem eu fugiat Lorem. Laboris consequat incididunt aliquip Lorem cupidatat sint deserunt ut duis labore dolor ipsum laboris nulla. Deserunt adipisicing reprehenderit id commodo aute sunt dolore ex duis cillum nisi eu. Anim deserunt et adipisicing fugiat anim in.\r\nId non irure in esse incididunt aliquip ullamco magna et nulla mollit dolore. Velit aliquip excepteur pariatur magna Lorem fugiat. Exercitation nisi nostrud cupidatat elit. Velit occaecat culpa nisi nisi proident quis dolore anim cupidatat adipisicing ullamco ad cupidatat dolor.\r\nConsequat ut esse incididunt et in commodo culpa consequat ipsum laboris consequat incididunt anim incididunt. Ad et nostrud amet non Lorem enim laborum id ad Lorem magna excepteur. Ad cupidatat cillum proident exercitation dolore aute veniam nostrud ex duis esse elit. Voluptate ullamco ipsum et do est ea laborum reprehenderit irure magna. Exercitation aliqua proident magna irure ex est laboris ea aliqua esse. Ea deserunt culpa aute velit reprehenderit Lorem voluptate mollit quis Lorem deserunt Lorem amet.\r\n", + "address": "4 Hastings Street", + "city": "Linganore", + "state": "West Virginia", + "zip": 87951, + "country": "Argentina", + "email": "simonewhitfield@scentric.com", + "phone": "(959) 575-3680", + "color": "rgb(205,221,178)" + }, + { + "index": 74, + "name": "Sara Mckay", + "first": "Sue", + "last": "Cotton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ionutmaxim/73.jpg", + "boolean": false, + "guid": "1da2f858-f774-49c1-9d77-e8a3eb040140", + "integer": 31, + "date": "Fri Nov 25 1994 01:11:26 GMT-0800 (PST)", + "shortText": "et", + "mediumText": "Pariatur Lorem veniam ullamco cupidatat sint. Cillum velit nostrud excepteur adipisicing velit Lorem fugiat proident.", + "longText": "Consectetur tempor mollit do ea anim dolore laboris in exercitation cupidatat commodo reprehenderit Lorem. Consequat exercitation sint culpa aute quis nisi. Exercitation consectetur irure aliqua cillum ut non labore exercitation ea et.\r\nUllamco dolor consequat reprehenderit dolore id mollit laborum ad. Amet ea voluptate voluptate fugiat sint adipisicing dolor dolor occaecat eu sit. Ea ea est amet enim tempor occaecat tempor sit exercitation. Ad eu nisi dolore do culpa do anim irure aliquip officia irure. Consectetur et voluptate sint sunt fugiat deserunt consectetur deserunt voluptate laborum non tempor occaecat. Amet magna velit ad qui consectetur reprehenderit deserunt voluptate commodo non ullamco proident laboris.\r\nCillum magna incididunt pariatur sunt ipsum duis voluptate in fugiat id officia cupidatat reprehenderit ipsum. Dolore anim excepteur ea laboris labore minim. Excepteur ex adipisicing eiusmod sit ut reprehenderit. Mollit elit veniam dolore quis nulla officia eiusmod minim nulla non amet. Minim nostrud veniam fugiat cillum est consectetur amet non ad dolore pariatur nisi.\r\n", + "address": "2 Fair Street", + "city": "Kingstowne", + "state": "Mississippi", + "zip": 18339, + "country": "Mauritius", + "email": "suecotton@scentric.com", + "phone": "(816) 520-2774", + "color": "rgb(241,214,199)" + }, + { + "index": 75, + "name": "Coleman Cook", + "first": "Olson", + "last": "Burch", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teylorfeliz/73.jpg", + "boolean": true, + "guid": "0788dba4-5fa8-476e-9ba6-8f387bf77e75", + "integer": 13, + "date": "Thu Jun 21 1984 02:52:09 GMT-0700 (PDT)", + "shortText": "anim anim deserunt deserunt anim", + "mediumText": "Esse sunt irure magna amet. Adipisicing aliqua ut dolor nulla non aute tempor eu ex sit id et. Magna dolore aliqua qui velit eu officia. Est sunt magna adipisicing commodo mollit aute duis magna.", + "longText": "Duis fugiat culpa proident mollit nostrud. Dolore incididunt in esse veniam eiusmod voluptate consequat amet. Excepteur eu et duis enim proident ullamco irure minim duis quis anim consectetur. Amet excepteur et do officia fugiat mollit Lorem ut elit. Eiusmod magna tempor duis Lorem nostrud. Fugiat elit commodo non et fugiat eu eiusmod in minim veniam sint qui veniam ullamco. Aliquip sint ad culpa esse laboris elit.\r\nMinim reprehenderit quis ut incididunt incididunt cupidatat. Sit sit elit tempor irure id et aliqua deserunt Lorem aliqua exercitation. Elit nisi dolor enim amet esse incididunt ad. Aliqua elit velit nulla sit sint non occaecat ipsum ea velit minim proident. Sint laboris labore laboris elit nulla ullamco laboris cupidatat amet consectetur. Do eiusmod proident id laborum fugiat nostrud voluptate fugiat. Labore pariatur proident eiusmod laborum sunt occaecat enim nisi labore.\r\nLabore labore nisi velit consequat magna officia reprehenderit consequat. Nulla eu velit laborum voluptate. Fugiat tempor laborum labore minim nostrud tempor sit mollit laboris enim consectetur sit ut veniam. Occaecat exercitation ex consequat id occaecat elit duis reprehenderit ut enim quis magna. Non do ea fugiat quis duis esse amet deserunt eu id duis est enim.\r\nNostrud labore tempor minim proident do quis labore aliqua est mollit duis minim. Esse veniam commodo velit culpa in pariatur laborum in minim exercitation excepteur labore commodo. Mollit cillum ipsum adipisicing in nulla mollit irure. Et laborum minim sit id pariatur ad voluptate nulla ullamco deserunt veniam. Deserunt non aliquip sint amet.\r\nEsse dolor adipisicing ut pariatur pariatur dolore eu mollit reprehenderit consequat. Adipisicing fugiat sunt voluptate magna Lorem est eu anim id commodo eu consectetur. Mollit ad excepteur et do velit dolor adipisicing veniam cupidatat excepteur qui.\r\n", + "address": "2 Hull Street", + "city": "Darbydale", + "state": "Rhode Island", + "zip": 97458, + "country": "St. Helena", + "email": "olsonburch@scentric.com", + "phone": "(995) 590-2366", + "color": "rgb(91,252,80)" + }, + { + "index": 76, + "name": "Walton Wagner", + "first": "Powell", + "last": "Nunez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/73.jpg", + "boolean": false, + "guid": "6c34053d-b9d3-4a75-a660-83b6fc0925a5", + "integer": 97, + "date": "Wed Nov 27 1996 04:47:04 GMT-0800 (PST)", + "shortText": "sunt voluptate dolor", + "mediumText": "Magna elit cillum enim sunt ut occaecat veniam elit elit laborum. Amet sint labore tempor tempor consectetur commodo aliquip magna duis non et. Aute labore est cupidatat do officia minim consectetur ea exercitation ex nostrud enim tempor veniam. Excepteur amet eiusmod velit exercitation eu cillum et minim sunt adipisicing dolor velit. Duis laboris dolor aliquip minim non laboris do veniam.", + "longText": "Ea esse officia reprehenderit do proident dolore ullamco. Quis officia minim sit anim tempor laborum in tempor dolore officia consectetur. Officia pariatur est commodo veniam in ex duis labore velit irure enim laboris id. Esse irure in adipisicing irure officia et veniam anim mollit. Qui qui tempor proident sunt enim incididunt elit aliqua Lorem dolore est do enim dolor. Deserunt consequat pariatur magna aute enim.\r\nDolor est culpa magna duis reprehenderit Lorem ad dolore tempor aute velit veniam sunt. Labore reprehenderit ea culpa ea reprehenderit sint amet in eiusmod dolore. Anim consequat ex labore qui nulla occaecat laborum. Id voluptate pariatur esse aute consequat et nisi. Proident dolor consequat anim esse eiusmod et veniam proident qui non commodo nulla cupidatat.\r\n", + "address": "2 Vanderveer Place", + "city": "Robinette", + "state": "Georgia", + "zip": 54771, + "country": "Suriname", + "email": "powellnunez@scentric.com", + "phone": "(992) 548-3878", + "color": "rgb(95,253,239)" + }, + { + "index": 77, + "name": "Harris Ewing", + "first": "Orr", + "last": "Buchanan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/S0ufi4n3/73.jpg", + "boolean": true, + "guid": "387624b1-451d-47c6-978f-aabd0b34e707", + "integer": 69, + "date": "Sun Aug 18 1996 22:19:42 GMT-0700 (PDT)", + "shortText": "duis ea", + "mediumText": "Irure aliquip sit excepteur incididunt nisi excepteur laboris in do proident commodo ad. Culpa dolore Lorem irure magna mollit laboris officia fugiat amet. Ut ipsum est mollit quis. In occaecat mollit officia fugiat magna occaecat.", + "longText": "Magna cillum culpa esse in sint in sit. Sint aute nulla ad pariatur commodo sint aute consectetur magna dolore labore ex Lorem culpa. Officia aute magna cupidatat dolor aliquip minim voluptate mollit aliqua pariatur ullamco. Ullamco labore ex exercitation ad culpa labore laborum deserunt mollit mollit enim ut. Incididunt dolore est id cupidatat eu do aliqua minim occaecat consectetur.\r\n", + "address": "3 Ralph Avenue", + "city": "Martell", + "state": "New Mexico", + "zip": 31746, + "country": "Greece", + "email": "orrbuchanan@scentric.com", + "phone": "(861) 535-2683", + "color": "rgb(162,149,148)" + }, + { + "index": 78, + "name": "Kerr Briggs", + "first": "Helena", + "last": "Lynch", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nepdud/73.jpg", + "boolean": false, + "guid": "d16cdb93-caba-40e3-b359-8124309f23fd", + "integer": 83, + "date": "Tue Dec 27 2011 21:18:32 GMT-0800 (PST)", + "shortText": "adipisicing est laboris eiusmod", + "mediumText": "Voluptate ad eiusmod eiusmod sunt minim do et ullamco. Id incididunt do labore consectetur laborum excepteur labore id nostrud cupidatat anim officia et velit. Nostrud sunt commodo aute culpa ea et consequat laborum commodo deserunt. Dolore ad amet reprehenderit incididunt exercitation enim duis deserunt. Ea irure et veniam sunt Lorem tempor.", + "longText": "Commodo enim ullamco cupidatat ex minim et ex fugiat eiusmod exercitation minim eu. Id eu exercitation commodo fugiat elit ex laborum ea. Aute duis adipisicing mollit duis non anim anim deserunt. Nulla adipisicing irure commodo ut nostrud irure ea Lorem in enim laborum laboris laborum.\r\nSunt eiusmod dolor ullamco elit mollit esse consequat culpa non do minim reprehenderit exercitation. Id quis laborum eu id Lorem eu aute elit aliqua aliquip labore. Nisi sit mollit velit anim culpa proident esse ut sunt deserunt quis ad dolor. Incididunt excepteur non est occaecat do Lorem veniam sunt cillum velit ut exercitation et. Minim eiusmod ipsum veniam nisi nostrud anim commodo amet est amet ullamco minim ut. Magna aliquip Lorem dolore do nulla ipsum aute mollit incididunt in adipisicing pariatur ad eiusmod. Est velit Lorem incididunt ex aliquip ut laboris nulla.\r\nAd voluptate ullamco dolor culpa. Occaecat sit anim anim id esse commodo consectetur. Velit aliquip laborum fugiat occaecat consectetur magna amet tempor consequat nisi proident nisi. Aliquip et sit aliquip anim. Labore in culpa elit quis reprehenderit duis anim dolor dolore occaecat sint ad Lorem.\r\nDolore culpa irure cillum enim adipisicing enim sint ut laboris elit cillum veniam eu sit. Magna Lorem dolore sint aute cupidatat incididunt excepteur adipisicing magna ex exercitation. Duis id commodo eu adipisicing. Non labore ut laboris officia id.\r\n", + "address": "2 Wilson Avenue", + "city": "Coral", + "state": "Arizona", + "zip": 32289, + "country": "New Caledonia", + "email": "helenalynch@scentric.com", + "phone": "(880) 590-3786", + "color": "rgb(192,101,57)" + }, + { + "index": 79, + "name": "Genevieve Mooney", + "first": "Beatriz", + "last": "Case", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/amir_hooseini/73.jpg", + "boolean": false, + "guid": "f35cbf9b-3c23-45a2-80cc-959e537f5ed8", + "integer": 7, + "date": "Mon Apr 10 1972 22:46:01 GMT-0800 (PST)", + "shortText": "ut commodo excepteur cillum", + "mediumText": "Nulla aute quis minim culpa proident anim ipsum enim. Magna cillum fugiat eu dolor laboris dolore.", + "longText": "Non non eu qui nulla anim officia officia officia labore culpa. In laborum est ad aliqua laborum sit quis. Aliquip voluptate anim excepteur deserunt dolore dolor dolor ipsum.\r\nProident fugiat nisi qui eu exercitation reprehenderit sint. Elit commodo aliqua quis elit dolor eiusmod consectetur. Nostrud qui non voluptate sint sit anim laboris incididunt. Dolor labore nisi aliquip labore. Amet voluptate sunt pariatur excepteur laborum laborum anim dolor. Excepteur exercitation in labore nostrud aliquip anim duis reprehenderit aliqua dolore amet cillum est consectetur.\r\n", + "address": "4 Hoyts Lane", + "city": "Richmond", + "state": "Texas", + "zip": 12769, + "country": "Syria", + "email": "beatrizcase@scentric.com", + "phone": "(868) 586-2207", + "color": "rgb(127,85,140)" + }, + { + "index": 80, + "name": "Heidi Dillon", + "first": "Jenifer", + "last": "Contreras", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kokikillara/73.jpg", + "boolean": true, + "guid": "198e5b2c-45aa-4d86-aa99-c9e493b55d5c", + "integer": 57, + "date": "Fri Mar 05 2010 16:32:14 GMT-0800 (PST)", + "shortText": "cillum velit deserunt aute in", + "mediumText": "Mollit quis officia in commodo officia ex. Aliqua commodo incididunt cillum Lorem cillum est commodo do aliqua eiusmod. Laborum labore pariatur aute aute minim.", + "longText": "Deserunt enim nisi esse commodo enim irure ullamco eiusmod fugiat. Eiusmod sint reprehenderit minim deserunt voluptate ut sit consectetur id quis ullamco pariatur ut excepteur. Exercitation consectetur commodo ipsum minim. Culpa id occaecat non commodo amet esse magna mollit. Duis anim qui commodo voluptate aliquip ut exercitation amet ea. Quis labore ullamco irure irure ut amet consequat voluptate laborum. Nulla aliqua mollit deserunt sunt deserunt eu adipisicing ea magna ex occaecat.\r\nDuis cillum laborum et sit laborum exercitation commodo nulla magna proident duis. Nisi do excepteur enim esse minim sunt voluptate tempor dolore dolor fugiat sunt duis. Ipsum id velit mollit labore ut sunt quis aliqua adipisicing ad labore ipsum.\r\nAute cupidatat sint proident magna cupidatat sint est deserunt Lorem nisi sit ut. Duis laborum exercitation incididunt deserunt anim ipsum consectetur. Sit laborum irure commodo laboris eiusmod ut laboris ex excepteur proident labore reprehenderit mollit est. Sunt minim ea quis officia ad.\r\nCillum eiusmod ad consequat aliquip consectetur pariatur. Incididunt qui exercitation labore anim. Sint laboris ad sit est ut laboris. Aliqua sit proident cillum commodo fugiat reprehenderit ad. Est elit id sunt laborum excepteur sit Lorem. Ex anim mollit amet ex nostrud nulla irure nisi amet cupidatat non elit enim adipisicing. Cupidatat occaecat irure est fugiat amet adipisicing eu laboris aliqua quis minim sint.\r\nDolor consequat laborum sint enim qui. Sint eiusmod nostrud excepteur dolore incididunt excepteur labore amet ea non nostrud. Cupidatat nulla exercitation tempor ut adipisicing qui voluptate. Quis voluptate proident reprehenderit labore in cillum et commodo exercitation magna. Irure labore irure amet eu fugiat tempor reprehenderit laborum occaecat consectetur ut.\r\n", + "address": "4 Clove Road", + "city": "Brazos", + "state": "District Of Columbia", + "zip": 94302, + "country": "Rwanda", + "email": "jenifercontreras@scentric.com", + "phone": "(886) 401-2897", + "color": "rgb(103,86,175)" + }, + { + "index": 81, + "name": "Morrow Hendrix", + "first": "Pittman", + "last": "Powers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/christianoliff/73.jpg", + "boolean": false, + "guid": "3e7a6c19-006a-4533-86eb-5032c524f1b9", + "integer": 87, + "date": "Mon Jun 13 1977 05:06:10 GMT-0700 (PDT)", + "shortText": "culpa dolor proident non occaecat", + "mediumText": "Consectetur commodo nulla cupidatat exercitation id aliquip.", + "longText": "Reprehenderit irure esse esse esse enim aute elit occaecat officia eiusmod nostrud. Minim labore amet veniam quis laboris cupidatat elit non. Magna amet in elit duis amet velit do duis adipisicing ut. Commodo officia dolore veniam laborum laborum pariatur aute nulla magna dolore esse laboris ea. Irure adipisicing officia velit Lorem.\r\nAd officia adipisicing commodo ipsum sunt in commodo adipisicing qui eu. Esse minim anim do officia laborum deserunt aliquip deserunt ea dolor ut eiusmod non fugiat. Dolore commodo laboris ullamco consectetur amet et non occaecat labore velit est. Veniam elit deserunt eu laboris minim esse. Et ad eu eu voluptate non ad aute nostrud in in. Sint qui mollit aliquip laboris dolor elit incididunt cillum. Mollit fugiat minim tempor amet proident et esse do.\r\nDo laborum do sunt pariatur. Cillum nulla ut exercitation consectetur ad sunt qui. Incididunt Lorem voluptate veniam minim deserunt aliqua. Veniam aute reprehenderit irure excepteur ut aute laborum eu. Sit veniam nisi qui officia. Reprehenderit voluptate tempor et cupidatat cupidatat enim aute. Aliquip reprehenderit esse ad commodo dolor deserunt nisi minim duis ut tempor pariatur quis ad.\r\nEa magna non ex laboris adipisicing deserunt. Ea ad voluptate ipsum consectetur magna voluptate amet eu fugiat. Aute do excepteur exercitation esse consequat aute enim Lorem occaecat id Lorem.\r\nAdipisicing cupidatat sunt non ipsum voluptate nulla occaecat. Pariatur magna exercitation aliqua irure ipsum cillum qui nostrud exercitation ullamco anim occaecat reprehenderit qui. Exercitation voluptate enim magna excepteur eu aliquip id enim laboris aute exercitation sint aliqua. Enim officia tempor labore nulla ut veniam ullamco reprehenderit occaecat nulla. Adipisicing officia ullamco cupidatat et dolor ut cillum enim est aliqua. Cillum et laborum nostrud ex irure do aliquip qui amet cillum nisi exercitation.\r\n", + "address": "2 Lawn Court", + "city": "Alleghenyville", + "state": "Virgin Islands", + "zip": 25057, + "country": "Puerto Rico", + "email": "pittmanpowers@scentric.com", + "phone": "(814) 551-2487", + "color": "rgb(194,148,221)" + }, + { + "index": 82, + "name": "Cook Espinoza", + "first": "Kelli", + "last": "Gallagher", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andrey_maxim/73.jpg", + "boolean": false, + "guid": "77727f82-a7eb-40af-91dc-dd76a57e5761", + "integer": 4, + "date": "Sat Apr 29 1995 09:21:20 GMT-0700 (PDT)", + "shortText": "est ad non officia", + "mediumText": "Ipsum magna velit cillum cupidatat tempor ad ad amet adipisicing. Aliquip cillum irure id velit. Ullamco occaecat labore dolor sint. Sit dolor consequat in dolor commodo eiusmod anim ullamco consequat laboris non. Esse fugiat cupidatat laboris aliquip non nostrud officia amet.", + "longText": "Do elit consectetur nostrud reprehenderit deserunt culpa deserunt exercitation exercitation. Tempor eiusmod eiusmod incididunt minim mollit exercitation quis do sit amet duis. Culpa in consectetur esse ipsum voluptate sit non qui elit voluptate ea eu tempor excepteur. Enim minim fugiat quis velit dolor adipisicing sunt elit ipsum nulla culpa pariatur sint aliquip.\r\nAd magna enim culpa magna sint pariatur sunt nostrud ad fugiat cupidatat. Sunt non eiusmod nulla cupidatat eu ea eu laborum quis fugiat voluptate nulla laboris. Dolor ad reprehenderit minim commodo dolore commodo aliqua adipisicing dolor laborum pariatur eiusmod laborum irure. Sunt ex adipisicing culpa quis nostrud elit est occaecat ut ut exercitation ullamco ea. In et irure irure tempor est do do qui. Consectetur velit aute enim exercitation ipsum proident officia eiusmod nostrud deserunt nulla cupidatat ullamco.\r\nEsse nisi quis laborum commodo non proident ullamco. Ipsum qui in non adipisicing do incididunt. Magna incididunt amet dolor laboris commodo est voluptate cillum ea amet quis deserunt do. Non in laborum anim mollit sunt irure incididunt ex sit nostrud duis amet. Reprehenderit ipsum anim culpa in. Duis voluptate esse cillum ad eu incididunt.\r\nOccaecat officia in laboris proident aliquip pariatur consectetur consequat commodo enim tempor et. Sit do veniam duis mollit ipsum aliqua et id do do id sint cillum. Ad incididunt minim velit id tempor consequat eiusmod mollit sit do dolor commodo minim quis. Nulla laboris velit excepteur laborum exercitation labore aliqua est enim duis anim sint pariatur duis. Velit elit fugiat mollit ex amet dolor nulla nisi. Laborum ad ut enim ut tempor proident cillum sunt id voluptate et.\r\n", + "address": "2 Bay Avenue", + "city": "Frystown", + "state": "Puerto Rico", + "zip": 13050, + "country": "Korea (North)", + "email": "kelligallagher@scentric.com", + "phone": "(865) 413-3195", + "color": "rgb(105,173,239)" + }, + { + "index": 83, + "name": "Mari Nguyen", + "first": "Moss", + "last": "English", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/muringa/73.jpg", + "boolean": false, + "guid": "1aaee0b4-f194-4e72-8c8b-9eb7aada953a", + "integer": 29, + "date": "Sat Aug 22 1987 08:31:57 GMT-0700 (PDT)", + "shortText": "minim enim voluptate minim", + "mediumText": "Ut est et consequat culpa dolor culpa veniam eiusmod. Commodo adipisicing voluptate laboris nulla esse non reprehenderit pariatur veniam proident reprehenderit.", + "longText": "Pariatur quis sit tempor dolor sit commodo in. Pariatur consectetur sint ea aliquip pariatur dolor commodo et et dolore in esse occaecat. Velit labore nostrud sit deserunt Lorem. Proident labore elit irure consequat sit. Sunt est veniam ullamco pariatur incididunt ad cupidatat. Sit proident tempor anim cupidatat nostrud ullamco do incididunt. Magna in amet anim laboris labore fugiat duis culpa cupidatat enim ipsum ut mollit excepteur.\r\nLorem voluptate officia ut adipisicing occaecat cillum cupidatat. Culpa mollit magna duis pariatur officia officia ad. Reprehenderit reprehenderit reprehenderit proident deserunt. Dolor proident nostrud veniam ea ut. Nisi nisi esse aute adipisicing laborum nulla laboris magna do commodo voluptate sunt ipsum. Occaecat dolor pariatur esse velit eu sint adipisicing cillum magna nulla.\r\nAmet eu et anim nisi mollit ut sit minim. Aute proident non ea consequat do laborum ex consectetur. Cillum commodo minim id veniam duis commodo laboris consequat sunt. Sit ullamco veniam dolor occaecat nostrud dolor incididunt enim minim esse adipisicing id. Adipisicing velit nisi cupidatat velit velit culpa eu reprehenderit duis id aliquip quis tempor fugiat.\r\nAliquip ex elit nulla duis enim aliqua officia. Commodo proident aute labore nostrud nostrud. Et et ad nisi sit ex id eiusmod est Lorem. Enim pariatur velit sunt quis eu fugiat. Consectetur est aute est aliquip elit occaecat quis eiusmod tempor sunt nisi aliqua. Enim ex eu ipsum id sit Lorem excepteur ad voluptate.\r\nAute non est enim ullamco quis proident Lorem Lorem sunt dolor culpa irure. Nostrud quis aliqua ex commodo irure officia mollit Lorem reprehenderit sunt velit. Ut velit cillum velit et ea irure laborum adipisicing amet adipisicing anim. Voluptate exercitation pariatur culpa irure occaecat in reprehenderit ipsum esse. Excepteur quis cillum Lorem do. Tempor est tempor fugiat amet cupidatat nostrud aute cillum.\r\n", + "address": "2 Trucklemans Lane", + "city": "Waiohinu", + "state": "Maryland", + "zip": 78112, + "country": "Bosnia and Herzegovina", + "email": "mossenglish@scentric.com", + "phone": "(823) 570-2457", + "color": "rgb(97,59,63)" + }, + { + "index": 84, + "name": "Bauer Ruiz", + "first": "Marcia", + "last": "Farmer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ahmedelgabri/73.jpg", + "boolean": true, + "guid": "0efaa095-a6b2-4f62-9b1d-c965c8aa4407", + "integer": 49, + "date": "Wed Oct 17 1979 09:38:39 GMT-0700 (PDT)", + "shortText": "cillum cillum ipsum pariatur excepteur", + "mediumText": "Irure dolor Lorem cillum enim esse. Consectetur duis elit aute ut tempor do ea non ad velit. Officia voluptate occaecat exercitation exercitation cillum anim. Exercitation anim tempor qui tempor nulla minim eu quis ad minim.", + "longText": "Sit proident eu velit ad do velit nostrud aute consectetur. Lorem et magna non consequat enim ut. Qui duis consectetur fugiat consectetur elit sit Lorem cupidatat. Ipsum tempor dolore sunt duis. Veniam culpa exercitation sint laboris proident exercitation dolor deserunt aute est exercitation ex laboris.\r\nEsse id non veniam ut ad nostrud ex aliquip culpa quis. Cupidatat ad anim irure pariatur. Consectetur sint officia laboris non consequat proident laboris sunt ipsum. Dolor amet culpa enim pariatur proident eu labore pariatur. Do adipisicing tempor pariatur mollit laborum mollit elit mollit laboris dolore. Aute magna reprehenderit nulla magna amet minim nostrud in aute qui eu ut sunt. Exercitation eiusmod reprehenderit sint esse reprehenderit reprehenderit.\r\nTempor est Lorem eu adipisicing adipisicing est ea. Irure nulla officia culpa laboris do tempor aute laboris elit aute pariatur occaecat qui laborum. Minim duis pariatur consectetur laboris aliquip cupidatat aute enim cillum adipisicing voluptate occaecat enim dolor.\r\nAdipisicing ut voluptate et aliquip eu. Duis laborum irure ullamco voluptate labore in non. Nostrud voluptate voluptate consectetur culpa voluptate aute. Esse dolor enim ad dolor. Aliquip sint esse elit eiusmod mollit. Ipsum in est exercitation qui. Id sit amet nulla qui minim fugiat enim.\r\n", + "address": "3 Paerdegat Avenue", + "city": "Hanover", + "state": "Massachusetts", + "zip": 30524, + "country": "France", + "email": "marciafarmer@scentric.com", + "phone": "(836) 524-2616", + "color": "rgb(169,63,64)" + }, + { + "index": 85, + "name": "Ollie Melton", + "first": "Dennis", + "last": "Hill", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bobbytwoshoes/73.jpg", + "boolean": false, + "guid": "fda2534f-880f-4794-999d-d315d49ba7a9", + "integer": 84, + "date": "Fri Mar 14 2003 11:31:33 GMT-0800 (PST)", + "shortText": "in dolore", + "mediumText": "Elit reprehenderit mollit deserunt nisi. Officia ea id minim culpa id enim consectetur laborum enim non esse et fugiat proident. Consequat magna mollit amet ipsum nisi et commodo nulla officia duis amet laboris ex. Ad ad amet nisi fugiat pariatur mollit sit non culpa consectetur eiusmod.", + "longText": "Ea commodo tempor ea culpa ea quis ipsum pariatur occaecat nulla officia. Reprehenderit laboris non eiusmod aute adipisicing esse eiusmod commodo ex exercitation occaecat. Velit est reprehenderit anim adipisicing et cillum. Sit proident ipsum est reprehenderit eiusmod nulla laborum. Laboris consectetur excepteur sunt ex commodo. Aliqua laboris quis dolor cillum tempor sint do occaecat deserunt cillum dolor ea nisi ipsum.\r\nNisi adipisicing commodo et id officia non laborum et laborum eiusmod adipisicing duis. Eiusmod tempor in quis anim do ullamco exercitation est. Consequat ad commodo adipisicing nisi dolor excepteur ex incididunt anim sunt velit reprehenderit magna. Proident eiusmod eu qui officia duis amet mollit velit elit.\r\n", + "address": "4 Pacific Street", + "city": "Osmond", + "state": "Oklahoma", + "zip": 41895, + "country": "Guinea", + "email": "dennishill@scentric.com", + "phone": "(974) 511-2460", + "color": "rgb(208,193,99)" + }, + { + "index": 86, + "name": "Carlson Petty", + "first": "Miranda", + "last": "Garner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/milovanovicdu/73.jpg", + "boolean": false, + "guid": "4d705513-68a1-4d45-bf9d-593447e391e2", + "integer": 47, + "date": "Thu Dec 30 1976 16:50:53 GMT-0800 (PST)", + "shortText": "anim in do aliquip", + "mediumText": "Do aute est tempor dolore culpa. Ipsum commodo aute veniam officia aliqua enim laboris irure qui. Cupidatat laborum eu consequat laborum sint officia officia aliquip tempor qui nulla fugiat.", + "longText": "Eu consectetur sint aute fugiat duis consectetur anim nisi culpa ullamco. Duis irure dolore ullamco consectetur reprehenderit anim et proident. Officia consequat cupidatat adipisicing consequat amet sit cillum amet commodo. Duis magna dolore incididunt laborum.\r\nReprehenderit enim pariatur labore irure exercitation consectetur eu eu deserunt. Eiusmod excepteur qui elit qui enim adipisicing dolore aliquip anim enim deserunt aliquip et. Irure eiusmod qui quis consectetur est enim. Culpa Lorem nostrud cupidatat magna sint ad cillum culpa adipisicing dolore commodo in laborum cupidatat. Dolore sint minim cupidatat laboris fugiat est ad quis occaecat adipisicing laborum nisi. Magna labore qui anim non qui elit velit do ex veniam ullamco. Eiusmod minim sit pariatur cillum exercitation non occaecat qui et.\r\nUllamco esse ullamco amet amet fugiat occaecat ex in fugiat nulla. Deserunt magna labore fugiat qui officia qui enim minim. Adipisicing irure proident sunt commodo cillum aliqua velit. Esse est est ipsum est elit duis ipsum exercitation. Ipsum sit deserunt duis eu duis id sunt ipsum aute eiusmod.\r\nOfficia eu deserunt veniam deserunt do exercitation. Amet reprehenderit enim anim exercitation sunt do cillum officia laboris commodo mollit quis laboris irure. Duis nisi nulla nisi enim enim. Ipsum minim sit est culpa nostrud aute elit commodo minim laboris incididunt Lorem nostrud. Ullamco sint deserunt incididunt nisi.\r\nSit cillum occaecat officia laboris do cillum. Irure consectetur occaecat elit nostrud. Nisi commodo nulla culpa fugiat duis in consectetur sint proident Lorem non sunt. Fugiat Lorem deserunt duis mollit do sit id.\r\n", + "address": "2 Laurel Avenue", + "city": "Freetown", + "state": "Ohio", + "zip": 80225, + "country": "Senegal", + "email": "mirandagarner@scentric.com", + "phone": "(989) 558-3766", + "color": "rgb(201,116,189)" + }, + { + "index": 87, + "name": "Randolph Lewis", + "first": "Isabella", + "last": "Fry", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imughal7/73.jpg", + "boolean": false, + "guid": "70e8a5f4-7b65-42d2-bdfa-cd58c31f5e45", + "integer": 2, + "date": "Mon Aug 13 1990 16:40:29 GMT-0700 (PDT)", + "shortText": "velit laboris tempor", + "mediumText": "Ullamco in esse consectetur ea tempor adipisicing ad veniam eiusmod proident.", + "longText": "Aliquip in dolore Lorem labore fugiat et ut nulla voluptate nostrud adipisicing irure. Cupidatat culpa ea consequat cillum culpa amet do deserunt amet voluptate tempor reprehenderit. Esse est excepteur incididunt esse elit laborum nulla ad. Adipisicing reprehenderit amet officia occaecat. Nisi Lorem ea duis id ex aute consequat mollit adipisicing id. Eu mollit elit nostrud labore adipisicing. Magna sunt proident duis voluptate enim ut id qui aliquip ea nisi velit.\r\nDolor duis sint tempor ad commodo sit ut minim id. Magna dolor et sunt ut laborum fugiat officia dolore adipisicing reprehenderit et ullamco nisi. Sint dolor ut laborum tempor veniam dolore eiusmod id adipisicing excepteur proident. Laborum magna fugiat pariatur dolore. Ipsum irure consequat nulla velit. Sint duis mollit exercitation enim fugiat voluptate.\r\nExcepteur adipisicing et magna sunt. Officia incididunt reprehenderit et ea culpa nostrud ex minim ad minim. Consequat magna ipsum laborum ut tempor pariatur Lorem magna minim labore cillum ad nulla nulla.\r\nMinim tempor veniam consequat veniam esse adipisicing officia sint id do veniam. Ullamco dolore ad consequat minim veniam deserunt magna sit nulla cupidatat cillum non incididunt veniam. Labore aliqua cupidatat excepteur eu veniam. Sit id id ut minim aute qui aliqua dolore id ex deserunt id ullamco laboris. Fugiat irure irure nisi in mollit ad cillum sit duis exercitation ad sint sit consectetur. Voluptate eu amet consectetur consectetur dolore ex ad.\r\n", + "address": "2 Schenck Street", + "city": "Richford", + "state": "Nevada", + "zip": 27095, + "country": "Yugoslavia", + "email": "isabellafry@scentric.com", + "phone": "(974) 558-2625", + "color": "rgb(220,182,202)" + }, + { + "index": 88, + "name": "Daniel Foley", + "first": "Stephens", + "last": "Bender", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/creative_px/73.jpg", + "boolean": false, + "guid": "e3ad719a-545a-47b0-a02a-62dfec32263f", + "integer": 98, + "date": "Thu Jan 28 1982 23:00:55 GMT-0800 (PST)", + "shortText": "anim", + "mediumText": "Dolor consequat aute ea officia non dolor consequat exercitation pariatur.", + "longText": "Sunt cupidatat officia ea officia fugiat sunt cupidatat. Esse ex adipisicing mollit ipsum aute. Consectetur non nisi nostrud eiusmod voluptate cupidatat nulla. Dolor enim nulla laboris enim qui velit tempor. Sunt Lorem do qui minim pariatur sint eu occaecat officia laboris. Pariatur reprehenderit occaecat ad ipsum occaecat ex. Magna qui ullamco laborum sint adipisicing magna velit labore sit excepteur duis ad.\r\nMagna laboris ut eiusmod tempor velit exercitation duis qui exercitation. Do occaecat ea consequat non sit eiusmod dolor aute dolor ea elit eiusmod. Ad ad qui reprehenderit culpa velit.\r\nAdipisicing non laboris magna aute pariatur. Sit irure aliquip aute minim sit velit fugiat minim excepteur. Laborum reprehenderit dolor ea ipsum aute minim Lorem velit.\r\n", + "address": "3 Aster Court", + "city": "Diaperville", + "state": "Montana", + "zip": 59636, + "country": "Uzbekistan", + "email": "stephensbender@scentric.com", + "phone": "(929) 559-3077", + "color": "rgb(214,117,159)" + }, + { + "index": 89, + "name": "Morales Mays", + "first": "Tracie", + "last": "Pate", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gabrielizalo/73.jpg", + "boolean": true, + "guid": "f420dfd4-d785-4f2d-ad37-b48a8c5e8c63", + "integer": 42, + "date": "Tue Jun 10 2014 10:24:55 GMT-0700 (PDT)", + "shortText": "elit qui deserunt veniam", + "mediumText": "Sint cupidatat laborum nostrud ullamco pariatur ea consectetur sit irure adipisicing cupidatat commodo nisi ullamco. Esse adipisicing consequat velit consequat cillum exercitation incididunt deserunt est proident. Officia incididunt et tempor esse. Adipisicing fugiat non dolor aute elit elit Lorem consectetur. Irure mollit eu est laboris ea dolor eu irure deserunt sunt nulla mollit culpa.", + "longText": "Dolor anim consequat minim exercitation incididunt voluptate dolor magna. In magna ex veniam duis ad velit commodo tempor ea excepteur. Amet veniam esse aliqua duis. Anim cupidatat voluptate culpa culpa reprehenderit in ullamco aliqua exercitation sit elit.\r\nNulla deserunt minim cupidatat labore id pariatur pariatur minim nostrud. Anim ad eu esse et incididunt labore. Incididunt culpa aliquip sit laboris magna reprehenderit Lorem quis ut commodo aliqua. Cillum velit irure eu nulla fugiat quis nisi laborum reprehenderit duis voluptate ut. Velit ea Lorem dolore ea sint excepteur eiusmod adipisicing minim proident non tempor nisi dolore. Aute dolor consectetur eu ipsum adipisicing ex exercitation consectetur proident adipisicing in.\r\nFugiat minim cupidatat ea sit velit tempor. Dolor laboris minim officia Lorem Lorem eu est ut do nisi veniam nulla adipisicing. Adipisicing veniam occaecat ex sunt id.\r\nVeniam velit ipsum Lorem est ad amet nisi adipisicing. Veniam sint pariatur velit pariatur veniam pariatur deserunt laborum ullamco sit enim et cillum commodo. Nisi incididunt et culpa occaecat aliquip. Ipsum commodo sunt proident esse amet consectetur ullamco nisi nulla voluptate magna. Consequat nostrud labore ipsum dolor mollit ullamco eu cillum occaecat.\r\nNon sit proident deserunt aliquip sunt. Ipsum quis nulla quis elit officia exercitation quis commodo. Ullamco et anim duis do nulla Lorem non commodo do ut tempor ullamco do. Commodo incididunt dolore in laborum excepteur voluptate et tempor nulla sint tempor laborum et. Consectetur amet magna consequat anim duis nisi non in. Tempor deserunt aliqua aute incididunt culpa sunt nostrud cillum laborum dolor.\r\n", + "address": "4 Herbert Street", + "city": "Wescosville", + "state": "California", + "zip": 64034, + "country": "Estonia", + "email": "traciepate@scentric.com", + "phone": "(967) 595-3876", + "color": "rgb(140,217,62)" + }, + { + "index": 90, + "name": "Christie Cobb", + "first": "Georgina", + "last": "Cardenas", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/xtr1mal2/73.jpg", + "boolean": true, + "guid": "62687023-9614-4076-85b2-5cb8b60263be", + "integer": 0, + "date": "Tue Aug 27 2002 06:22:09 GMT-0700 (PDT)", + "shortText": "aliqua", + "mediumText": "Est quis aliquip tempor est elit sint adipisicing et pariatur labore deserunt ex dolore pariatur.", + "longText": "Proident pariatur ex anim proident. Et adipisicing do amet magna id fugiat mollit. Ipsum aliqua pariatur ad eu. Id officia enim enim aliqua veniam amet commodo in incididunt velit incididunt ipsum. Id adipisicing anim voluptate labore veniam cupidatat dolore quis excepteur in velit consectetur fugiat nisi. Laborum tempor duis veniam esse ut et deserunt consequat occaecat Lorem minim aliquip exercitation.\r\nEx ex id id voluptate aliqua tempor veniam non et. Enim labore ut sit quis ullamco. Et sit ea cupidatat laborum exercitation reprehenderit laborum magna enim reprehenderit commodo ex. Et ad nostrud ea nulla. Officia commodo ea ea commodo sunt pariatur in culpa incididunt voluptate magna.\r\nElit reprehenderit minim nulla officia magna proident esse proident id officia officia ea cupidatat. Pariatur duis consectetur laboris et anim excepteur labore laboris officia voluptate proident nostrud dolor incididunt. Ad laboris laborum qui occaecat do fugiat enim officia dolore sit eu.\r\n", + "address": "2 Clinton Street", + "city": "Townsend", + "state": "Marshall Islands", + "zip": 25271, + "country": "Gambia", + "email": "georginacardenas@scentric.com", + "phone": "(917) 515-3962", + "color": "rgb(108,88,246)" + }, + { + "index": 91, + "name": "Kellie Cummings", + "first": "Carissa", + "last": "Castillo", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eugenerifan/73.jpg", + "boolean": true, + "guid": "dbb02d06-2dc9-4b57-84cd-59d4e653047c", + "integer": 58, + "date": "Sun Jul 27 1986 08:30:17 GMT-0700 (PDT)", + "shortText": "incididunt labore aliquip", + "mediumText": "Excepteur quis proident aliquip consectetur.", + "longText": "Exercitation ea anim ex sit nisi excepteur aliqua eu cillum esse nulla deserunt ut. Cillum veniam laboris occaecat commodo est adipisicing proident. Ut deserunt enim irure officia irure deserunt ipsum labore magna. Do sint sint aliquip ullamco laboris commodo magna ea ut nostrud adipisicing et nostrud aliquip. Enim nostrud commodo do laborum fugiat incididunt quis dolore dolor voluptate tempor. Cupidatat deserunt est commodo amet cillum aliqua ullamco.\r\nEnim commodo labore id duis irure commodo eiusmod nostrud magna tempor veniam exercitation velit. Officia incididunt ut et ex anim. Esse ex cillum aliqua adipisicing et Lorem culpa elit. Commodo laborum ut in aute laboris esse exercitation eiusmod eu. Minim nulla laborum minim ad non fugiat consectetur sunt adipisicing occaecat Lorem consequat. Officia ex aliquip labore non do quis amet sit do tempor exercitation.\r\nQui do dolore officia et elit dolor magna sunt laboris nulla. Enim id deserunt ex amet non deserunt quis nisi quis pariatur commodo est excepteur cillum. Cillum commodo reprehenderit nostrud et adipisicing labore ad ex id. Adipisicing velit mollit aute eu non reprehenderit ad mollit commodo irure sit. Adipisicing cillum consequat dolor incididunt occaecat laborum et ipsum ipsum magna ipsum fugiat esse. Velit esse mollit ex nulla incididunt incididunt est sit pariatur minim fugiat.\r\nExercitation non ut id ad mollit in eu et fugiat ullamco sint ullamco consequat. Cupidatat mollit incididunt ea consectetur Lorem velit sint consectetur irure. Eiusmod sunt ipsum eu voluptate sunt. Laborum do nostrud amet commodo mollit aliqua commodo ex fugiat pariatur incididunt ea. Aute voluptate mollit culpa et cillum mollit proident ad ea proident labore. Qui aute labore pariatur ea.\r\nLaboris Lorem laborum reprehenderit sint duis adipisicing consectetur qui adipisicing cupidatat voluptate anim eu. Nostrud ea consequat officia Lorem sint enim sunt aute qui anim nulla. Est anim sit nisi magna anim. Non aliquip eu deserunt fugiat id irure voluptate labore nostrud. Qui qui ad nulla ea.\r\n", + "address": "4 Pierrepont Place", + "city": "Riviera", + "state": "Indiana", + "zip": 10834, + "country": "Nepal", + "email": "carissacastillo@scentric.com", + "phone": "(902) 528-2051", + "color": "rgb(116,122,170)" + }, + { + "index": 92, + "name": "Hooper Acosta", + "first": "Delacruz", + "last": "Hunt", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imcoding/73.jpg", + "boolean": true, + "guid": "f3455179-b392-49d5-8f8e-0b570ff95363", + "integer": 63, + "date": "Wed Apr 18 1973 01:53:52 GMT-0800 (PST)", + "shortText": "aute consectetur", + "mediumText": "Non esse non cillum eiusmod. Velit consequat amet eiusmod do laborum est do. Id aliqua cupidatat tempor consectetur do consectetur.", + "longText": "In elit nisi dolore aliquip magna ex. Eu do in enim tempor duis adipisicing eiusmod magna ut velit velit do. Nostrud magna aliquip est exercitation qui elit sit.\r\nLabore Lorem minim id laborum proident in sit ea quis sit. Mollit excepteur voluptate sit qui. Ex in voluptate veniam magna dolor consectetur anim consectetur. Deserunt deserunt elit in id.\r\nAd incididunt aute labore commodo consectetur consectetur commodo magna irure. Duis adipisicing pariatur ea labore consequat ut pariatur labore laboris nulla occaecat. Irure aute id id eiusmod. Aute eiusmod Lorem eiusmod occaecat qui in veniam in laboris. Elit sit sit tempor tempor magna. Elit aliquip cupidatat commodo eiusmod consequat fugiat magna nisi fugiat irure aute dolore quis labore.\r\nOccaecat duis duis ad officia consectetur aute elit excepteur consectetur ullamco. Exercitation pariatur irure ad anim fugiat anim. Elit laborum velit aliquip et aliquip officia elit ad amet mollit nulla.\r\nFugiat minim minim anim labore culpa magna laborum veniam in reprehenderit id. Id sint pariatur excepteur commodo ullamco eu. Eiusmod magna commodo reprehenderit nostrud in culpa laboris occaecat aliqua. Sit pariatur nulla sit exercitation irure pariatur sit cillum occaecat exercitation. Aliqua dolore aliqua magna minim id ut eu veniam.\r\n", + "address": "3 Matthews Place", + "city": "Caron", + "state": "Tennessee", + "zip": 68234, + "country": "Falkland Islands (Malvinas)", + "email": "delacruzhunt@scentric.com", + "phone": "(928) 557-3052", + "color": "rgb(207,106,189)" + }, + { + "index": 93, + "name": "Leonor Rogers", + "first": "Claudette", + "last": "Walters", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/madhan4uu/73.jpg", + "boolean": false, + "guid": "d7ddd425-5e0b-407b-b795-4591ac988f7e", + "integer": 14, + "date": "Fri Sep 10 1982 05:35:18 GMT-0700 (PDT)", + "shortText": "nisi enim velit consequat", + "mediumText": "Velit ea anim fugiat ex esse officia.", + "longText": "Anim voluptate consequat et deserunt. Officia culpa quis consequat et occaecat adipisicing commodo ipsum culpa elit Lorem elit. Proident sunt sint id tempor. Pariatur nulla enim id ut aliqua commodo amet ex. Dolor ad tempor Lorem cupidatat cillum deserunt nisi.\r\nDo ad cillum consequat eu nulla irure eiusmod eu aute est sint tempor. Irure irure in culpa commodo esse occaecat fugiat minim sit est dolor. Do ex dolor non quis adipisicing amet incididunt non eiusmod nisi laborum.\r\nDeserunt anim consequat incididunt pariatur eiusmod. Aute nostrud id ipsum consequat laboris dolore. Aliquip in ullamco est incididunt anim esse magna ea labore in.\r\nAliquip ex nisi sit pariatur nostrud do dolor eiusmod consectetur ad quis consequat fugiat. Culpa enim cillum sint minim deserunt duis officia duis laborum mollit cillum ad aliqua. Sint consectetur proident duis velit ea adipisicing. Amet deserunt ut quis est ipsum velit Lorem tempor velit reprehenderit adipisicing consectetur occaecat sint.\r\nMagna nulla aute qui deserunt nostrud cillum magna fugiat occaecat Lorem ipsum culpa. Est anim aute do nisi dolor sint qui pariatur. Fugiat culpa reprehenderit officia excepteur elit amet excepteur enim tempor sint sit consequat. Consequat enim laboris officia nisi irure irure consequat elit. Dolor minim do velit sit deserunt cillum.\r\n", + "address": "3 Fulton Street", + "city": "Hegins", + "state": "Palau", + "zip": 78135, + "country": "Peru", + "email": "claudettewalters@scentric.com", + "phone": "(942) 474-3822", + "color": "rgb(90,63,99)" + }, + { + "index": 94, + "name": "Cote Guerra", + "first": "Trisha", + "last": "Chavez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tirsope/73.jpg", + "boolean": false, + "guid": "da6e4096-5de2-48f3-a83e-e7e504b7ef50", + "integer": 60, + "date": "Wed Feb 14 1990 21:07:18 GMT-0800 (PST)", + "shortText": "amet officia", + "mediumText": "Pariatur nulla nulla aliqua sunt nulla excepteur id amet consequat. Nostrud eu aliquip enim esse eu non exercitation do nulla labore adipisicing dolor. Est voluptate excepteur aliquip voluptate nulla fugiat ut amet tempor.", + "longText": "Ullamco quis exercitation sunt sunt do aute sit qui duis non. Irure dolore tempor velit velit et eu sint elit. Velit esse deserunt elit minim adipisicing sint est commodo sit aute velit excepteur dolore sunt. Occaecat adipisicing occaecat pariatur do enim culpa proident nostrud labore aute consectetur esse dolor ut. Irure pariatur minim aute labore mollit eu deserunt amet deserunt. Ex velit ad quis ullamco.\r\nOfficia nostrud excepteur nisi id esse cupidatat adipisicing. Veniam ea duis nisi exercitation labore non pariatur velit officia Lorem tempor. Qui ea culpa laborum cillum commodo. Enim eu sit adipisicing voluptate est ex incididunt eu deserunt. Sit irure dolor non culpa anim. Sint ex ullamco culpa est ipsum. Id nostrud id eiusmod ea consequat anim nulla qui aliquip sunt sunt Lorem.\r\n", + "address": "4 Montauk Court", + "city": "Ryderwood", + "state": "Virginia", + "zip": 72564, + "country": "Tonga", + "email": "trishachavez@scentric.com", + "phone": "(986) 580-3064", + "color": "rgb(252,141,100)" + }, + { + "index": 95, + "name": "Stewart Bradley", + "first": "Desiree", + "last": "Sullivan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lorenzosinisi/73.jpg", + "boolean": false, + "guid": "09ba747d-fcdd-47ec-b40f-149aad2803bd", + "integer": 14, + "date": "Mon Aug 18 2014 05:24:18 GMT-0700 (PDT)", + "shortText": "veniam officia exercitation", + "mediumText": "Sint dolor aliqua velit eu eiusmod id. Velit pariatur sit labore sit sit elit dolore fugiat veniam excepteur ex. Velit ex elit ullamco ipsum sunt magna aliqua cupidatat veniam Lorem mollit eu sit. Consequat Lorem Lorem sit aute.", + "longText": "Nulla aliquip id sunt ex reprehenderit sit et amet adipisicing pariatur sit non mollit minim. Sint nisi occaecat duis ut amet veniam mollit. Esse ipsum ea in anim. Elit est adipisicing velit cupidatat laboris in laboris eiusmod non aliquip minim. Eu commodo occaecat occaecat cupidatat cillum nulla esse mollit exercitation eu.\r\n", + "address": "4 Douglass Street", + "city": "Hiko", + "state": "Wyoming", + "zip": 58685, + "country": "Tunisia", + "email": "desireesullivan@scentric.com", + "phone": "(955) 561-2349", + "color": "rgb(67,224,233)" + }, + { + "index": 96, + "name": "Corinne Farley", + "first": "Guthrie", + "last": "May", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/celikovic/73.jpg", + "boolean": false, + "guid": "5fe813a0-75c4-4214-96b9-9b4d5fcea8bf", + "integer": 79, + "date": "Wed Aug 26 2009 12:40:36 GMT-0700 (PDT)", + "shortText": "eiusmod aliquip mollit aute", + "mediumText": "Ea irure ea pariatur laborum non commodo. Veniam est laboris ex occaecat laboris irure. Aliqua pariatur anim ut eu veniam do ex non veniam nostrud. Occaecat excepteur non est cillum commodo eu ullamco.", + "longText": "In anim esse ea excepteur est. Laboris qui ex ipsum cillum excepteur nisi. Non deserunt qui duis ut eiusmod ad laborum labore Lorem est cupidatat. Nulla eiusmod sint reprehenderit amet fugiat labore laboris.\r\nVoluptate anim minim cillum est aliquip. Occaecat eiusmod eu consectetur id id sit id aliquip minim. Id quis laboris duis dolore id pariatur officia irure ullamco cillum ullamco dolor. Ut pariatur excepteur eiusmod exercitation tempor.\r\nProident amet esse enim fugiat nostrud aute exercitation excepteur ut dolore incididunt. Eiusmod dolore irure ut tempor. Cupidatat id laboris aute nulla deserunt sint. Velit mollit ut eu commodo. Esse adipisicing veniam voluptate dolore laborum laboris qui aliquip fugiat ullamco ea exercitation voluptate. Enim veniam do aliquip aute laboris in elit magna anim. Consequat excepteur eu dolor officia eiusmod incididunt occaecat deserunt commodo nisi Lorem.\r\nMagna culpa dolore deserunt aliquip. Quis officia ut nulla et commodo officia ullamco. Cupidatat ea eiusmod nulla enim sit in.\r\nEst reprehenderit consectetur consectetur eu occaecat nulla nulla laboris est ad nulla exercitation. Amet nostrud nulla minim minim ea incididunt ea et. Exercitation qui qui mollit exercitation. Exercitation excepteur labore cillum laboris ut nulla excepteur pariatur ullamco ex ex consectetur consectetur. Lorem ex laborum in qui velit reprehenderit id pariatur esse enim. Do eu adipisicing culpa elit exercitation ea est occaecat. Et velit cupidatat excepteur sunt officia occaecat et cillum ut voluptate enim.\r\n", + "address": "3 Locust Street", + "city": "Wyano", + "state": "Colorado", + "zip": 24261, + "country": "Guadeloupe", + "email": "guthriemay@scentric.com", + "phone": "(952) 423-2212", + "color": "rgb(207,250,179)" + }, + { + "index": 97, + "name": "Heather Martinez", + "first": "Althea", + "last": "Quinn", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_kshitish/73.jpg", + "boolean": false, + "guid": "d67d7b7a-2ab1-446e-a591-4f565e74fe3d", + "integer": 13, + "date": "Mon Mar 17 2003 07:02:53 GMT-0800 (PST)", + "shortText": "adipisicing magna", + "mediumText": "Reprehenderit exercitation ut in ex voluptate dolore.", + "longText": "Pariatur pariatur do ipsum exercitation magna. Irure irure officia voluptate amet fugiat sint est proident reprehenderit cupidatat est eu. Esse ea eiusmod nostrud ad quis laborum deserunt nisi. Deserunt ut fugiat aliqua minim. Proident fugiat aliqua nostrud adipisicing Lorem velit et ipsum fugiat fugiat aliquip cupidatat Lorem.\r\nEx quis non excepteur est cillum non aute consequat ipsum aliqua nostrud sunt nisi non. Est aliquip enim aute culpa. Esse enim pariatur id velit nostrud adipisicing voluptate pariatur et sint sunt.\r\nUt quis cillum dolor minim nulla fugiat enim irure officia. Reprehenderit voluptate sint veniam velit tempor deserunt eu adipisicing id anim fugiat. Nostrud dolore esse reprehenderit enim nulla duis exercitation.\r\nCillum proident est dolore sint qui sint laborum enim exercitation aute in pariatur. Ut non eiusmod excepteur exercitation aliquip incididunt cupidatat magna deserunt in est. Excepteur duis incididunt sunt commodo amet nulla ex adipisicing incididunt in exercitation amet et. Ullamco eu nulla ipsum magna voluptate incididunt aliqua id.\r\n", + "address": "4 Arkansas Drive", + "city": "Catherine", + "state": "Utah", + "zip": 68985, + "country": "Australia", + "email": "altheaquinn@scentric.com", + "phone": "(997) 529-2688", + "color": "rgb(175,88,98)" + }, + { + "index": 98, + "name": "Good Mathis", + "first": "Hester", + "last": "Santana", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/2fockus/73.jpg", + "boolean": true, + "guid": "8046ed24-325f-4486-9067-34ecfa37746c", + "integer": 67, + "date": "Sat Mar 19 1977 20:48:42 GMT-0800 (PST)", + "shortText": "commodo incididunt officia", + "mediumText": "Velit sint reprehenderit laboris occaecat in reprehenderit dolore adipisicing nisi pariatur enim aute. Cillum velit voluptate sit irure.", + "longText": "Irure labore incididunt nisi labore sint cillum cillum. Pariatur aute dolor duis ad eu nulla veniam enim voluptate. Laborum fugiat veniam occaecat adipisicing voluptate qui pariatur voluptate quis eu. Aliquip aute anim proident excepteur do aute consectetur ipsum exercitation est velit consequat laboris. Amet proident enim aute excepteur cillum. Do occaecat ullamco proident adipisicing ullamco id anim nostrud. Laborum ullamco occaecat aliqua eiusmod culpa quis nulla ad dolore ad ullamco.\r\nEsse ex officia qui qui aute. Ipsum sint irure nostrud nulla culpa cupidatat do. Aute ullamco occaecat aliquip in tempor minim ut nisi aliquip nostrud cillum Lorem. Excepteur dolor cupidatat eiusmod Lorem. Dolore eu ad sint ullamco voluptate.\r\nSit cupidatat id mollit occaecat in officia amet in magna enim sint. Officia deserunt proident quis in ut. Excepteur incididunt amet nulla labore eu incididunt adipisicing laboris nisi. Magna nisi proident deserunt sunt do deserunt eiusmod pariatur.\r\nDo elit quis occaecat anim aliquip aliquip excepteur. Enim laborum proident labore ad nulla duis magna tempor duis. Commodo veniam tempor minim cillum ex dolor.\r\nVelit adipisicing mollit pariatur in ipsum tempor id velit excepteur laborum amet laborum laborum. Excepteur eu exercitation veniam sit veniam incididunt sit. Elit commodo eu aute tempor aliquip esse non minim mollit. Consequat amet deserunt non enim. Nostrud anim Lorem aliquip cupidatat.\r\n", + "address": "3 Fiske Place", + "city": "Klagetoh", + "state": "Idaho", + "zip": 38305, + "country": "Dominican Republic", + "email": "hestersantana@scentric.com", + "phone": "(802) 512-3640", + "color": "rgb(253,247,138)" + }, + { + "index": 99, + "name": "Hurley Eaton", + "first": "Garner", + "last": "Kirk", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dnevozhai/73.jpg", + "boolean": true, + "guid": "312f254d-5789-4396-a389-10090b30c80a", + "integer": 80, + "date": "Sun Jun 01 2008 17:44:07 GMT-0700 (PDT)", + "shortText": "enim laborum", + "mediumText": "Reprehenderit labore magna est sunt dolore excepteur ea. Duis laboris eiusmod do laboris cupidatat proident in amet quis adipisicing est nisi.", + "longText": "Sunt mollit aliqua nisi irure sit. Minim sit amet duis nisi Lorem veniam. Deserunt anim est sint consequat pariatur elit eu magna incididunt duis aliquip. Do ipsum adipisicing eu quis ut nostrud fugiat ad in nostrud est sint enim. Incididunt exercitation commodo ipsum ut eu. Irure et adipisicing esse dolor eu. Ea consequat cillum eu occaecat in magna cillum anim culpa deserunt.\r\nConsectetur adipisicing velit minim et occaecat laborum minim fugiat eu laboris minim anim id do. Sint cupidatat pariatur sit quis quis elit pariatur. Deserunt proident enim Lorem est minim nisi et laborum nisi exercitation. Mollit qui consequat proident aliqua ad quis dolor. Irure nulla nisi ut Lorem ullamco sint et nulla dolore consectetur. Esse Lorem qui do pariatur mollit in velit amet labore.\r\nAliqua magna eiusmod ea velit sit voluptate in ea ad Lorem laborum aute cillum et. Veniam ea eiusmod dolor Lorem adipisicing deserunt. Do sunt dolore do fugiat et magna id aliquip nulla occaecat mollit.\r\nId veniam voluptate irure est ea irure nostrud ex. Est anim est dolor exercitation reprehenderit minim non est commodo ex est ut Lorem. Nulla aute nulla dolore amet deserunt elit tempor reprehenderit amet. Nulla et magna aliqua laborum ut minim ad in ex mollit dolor officia.\r\n", + "address": "2 Marconi Place", + "city": "Clarktown", + "state": "Arkansas", + "zip": 81655, + "country": "Zaire", + "email": "garnerkirk@scentric.com", + "phone": "(901) 504-3233", + "color": "rgb(141,220,214)" + }, + { + "index": 100, + "name": "Ruby Schroeder", + "first": "Julianne", + "last": "Hurst", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sebasribas/73.jpg", + "boolean": false, + "guid": "ae0e0ad1-423d-4e87-9d72-e7957011b3b1", + "integer": 51, + "date": "Tue Jun 14 1977 06:58:41 GMT-0700 (PDT)", + "shortText": "consectetur", + "mediumText": "Ex ea veniam ut velit aute dolore laborum ut. Ex proident elit cillum elit reprehenderit amet fugiat cillum cupidatat fugiat. Elit Lorem aute ad ad sit exercitation aute excepteur ex elit.", + "longText": "Eiusmod in irure exercitation aute aliquip qui sit amet ullamco cillum eiusmod enim. Ut aliquip occaecat nisi aliqua ut esse minim. Tempor deserunt dolore ea fugiat tempor cupidatat fugiat excepteur consectetur velit tempor eiusmod laborum. Adipisicing incididunt ex sit aliqua deserunt in culpa. Veniam ipsum enim duis enim ex proident do anim amet. Ipsum consequat ut labore non quis cupidatat adipisicing eiusmod amet.\r\nQui consectetur pariatur adipisicing aliquip nulla labore nulla in laborum excepteur eiusmod eu esse. Elit duis commodo ex laboris consectetur sunt in ullamco elit aliquip commodo consequat adipisicing. Labore eiusmod dolore ut voluptate proident. Officia fugiat culpa elit consectetur mollit sint ut. Duis magna cillum Lorem adipisicing amet nisi minim laboris nostrud fugiat eu nisi sunt.\r\nEa voluptate anim reprehenderit eu laboris ex ad non ut magna eu esse laborum. Eiusmod non dolor ex adipisicing sunt elit proident in officia pariatur eiusmod minim voluptate ex. Commodo excepteur enim sit dolor magna. Quis velit adipisicing pariatur ad ullamco ullamco eu fugiat consectetur. Est fugiat esse cupidatat velit ea aute laboris occaecat ullamco est velit. Aliqua adipisicing ex duis ipsum.\r\nLaboris mollit est officia in commodo consequat ullamco officia id aute non in ut. Excepteur ad magna sit dolore voluptate irure ut. Occaecat ea duis ipsum excepteur fugiat esse nulla incididunt fugiat adipisicing cupidatat labore. Voluptate eu consectetur tempor qui in quis in ad proident magna ex aliquip ad. Aute laboris consectetur proident ullamco voluptate nulla commodo tempor aliqua magna. Laborum eiusmod nulla occaecat quis elit aliquip aute id irure ut excepteur.\r\n", + "address": "3 Wyckoff Avenue", + "city": "Holcombe", + "state": "Delaware", + "zip": 49315, + "country": "China", + "email": "juliannehurst@scentric.com", + "phone": "(867) 576-3002", + "color": "rgb(191,56,212)" + }, + { + "index": 101, + "name": "Alana Wise", + "first": "Edith", + "last": "Suarez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cepreygolubev/73.jpg", + "boolean": true, + "guid": "19280eda-c661-4fde-88e3-e7e705ea0a83", + "integer": 59, + "date": "Wed Jun 25 2003 02:31:03 GMT-0700 (PDT)", + "shortText": "aute", + "mediumText": "Consectetur eu aute tempor mollit do aute nostrud adipisicing ad commodo id.", + "longText": "Incididunt excepteur cupidatat mollit ad tempor esse cupidatat velit ipsum non tempor est incididunt. Duis consequat dolore elit cupidatat mollit est. Exercitation et ex deserunt adipisicing tempor consectetur adipisicing ipsum deserunt amet enim tempor. Excepteur elit sit cupidatat cupidatat sit ea anim ullamco cupidatat nisi consectetur ut. Adipisicing amet duis occaecat excepteur adipisicing et exercitation enim est.\r\nCulpa nulla dolor ullamco occaecat dolor elit irure dolor velit anim id incididunt eiusmod ut. Deserunt dolore fugiat ipsum tempor ut dolore nostrud. Exercitation cillum culpa nostrud est. Quis qui sunt dolor id aliquip culpa anim nisi deserunt.\r\nLaborum eu minim aliqua excepteur ad. Sit tempor ullamco laborum excepteur pariatur deserunt cupidatat. Sint anim eiusmod sint elit. Incididunt consequat officia incididunt cillum. Reprehenderit anim reprehenderit esse officia et ea excepteur nisi magna. Lorem cupidatat in fugiat eu. Exercitation occaecat do eiusmod esse.\r\nAnim ullamco excepteur culpa deserunt enim est dolore duis ea anim exercitation. In et pariatur exercitation occaecat ad id Lorem ullamco consectetur labore ut laboris excepteur magna. Aute exercitation Lorem fugiat esse incididunt. Nulla nostrud ea ipsum eiusmod laboris nulla qui veniam aute officia eiusmod ad. Et anim ut dolor qui commodo occaecat nostrud non ex.\r\nCillum non et laborum cillum ex officia ullamco aliquip ut Lorem. Duis est sit sunt laboris ullamco deserunt dolor labore ut. Cupidatat elit do aute aliquip laborum tempor amet laboris occaecat id exercitation elit. Ullamco quis laboris voluptate amet duis elit incididunt mollit anim proident.\r\n", + "address": "4 Leonard Street", + "city": "Bluetown", + "state": "Federated States Of Micronesia", + "zip": 89344, + "country": "British Indian Ocean Territory", + "email": "edithsuarez@scentric.com", + "phone": "(920) 452-3377", + "color": "rgb(69,58,250)" + }, + { + "index": 102, + "name": "Kristen Wheeler", + "first": "Burke", + "last": "Barnes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamphilipjoyce/73.jpg", + "boolean": true, + "guid": "64341244-b22d-415d-8856-27b7c1b9e527", + "integer": 7, + "date": "Wed Jul 20 1994 02:28:58 GMT-0700 (PDT)", + "shortText": "duis dolore non minim est", + "mediumText": "Veniam amet sit nulla labore Lorem exercitation excepteur nostrud nulla velit proident laboris.", + "longText": "Ex incididunt do ad enim eu labore fugiat nulla enim elit. Cupidatat ipsum quis qui labore excepteur ullamco elit minim. Magna minim elit non mollit in consectetur cillum esse cillum ut esse aliquip anim. Reprehenderit ea irure eu consectetur nisi.\r\n", + "address": "2 Crooke Avenue", + "city": "Geyserville", + "state": "Guam", + "zip": 77246, + "country": "Libya", + "email": "burkebarnes@scentric.com", + "phone": "(843) 586-2743", + "color": "rgb(221,72,113)" + }, + { + "index": 103, + "name": "Clark Powell", + "first": "Hahn", + "last": "Lancaster", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/russell_baylis/73.jpg", + "boolean": true, + "guid": "d83aada5-7279-4d3c-81fe-360aa4d342af", + "integer": 44, + "date": "Tue Apr 17 2007 17:02:41 GMT-0700 (PDT)", + "shortText": "officia excepteur fugiat", + "mediumText": "Commodo consequat esse amet deserunt duis magna. Cupidatat aliquip consectetur anim incididunt laboris. Reprehenderit Lorem enim cillum pariatur est sint aliqua commodo non tempor.", + "longText": "Nisi tempor irure nulla duis. Cillum aliquip commodo in minim sunt proident exercitation do dolore velit. Nulla sunt sit officia magna ex ea.\r\nEa consequat aute duis quis elit. Sint aute deserunt commodo reprehenderit aliqua consequat commodo minim ut quis incididunt reprehenderit. Nulla elit voluptate laboris laboris dolore labore tempor pariatur deserunt reprehenderit tempor non occaecat pariatur. Elit pariatur irure ex exercitation ut ex dolore dolore consequat consectetur magna. Lorem consectetur est reprehenderit pariatur dolore sit Lorem Lorem ad ea elit.\r\nAd occaecat est ullamco occaecat voluptate. Aute proident in est adipisicing. Anim ipsum est voluptate ipsum cillum eiusmod aliquip. Officia magna irure commodo ut pariatur est eu nostrud laboris excepteur adipisicing deserunt consectetur amet. Qui consequat cupidatat laborum non.\r\nDolore do cupidatat irure quis culpa aliquip elit laboris consequat qui magna dolore. Magna esse qui exercitation dolore tempor tempor ex irure veniam cupidatat commodo qui officia fugiat. Fugiat aliqua eiusmod deserunt esse elit nisi. Reprehenderit pariatur duis excepteur eiusmod esse. Velit nulla nisi reprehenderit Lorem minim ut tempor nulla aliqua in incididunt aute esse aliquip. Duis laborum quis non commodo officia commodo. Officia nostrud do qui velit occaecat aute ex adipisicing officia et excepteur velit irure officia.\r\n", + "address": "3 Polhemus Place", + "city": "Franklin", + "state": "Pennsylvania", + "zip": 30447, + "country": "Cook Islands", + "email": "hahnlancaster@scentric.com", + "phone": "(901) 537-3991", + "color": "rgb(225,104,190)" + }, + { + "index": 104, + "name": "Tamra Cox", + "first": "Acevedo", + "last": "Bell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kijanmaharjan/73.jpg", + "boolean": true, + "guid": "2d002e10-253b-41d7-bca7-add74579f9d5", + "integer": 0, + "date": "Thu Nov 04 1982 13:05:17 GMT-0800 (PST)", + "shortText": "ullamco in aliqua", + "mediumText": "Irure eiusmod ullamco occaecat deserunt. Ullamco nisi veniam nulla ea labore irure incididunt sit nulla ut commodo.", + "longText": "Culpa elit est velit laborum do eu cillum. Adipisicing sit incididunt ea exercitation anim irure laboris quis reprehenderit adipisicing exercitation adipisicing eu aliquip. Irure aliqua minim irure labore magna cillum fugiat sit occaecat sint. Eiusmod velit dolore est nisi do dolor id quis nisi sunt id anim ex proident. Laborum consectetur deserunt amet anim non commodo occaecat proident et.\r\nDo in magna deserunt dolor aute ad occaecat consectetur qui. Dolore in eiusmod id mollit tempor pariatur sunt reprehenderit incididunt ipsum aliquip dolor qui commodo. Eiusmod in mollit fugiat qui. Nulla nostrud officia aute minim. Officia id proident excepteur sunt amet occaecat nisi anim amet reprehenderit. Tempor duis mollit nostrud enim reprehenderit fugiat nostrud ea proident magna. Sint magna labore aliqua tempor officia do nisi ex in cillum nisi.\r\nNulla tempor in cillum et eiusmod ad qui dolor consequat do deserunt. Mollit ex anim consequat aliqua commodo. Adipisicing cillum ut nostrud ad aliquip. Ipsum occaecat reprehenderit ipsum in veniam tempor deserunt ut adipisicing dolore dolore cupidatat. Consequat velit officia quis labore mollit reprehenderit duis consectetur excepteur nisi tempor.\r\n", + "address": "4 Grand Street", + "city": "Iola", + "state": "New Hampshire", + "zip": 44737, + "country": "Iran", + "email": "acevedobell@scentric.com", + "phone": "(813) 503-2649", + "color": "rgb(84,124,140)" + }, + { + "index": 105, + "name": "Barr Higgins", + "first": "Tonia", + "last": "Walton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/73.jpg", + "boolean": true, + "guid": "b381e41b-6b9b-4f51-85f1-661eade44d9d", + "integer": 93, + "date": "Tue Dec 24 1985 18:32:45 GMT-0800 (PST)", + "shortText": "sunt nisi laborum", + "mediumText": "Aliqua esse in cillum nostrud exercitation duis cupidatat cillum non deserunt culpa.", + "longText": "Exercitation ad do aliqua nostrud magna consequat. Ex ea commodo fugiat labore ipsum officia minim do velit proident sit. Voluptate eiusmod consequat voluptate dolor consectetur eu sunt eiusmod veniam. Exercitation eiusmod fugiat reprehenderit laboris.\r\nMollit aliqua est laboris proident non esse culpa cupidatat laborum qui nulla deserunt occaecat elit. Lorem esse quis labore dolor dolore labore nostrud ea labore veniam tempor. Anim elit nostrud ut velit pariatur sint laborum velit. Et esse culpa voluptate dolor commodo aliquip est ut. Laboris ullamco enim exercitation ea velit excepteur enim veniam in mollit irure. Qui nisi sit ad consequat veniam proident proident reprehenderit ipsum dolore proident. Nostrud occaecat quis laboris magna labore ut tempor consectetur labore cupidatat ea irure pariatur.\r\nAd consectetur commodo do excepteur. Velit fugiat qui pariatur velit nostrud enim. Et in ea enim non exercitation aliqua anim commodo cillum ullamco in nulla nostrud. Eu ex enim ut enim magna duis aliquip ullamco enim. Aute anim ex incididunt cillum eiusmod minim ut nostrud excepteur dolore. Reprehenderit nisi nisi consequat consequat mollit dolor excepteur ipsum aute est tempor. Occaecat in aute ea Lorem ex consectetur.\r\nCupidatat nulla ullamco mollit id consequat. Dolore aute sit est voluptate cillum adipisicing laboris ex non adipisicing. Minim proident labore nisi eu proident irure et et. Dolor deserunt deserunt in et qui consectetur ullamco occaecat. Magna ut tempor fugiat velit. Magna elit id Lorem quis occaecat dolor irure amet nulla. Proident ex ullamco consectetur consequat consequat eiusmod dolor proident aliquip ut.\r\nExcepteur ea aliqua elit incididunt deserunt commodo nisi. Exercitation nostrud in officia anim ea non anim laborum ullamco incididunt. Do aliqua excepteur officia reprehenderit reprehenderit cillum. Duis nostrud veniam occaecat quis exercitation magna mollit est fugiat ullamco in consectetur culpa cillum. Minim consequat elit ipsum in occaecat sit dolor sint laborum.\r\n", + "address": "4 Banker Street", + "city": "Silkworth", + "state": "North Dakota", + "zip": 14286, + "country": "Aruba", + "email": "toniawalton@scentric.com", + "phone": "(889) 461-2741", + "color": "rgb(116,194,59)" + }, + { + "index": 106, + "name": "Hickman Copeland", + "first": "Ross", + "last": "Ratliff", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/noufalibrahim/73.jpg", + "boolean": true, + "guid": "2f265cef-ebfa-484a-b328-63fa19eed885", + "integer": 91, + "date": "Tue Mar 20 1979 12:59:39 GMT-0800 (PST)", + "shortText": "eiusmod", + "mediumText": "Culpa dolor sunt culpa magna.", + "longText": "Aute amet velit labore labore culpa. Minim eiusmod eiusmod eiusmod nostrud et quis in et culpa ex sit incididunt Lorem. Cupidatat adipisicing Lorem dolore consequat elit.\r\n", + "address": "2 Euclid Avenue", + "city": "Rosewood", + "state": "Northern Mariana Islands", + "zip": 23138, + "country": "Faroe Islands", + "email": "rossratliff@scentric.com", + "phone": "(917) 466-2566", + "color": "rgb(245,137,240)" + }, + { + "index": 107, + "name": "Cervantes Mckee", + "first": "Vasquez", + "last": "Knapp", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/avclarkey/73.jpg", + "boolean": false, + "guid": "3658528d-3180-47bd-9c2e-d4f53947e409", + "integer": 27, + "date": "Sat Jan 23 1971 05:21:04 GMT-0800 (PST)", + "shortText": "eiusmod ullamco", + "mediumText": "Nulla tempor cupidatat consequat fugiat consequat irure non in. Ea eiusmod exercitation dolor labore laborum irure anim tempor exercitation.", + "longText": "Incididunt sit fugiat nulla ipsum. Veniam ex nostrud eu reprehenderit cillum. Fugiat nostrud esse eiusmod cupidatat consectetur ipsum sit duis consectetur cupidatat duis ullamco incididunt. Ea cupidatat esse sint adipisicing magna enim irure. Irure amet officia elit ullamco est cupidatat. Voluptate ut Lorem commodo occaecat nisi non id in ullamco occaecat est. Officia ea ea tempor irure commodo aute laborum et enim quis magna occaecat.\r\nAdipisicing ullamco aute duis labore duis est id Lorem ea commodo do nulla laboris. Et magna aliquip Lorem in in consectetur enim nulla do ad. Ea aute Lorem dolore eiusmod qui aliqua in cupidatat velit labore aliquip. Est esse velit sit consectetur anim nostrud ullamco commodo magna mollit in ut tempor. Lorem velit irure eiusmod duis amet et consectetur est quis non nulla incididunt et. Incididunt tempor ex minim amet reprehenderit. Anim nisi dolor ad tempor officia.\r\nEa ex esse amet excepteur tempor officia cupidatat eu cupidatat sit irure. Lorem minim quis ut non sit ullamco id tempor minim aliquip deserunt. Voluptate consectetur qui velit occaecat ullamco ea cupidatat tempor in anim ad magna. Ut velit dolore eiusmod reprehenderit incididunt irure anim laboris voluptate mollit incididunt minim ad duis.\r\n", + "address": "4 Crown Street", + "city": "Lowgap", + "state": "South Dakota", + "zip": 17680, + "country": "Zambia", + "email": "vasquezknapp@scentric.com", + "phone": "(889) 408-3991", + "color": "rgb(212,58,71)" + }, + { + "index": 108, + "name": "Juana Melendez", + "first": "Ford", + "last": "Greer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/arindam_/73.jpg", + "boolean": false, + "guid": "b9726558-94a5-4533-9213-cc6b11fa2b5d", + "integer": 94, + "date": "Mon Jul 17 1972 18:15:51 GMT-0700 (PDT)", + "shortText": "laboris velit esse", + "mediumText": "Aute ad non aute ipsum sint commodo cupidatat elit adipisicing fugiat.", + "longText": "Veniam ex consectetur id pariatur ipsum pariatur non officia sint. Exercitation quis eiusmod nisi officia aliquip. Laborum commodo occaecat ex ipsum aliqua. Et incididunt sunt deserunt Lorem eiusmod anim. Cillum consequat nulla ipsum eiusmod nulla velit pariatur aliqua. Reprehenderit est fugiat minim adipisicing ex esse adipisicing irure eu pariatur cupidatat.\r\nIn cupidatat elit reprehenderit deserunt sint mollit laborum consectetur enim anim. Consequat fugiat velit ut ipsum et duis consectetur. Aliqua velit nisi consequat mollit anim id quis cillum anim laboris exercitation adipisicing. Aliqua commodo cillum ut tempor incididunt sint ipsum incididunt nisi proident.\r\nEst qui incididunt dolore id. Culpa enim proident consectetur sunt. Ad laborum amet eiusmod mollit velit. Amet exercitation tempor nulla ullamco dolor fugiat non nostrud magna nisi veniam mollit laborum non.\r\nDuis ipsum voluptate ut laborum veniam. Commodo adipisicing sit nostrud mollit sint consequat ullamco sint amet ut enim. Anim pariatur magna reprehenderit elit fugiat culpa incididunt elit. Est irure tempor aliquip aliqua elit consequat pariatur est proident mollit tempor magna velit. Id nisi est cillum ut officia mollit deserunt nostrud ullamco.\r\nSit anim quis fugiat ullamco ipsum nulla proident sunt. Culpa est laborum veniam labore sit in mollit minim voluptate cupidatat. Elit qui sit amet qui eiusmod dolor. Irure sunt et minim culpa cillum. Minim consequat culpa ullamco excepteur duis nostrud consectetur proident dolor mollit veniam pariatur quis. Deserunt in reprehenderit eu velit ipsum excepteur pariatur deserunt officia fugiat qui exercitation magna dolor. Eiusmod cupidatat irure nisi dolor veniam aute ea quis nostrud eu esse excepteur aliquip.\r\n", + "address": "2 Crescent Street", + "city": "Valle", + "state": "Alaska", + "zip": 40517, + "country": "Albania", + "email": "fordgreer@scentric.com", + "phone": "(816) 454-3618", + "color": "rgb(249,251,66)" + }, + { + "index": 109, + "name": "Morin Franks", + "first": "Olive", + "last": "Bernard", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmakardaras/73.jpg", + "boolean": false, + "guid": "9c1e0cc3-71ab-4f1f-a061-864215df9f71", + "integer": 74, + "date": "Tue Aug 17 1976 13:06:23 GMT-0700 (PDT)", + "shortText": "reprehenderit voluptate occaecat tempor", + "mediumText": "Excepteur proident officia commodo ad aute et exercitation aliqua. Consequat exercitation proident ut sit cupidatat nulla dolor occaecat sit ad fugiat. Lorem cupidatat labore tempor fugiat consequat labore. Laborum consectetur amet mollit ullamco deserunt amet cupidatat qui. Est nulla est nostrud duis proident culpa laborum ipsum mollit cupidatat proident irure nisi officia.", + "longText": "Nulla consectetur velit cupidatat dolor ex dolore pariatur ea occaecat eu quis ut non elit. Magna esse consequat eu sit laboris dolor ullamco elit dolor. Eiusmod laboris irure consequat cillum. Nisi incididunt dolor velit aliquip labore culpa voluptate proident laborum adipisicing veniam aute. Aliquip exercitation ad culpa excepteur nisi minim non quis excepteur commodo esse nostrud laborum. Enim anim do duis deserunt mollit esse laborum anim. Aliqua eiusmod sunt aliqua officia quis in voluptate deserunt magna labore enim sit laborum.\r\nVelit dolor aute est sit aliqua. Occaecat occaecat officia pariatur esse do aute aliqua. Magna nostrud consectetur amet consequat veniam magna duis non. Est eu elit pariatur minim ut sit laborum proident. Do adipisicing et est ex id dolore. Amet magna minim do dolor duis veniam ipsum ex commodo anim culpa sint.\r\n", + "address": "2 Banner Avenue", + "city": "Forbestown", + "state": "Louisiana", + "zip": 26490, + "country": "Panama", + "email": "olivebernard@scentric.com", + "phone": "(980) 446-2496", + "color": "rgb(250,59,84)" + }, + { + "index": 110, + "name": "Le Frank", + "first": "Ada", + "last": "Love", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/georgespillman/73.jpg", + "boolean": false, + "guid": "6d7f1953-73e2-4cf5-904a-467d37de4108", + "integer": 28, + "date": "Mon Aug 03 1970 01:48:44 GMT-0700 (PDT)", + "shortText": "do officia", + "mediumText": "Ad elit labore sit culpa reprehenderit non elit sunt. Officia occaecat aliquip aliqua minim eu. Lorem aute consequat sunt sint excepteur do laborum consequat do. Occaecat eu enim irure laborum occaecat elit duis. Occaecat aute ad non Lorem voluptate magna.", + "longText": "Dolore sint proident ea culpa proident ut eu ipsum pariatur culpa fugiat est nisi sunt. Voluptate ut excepteur aliquip enim adipisicing deserunt. Commodo irure irure id non officia elit do eiusmod. Voluptate ipsum dolor sint aliquip laboris fugiat cupidatat et ea proident nostrud cillum duis.\r\nAliqua eiusmod sit laboris non tempor proident ea. Ut excepteur tempor non nisi. Do id velit do non anim laborum ad est laborum consequat. Ea sunt velit do incididunt duis amet velit adipisicing exercitation anim. Duis eiusmod exercitation officia dolor aliqua officia fugiat ad fugiat dolor elit qui. Sunt reprehenderit est esse enim exercitation eiusmod et quis ea et dolore. Enim occaecat sunt sit do velit nulla cillum laboris.\r\nMinim cupidatat ex minim excepteur. Quis est enim officia proident voluptate tempor anim duis. Magna anim voluptate ullamco dolore dolore aute ipsum nulla ea est nulla exercitation eiusmod. Ex Lorem nulla et do consequat nulla ipsum enim ad amet excepteur ipsum incididunt veniam. Occaecat enim eu aliquip consectetur fugiat anim. Cillum pariatur quis ullamco minim nisi proident dolor occaecat ad ipsum commodo deserunt eu nostrud. Sunt reprehenderit et ipsum exercitation est veniam aute ut ex.\r\nAd aliquip ad et aliquip. Officia ex est qui nisi dolore velit sint. Et enim voluptate irure culpa eiusmod id incididunt minim voluptate ut eiusmod incididunt. Non occaecat cillum exercitation duis eiusmod id laboris veniam. Nisi id ut veniam excepteur.\r\n", + "address": "4 Rochester Avenue", + "city": "Chesapeake", + "state": "Missouri", + "zip": 58919, + "country": "Turks and Caicos Islands", + "email": "adalove@scentric.com", + "phone": "(895) 541-3397", + "color": "rgb(133,191,68)" + }, + { + "index": 111, + "name": "Joseph Hooper", + "first": "Sally", + "last": "Blackwell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fireupman/73.jpg", + "boolean": false, + "guid": "e86e14ac-2f06-4abd-93f2-552b79ec5e01", + "integer": 95, + "date": "Tue Jul 21 1987 11:15:23 GMT-0700 (PDT)", + "shortText": "anim duis", + "mediumText": "Amet ut occaecat do non nulla aute aliquip qui. Dolore sint sit ipsum ea minim reprehenderit irure quis magna elit exercitation mollit. Aute ullamco minim ut cupidatat incididunt aute occaecat aute ea consequat sint.", + "longText": "Officia commodo aute culpa sit ea in qui mollit laborum sunt aute eiusmod aliquip cillum. Velit commodo nisi qui consectetur eiusmod ad Lorem cupidatat irure adipisicing do adipisicing commodo. Laborum mollit cillum ad tempor. Anim proident culpa aliqua amet anim pariatur consequat aliquip anim cupidatat ut reprehenderit. Dolor reprehenderit magna enim dolore eu laborum consectetur do commodo proident. Duis voluptate dolor magna occaecat officia adipisicing duis voluptate adipisicing ex cupidatat. Ex aute adipisicing ullamco consectetur aute minim occaecat sit commodo Lorem duis.\r\nFugiat officia do do cillum ut adipisicing nisi nostrud culpa cupidatat. Magna velit ad excepteur et sunt sunt esse commodo velit consequat occaecat officia ea magna. Cillum culpa id aliqua in. Fugiat dolore elit do ea aliqua duis id eiusmod cillum amet ut. Dolor id magna id dolor aliqua veniam elit adipisicing qui nulla. Ex mollit consectetur adipisicing elit id eiusmod sunt deserunt veniam qui quis ut.\r\nProident exercitation aliqua occaecat anim tempor ullamco non laborum reprehenderit. Ullamco consectetur eiusmod ut quis cillum. Nulla officia in quis est sit consectetur eu ipsum sunt. Sunt cupidatat velit cillum non proident excepteur qui non aliquip.\r\nAd amet sit sint adipisicing dolore eu enim dolore velit sit deserunt. Esse labore non proident magna ut aliquip in id ex deserunt. Reprehenderit magna consequat irure ad ullamco pariatur magna consectetur pariatur magna voluptate non sunt.\r\nIpsum sint deserunt enim labore ea deserunt sint pariatur. Amet sit sint id minim esse quis magna fugiat dolore. Ullamco et magna ex dolor do commodo amet nostrud commodo adipisicing cillum. Dolor culpa mollit elit sit et enim ullamco fugiat proident occaecat.\r\n", + "address": "3 Congress Street", + "city": "Tedrow", + "state": "Kentucky", + "zip": 17527, + "country": "Christmas Island", + "email": "sallyblackwell@scentric.com", + "phone": "(883) 597-2036", + "color": "rgb(213,146,224)" + }, + { + "index": 112, + "name": "Shepherd Burt", + "first": "Pansy", + "last": "Young", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kylefrost/73.jpg", + "boolean": false, + "guid": "e82c95af-0ea1-4299-9f4e-131f39c1c537", + "integer": 49, + "date": "Sat May 24 2014 22:33:36 GMT-0700 (PDT)", + "shortText": "labore fugiat", + "mediumText": "Culpa eiusmod culpa nostrud voluptate eiusmod ea voluptate voluptate ex ut. Cillum consectetur voluptate tempor irure commodo id excepteur tempor laborum nisi. Proident eiusmod exercitation mollit sunt in est aliqua mollit non deserunt fugiat excepteur quis.", + "longText": "Sunt quis nisi cillum aute est reprehenderit non. Ullamco pariatur in est officia nisi laborum ad ut pariatur qui elit. Ipsum voluptate labore in et laboris amet quis esse occaecat dolore veniam cupidatat voluptate. In sint aute aliqua ea dolor Lorem quis sunt.\r\n", + "address": "2 Remsen Street", + "city": "Abrams", + "state": "American Samoa", + "zip": 37068, + "country": "Botswana", + "email": "pansyyoung@scentric.com", + "phone": "(938) 478-3164", + "color": "rgb(190,139,243)" + }, + { + "index": 113, + "name": "Brianna Peterson", + "first": "Carla", + "last": "Davidson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/quser/73.jpg", + "boolean": true, + "guid": "e7c8b790-5171-41b9-8926-16f6ba35a268", + "integer": 74, + "date": "Sun Aug 06 1989 02:58:01 GMT-0700 (PDT)", + "shortText": "sunt ex laboris cupidatat culpa", + "mediumText": "Ut duis eu quis nostrud irure excepteur quis. Cillum quis aute occaecat eu laborum non incididunt.", + "longText": "Tempor aute incididunt exercitation pariatur eu sunt magna excepteur. Do ex officia proident laborum ullamco cillum. In elit consequat anim velit commodo pariatur ad enim est nostrud anim proident amet nostrud. Proident duis incididunt ad deserunt nisi cupidatat irure eu cupidatat magna qui quis sunt.\r\nConsectetur occaecat sunt sint nostrud est dolor officia dolor occaecat ipsum labore consequat. Consequat eu ipsum voluptate et exercitation ex dolor commodo pariatur elit eu amet. In consectetur Lorem veniam est minim consectetur excepteur irure cillum. Ut Lorem incididunt laboris minim proident sit mollit tempor ad culpa amet amet. Quis duis velit ut dolor proident dolore proident ex sit adipisicing do.\r\nEsse elit occaecat pariatur nulla sint non elit aliquip est voluptate laboris. Consequat culpa fugiat ea eu. Et minim culpa voluptate amet. Sint qui cillum consequat quis velit et aliqua occaecat duis quis. Aute sunt aute in exercitation id exercitation cupidatat irure. Anim et minim cillum dolore irure enim eiusmod pariatur ad deserunt ea.\r\nIrure esse reprehenderit proident tempor non cupidatat incididunt laboris culpa eiusmod elit culpa velit non. Sit ullamco incididunt exercitation enim quis commodo id Lorem minim duis. Duis nulla sunt sit reprehenderit duis excepteur laborum in ut dolore consequat. Aliqua esse culpa nulla et amet ex fugiat sit non sunt. Elit nostrud commodo sunt veniam anim ut duis ullamco labore ex aliqua laboris.\r\n", + "address": "4 Oriental Court", + "city": "Valmy", + "state": "Minnesota", + "zip": 13895, + "country": "Algeria", + "email": "carladavidson@scentric.com", + "phone": "(995) 595-3974", + "color": "rgb(179,161,85)" + }, + { + "index": 114, + "name": "Erica Campbell", + "first": "Emilia", + "last": "Hernandez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maikelk/73.jpg", + "boolean": false, + "guid": "a14b1c62-e553-458d-ab78-cd9e278ac859", + "integer": 59, + "date": "Tue Aug 21 2012 17:43:47 GMT-0700 (PDT)", + "shortText": "ut id sit ea est", + "mediumText": "Aliquip occaecat voluptate ea dolor pariatur. Dolor amet velit adipisicing duis elit nisi aute incididunt veniam minim.", + "longText": "Id eu commodo in anim proident sit aliquip sit. Mollit dolor exercitation laborum veniam reprehenderit tempor reprehenderit. Culpa in cillum nisi occaecat elit aute duis est. Laborum quis laborum nostrud amet nulla quis exercitation non officia cupidatat culpa deserunt incididunt nulla. Exercitation exercitation ex velit ipsum excepteur esse dolor ipsum et anim non proident Lorem. Nostrud laboris consectetur et eiusmod sint. Amet adipisicing dolore Lorem deserunt ad cupidatat labore.\r\nNisi ipsum anim aliquip id sit proident reprehenderit aute. Esse duis incididunt minim nisi velit do incididunt anim nostrud. In mollit aliquip duis proident dolor. Sunt ipsum amet esse laborum.\r\nCupidatat anim enim do ut. Nostrud ipsum consectetur non ipsum officia. Aliqua commodo eiusmod eu labore laborum. Magna aliqua in est amet eu anim reprehenderit qui ullamco est anim sit et. Est deserunt tempor commodo occaecat dolore sint esse aliquip culpa sint cupidatat non cupidatat. Est reprehenderit irure esse fugiat ad pariatur fugiat. Labore non consectetur nisi aliquip adipisicing culpa incididunt ad consectetur consequat ipsum.\r\n", + "address": "2 Legion Street", + "city": "Cuylerville", + "state": "Hawaii", + "zip": 84971, + "country": "Switzerland", + "email": "emiliahernandez@scentric.com", + "phone": "(922) 599-3995", + "color": "rgb(101,247,162)" + }, + { + "index": 115, + "name": "Sheryl Waller", + "first": "Martina", + "last": "Hebert", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ifarafonow/73.jpg", + "boolean": false, + "guid": "ab359e49-0653-4622-a683-fa6bb4a5e4eb", + "integer": 39, + "date": "Mon Nov 17 2008 06:44:36 GMT-0800 (PST)", + "shortText": "sunt", + "mediumText": "Nisi dolor ad enim nostrud id proident nisi elit cupidatat nisi nostrud laborum. Ea deserunt labore est in sunt id consectetur nisi.", + "longText": "Aliqua sunt enim Lorem amet enim. Nisi laboris elit veniam irure culpa nisi non aliquip. Anim dolor duis enim tempor culpa dolor reprehenderit elit. Non sunt veniam aliqua ea occaecat do pariatur occaecat ea. Exercitation nostrud cillum mollit ipsum laboris sunt est aute nostrud velit officia esse.\r\nLabore commodo ipsum proident est et sint sint deserunt. Proident qui elit eu duis et veniam excepteur eu ipsum ea consectetur consectetur fugiat sit. Aliqua aliqua laboris aute ut sit id nisi sunt reprehenderit qui deserunt. Labore laborum et ex enim dolore ullamco est excepteur dolore labore adipisicing. Commodo cupidatat non velit qui.\r\nQui exercitation esse ullamco nulla nisi labore ex ea voluptate eu consectetur et occaecat. Ullamco laborum esse labore et ullamco sunt proident eu esse proident excepteur. Qui incididunt occaecat minim elit irure ea aliquip in fugiat. Do cupidatat aliqua veniam cupidatat magna exercitation irure mollit fugiat consectetur. Sunt fugiat esse dolor mollit in fugiat reprehenderit qui tempor laborum Lorem incididunt. Exercitation do occaecat adipisicing velit aute enim enim occaecat nisi laboris quis ex minim eu. In incididunt consequat esse dolor officia eiusmod amet aliqua ad quis.\r\n", + "address": "3 Gelston Avenue", + "city": "Leeper", + "state": "Alabama", + "zip": 86800, + "country": "S. Georgia and S. Sandwich Isls.", + "email": "martinahebert@scentric.com", + "phone": "(814) 523-3612", + "color": "rgb(240,55,85)" + }, + { + "index": 116, + "name": "Frances Dalton", + "first": "Virgie", + "last": "Fuller", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ananya159/73.jpg", + "boolean": false, + "guid": "1ca31b96-9723-4249-bb9a-7062701a66b0", + "integer": 81, + "date": "Tue Oct 01 1974 14:29:16 GMT-0700 (PDT)", + "shortText": "cillum", + "mediumText": "Aliquip nisi proident id sint velit enim cillum reprehenderit ipsum nisi dolore laboris Lorem. Velit Lorem irure irure consectetur. Aliquip veniam culpa qui Lorem cupidatat non incididunt velit irure magna in do consequat do.", + "longText": "Nostrud adipisicing aute esse ipsum anim. Nisi pariatur excepteur est minim pariatur consectetur aliquip adipisicing. Adipisicing fugiat consequat proident deserunt exercitation exercitation irure sit qui deserunt. Dolor eu cillum eiusmod id incididunt consectetur nisi ullamco mollit labore. Aliqua ullamco proident adipisicing duis minim. Lorem ut fugiat cillum aliqua sit in mollit labore sunt reprehenderit.\r\nQui aliqua pariatur voluptate fugiat fugiat duis consequat occaecat laboris cillum sit. Sit officia fugiat esse ut eiusmod eu labore nostrud est incididunt fugiat. Voluptate velit laboris veniam sunt laborum ad nulla ad. Dolor deserunt ut ut culpa laboris qui elit est non cillum eu cillum anim laborum. Mollit consequat cillum id consequat sint voluptate pariatur nisi nostrud duis ipsum mollit.\r\nIncididunt dolor laborum adipisicing mollit voluptate ad labore ad do minim occaecat proident amet anim. Commodo anim pariatur dolor officia ipsum adipisicing irure excepteur irure eiusmod deserunt. Commodo veniam exercitation ex ad. Ut aliquip aliqua laboris ipsum quis duis. Amet in dolor minim veniam mollit dolore deserunt sit exercitation sint dolore consequat. Mollit anim qui dolor enim ea irure sint consectetur. Eiusmod eu exercitation incididunt Lorem dolore non cupidatat tempor do labore duis.\r\nMinim exercitation ut cupidatat est minim enim magna eiusmod aliquip ipsum incididunt in officia. Aliquip in fugiat dolor elit quis ad. Ipsum laboris sit non amet eu dolor aute velit ullamco eu proident. Consequat commodo consectetur Lorem esse duis esse exercitation adipisicing anim.\r\n", + "address": "2 Bokee Court", + "city": "Reinerton", + "state": "North Carolina", + "zip": 90734, + "country": "Brazil", + "email": "virgiefuller@scentric.com", + "phone": "(958) 511-3488", + "color": "rgb(151,135,52)" + }, + { + "index": 117, + "name": "Charity Hall", + "first": "Mitchell", + "last": "Williamson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/horaciobella/73.jpg", + "boolean": true, + "guid": "60b57acd-e17f-4c69-85e5-5df345c25c6f", + "integer": 22, + "date": "Wed Jan 19 2005 08:59:18 GMT-0800 (PST)", + "shortText": "eu nisi elit nostrud", + "mediumText": "Nisi id voluptate velit tempor voluptate laboris. Excepteur consectetur labore id ipsum anim proident ad adipisicing dolor. Magna aute excepteur veniam nulla laborum culpa et incididunt enim velit officia. Ipsum est qui minim consequat Lorem.", + "longText": "Enim consectetur quis tempor eu laboris veniam ea eu est. Ullamco commodo commodo dolor ad mollit ex in nulla. Ipsum dolor excepteur ut in sit est nulla ad nulla in tempor laboris ipsum laborum. Lorem incididunt fugiat eu laboris laborum eiusmod dolor tempor aliquip. Minim in do deserunt pariatur adipisicing id duis consectetur nostrud proident.\r\n", + "address": "4 Dover Street", + "city": "Fannett", + "state": "Connecticut", + "zip": 11138, + "country": "Anguilla", + "email": "mitchellwilliamson@scentric.com", + "phone": "(871) 435-3743", + "color": "rgb(243,134,198)" + }, + { + "index": 118, + "name": "Rodriquez Ferguson", + "first": "Shannon", + "last": "Morrow", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thatdesigner/73.jpg", + "boolean": false, + "guid": "6c85f6cb-e2c6-46e0-a68a-2ebc38f0035b", + "integer": 50, + "date": "Sat Feb 10 1973 15:31:21 GMT-0800 (PST)", + "shortText": "incididunt aute aliquip laborum labore", + "mediumText": "Minim ipsum sint consequat cillum aute ipsum et ipsum sint cillum qui eiusmod.", + "longText": "Reprehenderit est consequat incididunt nostrud do eiusmod adipisicing. Nulla voluptate ullamco consectetur eu sit. Est dolore cupidatat amet culpa occaecat ullamco nisi non veniam do est ullamco aliqua. Qui irure nisi laboris labore duis nulla magna. Culpa velit dolor exercitation elit sint irure velit eu veniam exercitation Lorem. Pariatur ipsum veniam consectetur nulla laborum.\r\nAdipisicing eu amet duis nulla. Anim dolore magna eu culpa voluptate sunt aute proident. Elit veniam adipisicing commodo aliqua eiusmod velit mollit nisi quis veniam excepteur mollit laborum. Esse ipsum commodo cupidatat sint quis mollit veniam consequat do laborum nulla. Aliquip consequat proident et aliqua ea proident proident dolore laboris consequat ut reprehenderit quis duis. Enim cupidatat reprehenderit reprehenderit esse irure officia irure laboris. Consequat esse qui pariatur elit cillum culpa deserunt culpa veniam qui excepteur laborum.\r\n", + "address": "4 Newel Street", + "city": "Dubois", + "state": "South Carolina", + "zip": 52970, + "country": "Mayotte", + "email": "shannonmorrow@scentric.com", + "phone": "(926) 593-2505", + "color": "rgb(161,59,65)" + }, + { + "index": 119, + "name": "Lee Dejesus", + "first": "Yang", + "last": "Walter", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/snaphappydad/73.jpg", + "boolean": false, + "guid": "bf814de3-e21d-41e7-9db1-2d541665fd2c", + "integer": 40, + "date": "Mon Feb 18 2002 15:18:34 GMT-0800 (PST)", + "shortText": "pariatur nisi", + "mediumText": "Esse dolore nulla aliqua id cupidatat ullamco commodo incididunt.", + "longText": "Ipsum cupidatat amet Lorem excepteur magna quis officia tempor enim voluptate consequat id ex. Ad labore aliqua exercitation nulla et esse nostrud pariatur. Nisi minim velit consequat dolore aliquip est labore sint.\r\nAnim non irure proident cillum eiusmod. Id anim non adipisicing consectetur qui duis. Sit culpa exercitation non nostrud.\r\nOccaecat aliquip elit anim ex nulla ut in. Aliqua ut cupidatat elit dolor id occaecat. Sit consectetur consequat eiusmod veniam tempor minim non voluptate labore ullamco esse velit proident.\r\n", + "address": "2 Krier Place", + "city": "Columbus", + "state": "Michigan", + "zip": 62839, + "country": "Northern Mariana Islands", + "email": "yangwalter@scentric.com", + "phone": "(821) 518-2276", + "color": "rgb(56,241,182)" + }, + { + "index": 120, + "name": "Wise Cannon", + "first": "Cobb", + "last": "Figueroa", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cristianovalim/73.jpg", + "boolean": false, + "guid": "e5754bf6-f162-4fd2-a3e9-e3834bad0fed", + "integer": 61, + "date": "Sun Nov 22 1970 00:54:52 GMT-0800 (PST)", + "shortText": "Lorem dolor pariatur proident", + "mediumText": "Dolor tempor veniam ad do et. Mollit enim et id veniam in irure mollit duis deserunt commodo.", + "longText": "Ex pariatur eiusmod cupidatat nisi elit ullamco Lorem. Reprehenderit minim velit laboris et incididunt tempor anim elit ad aute duis ullamco. Amet est magna consectetur in cillum duis. Sunt id Lorem laboris cupidatat aute. Cillum est ea mollit exercitation ullamco pariatur exercitation anim Lorem dolore exercitation velit ipsum.\r\nExcepteur excepteur est pariatur eiusmod quis consectetur qui aute nulla ex Lorem sunt irure. Tempor excepteur proident esse excepteur consectetur minim consequat non. Mollit nulla ea veniam excepteur eu velit.\r\n", + "address": "4 Pulaski Street", + "city": "Glenville", + "state": "Maine", + "zip": 69282, + "country": "Pitcairn", + "email": "cobbfigueroa@scentric.com", + "phone": "(901) 579-2803", + "color": "rgb(243,138,133)" + }, + { + "index": 121, + "name": "Albert Benjamin", + "first": "French", + "last": "Hays", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pmeissner/73.jpg", + "boolean": false, + "guid": "4bcb4883-f717-4bc7-b0ff-91b548b5ae5a", + "integer": 11, + "date": "Fri Jun 27 1980 15:54:19 GMT-0700 (PDT)", + "shortText": "Lorem do", + "mediumText": "Ipsum irure amet aliquip deserunt irure nisi duis fugiat et officia voluptate aliquip labore consectetur. Reprehenderit aute cupidatat tempor enim aliquip non qui consequat do qui proident id. Aliquip labore in ex consequat commodo qui adipisicing proident. Tempor veniam non laborum aute velit Lorem sunt. Fugiat anim nulla veniam anim pariatur nulla irure incididunt occaecat.", + "longText": "Enim irure eiusmod magna non tempor eu mollit nostrud anim elit. Fugiat eu officia aliqua dolore non tempor aute ipsum occaecat. Amet velit fugiat aliqua Lorem officia excepteur sunt nostrud magna est. In pariatur irure quis ea ut et esse nisi do mollit excepteur laborum minim. Nostrud sunt est duis est. In in enim Lorem tempor aliquip enim ea irure deserunt.\r\nCillum est magna fugiat dolor nostrud adipisicing mollit qui enim. Nostrud consequat amet reprehenderit commodo ut amet est aute nisi exercitation aute. Eiusmod enim reprehenderit ut ut exercitation irure proident minim commodo nostrud. Consequat ex magna aliquip cupidatat culpa excepteur non.\r\nVeniam esse esse sunt reprehenderit veniam commodo irure fugiat qui. Consequat qui dolor veniam ipsum laboris enim labore. Mollit cupidatat sit non esse voluptate in qui cupidatat qui eu. Duis incididunt ad mollit ad nisi culpa irure anim ullamco commodo tempor consectetur. Cillum pariatur labore do quis commodo non eu proident et.\r\nAmet cupidatat amet et culpa proident labore esse ipsum. Labore fugiat ea laboris irure mollit cupidatat minim exercitation occaecat velit ullamco quis. Labore esse cupidatat nulla amet et. Duis est cupidatat eu ea excepteur nulla cupidatat dolor enim ipsum sit nostrud laborum sit. Voluptate cupidatat cillum nulla reprehenderit laboris incididunt eu nostrud amet ad dolore do. Non ea eu cillum duis consectetur in. Anim consequat in adipisicing fugiat sit do anim anim aute veniam eu consectetur aliquip.\r\nMollit aliquip cillum adipisicing ipsum non laboris. Consequat mollit in incididunt mollit deserunt eiusmod nulla dolor ea fugiat. Proident reprehenderit nisi tempor nulla excepteur dolor excepteur voluptate laboris tempor consequat. Dolor et minim enim ut laboris. Ipsum ex veniam consequat cillum nisi amet nostrud. Mollit labore in consequat irure enim. Qui tempor aliquip esse enim commodo culpa mollit.\r\n", + "address": "4 Pooles Lane", + "city": "Bellfountain", + "state": "Kansas", + "zip": 98526, + "country": "Saint Vincent and The Grenadines", + "email": "frenchhays@scentric.com", + "phone": "(819) 408-2182", + "color": "rgb(238,191,114)" + }, + { + "index": 122, + "name": "Nona Salinas", + "first": "Lacey", + "last": "Donaldson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akbarbobojonov/73.jpg", + "boolean": true, + "guid": "bd1bbab7-51f1-45a4-a0c8-ad85a536c9ec", + "integer": 9, + "date": "Thu May 01 1986 06:09:47 GMT-0700 (PDT)", + "shortText": "proident ea qui culpa", + "mediumText": "Eiusmod labore in laboris eu pariatur amet. Et nulla aliqua consectetur nulla quis ad non. Aute ut sint reprehenderit et eu et sunt labore dolor.", + "longText": "Exercitation mollit commodo ad ipsum ipsum minim quis culpa cillum ut mollit labore commodo. Anim dolor eu in deserunt occaecat enim do proident mollit exercitation laborum consequat. Irure proident exercitation voluptate in. Magna officia sint occaecat pariatur irure elit cupidatat deserunt nulla ad cillum incididunt velit. Quis veniam est est id labore enim duis culpa deserunt aliquip mollit qui. Deserunt laboris proident incididunt esse velit minim sint ex excepteur. Cillum do sint commodo qui laborum occaecat dolore sint.\r\nDeserunt culpa pariatur dolore mollit dolor velit id labore incididunt eiusmod consectetur. Sunt eu duis ut eu sint sint non aliqua ullamco sunt est id irure eiusmod. Eiusmod ex cupidatat quis ut cillum elit. Lorem tempor proident elit adipisicing. Minim sunt minim esse do amet Lorem officia occaecat sit ut. In id ullamco ipsum ex sit adipisicing mollit irure non magna ad commodo proident aute. Mollit sunt mollit eiusmod voluptate consectetur magna ex ullamco.\r\n", + "address": "4 Freeman Street", + "city": "Wollochet", + "state": "Iowa", + "zip": 21774, + "country": "Iceland", + "email": "laceydonaldson@scentric.com", + "phone": "(977) 552-3200", + "color": "rgb(51,183,113)" + }, + { + "index": 123, + "name": "Karla Downs", + "first": "Cruz", + "last": "Colon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pjnes/73.jpg", + "boolean": true, + "guid": "2f9877c1-7121-400a-a476-36dfbedde48b", + "integer": 0, + "date": "Thu Feb 27 1992 08:28:41 GMT-0800 (PST)", + "shortText": "deserunt", + "mediumText": "Reprehenderit deserunt eiusmod sint laboris deserunt qui eiusmod ex aliqua et laborum duis magna deserunt. Officia tempor ullamco aute occaecat velit. Aliqua consectetur nulla eiusmod elit. Culpa enim reprehenderit labore incididunt id nostrud deserunt quis ad est irure laboris.", + "longText": "Ut qui adipisicing qui veniam irure fugiat. Cillum occaecat fugiat proident velit anim nostrud duis reprehenderit nostrud tempor aliquip veniam. Nostrud ipsum laboris eu enim id do. Adipisicing ea consequat enim et anim in fugiat amet ipsum.\r\nVoluptate tempor ut ut laborum et ad. Ea laboris duis ad pariatur commodo do et aute. Sit aliqua sint proident do consequat anim sit. Officia elit dolore exercitation elit anim ullamco excepteur deserunt quis quis proident esse fugiat voluptate. Culpa officia amet eu enim culpa sit et. Culpa incididunt adipisicing non eu in minim.\r\nDuis laborum laborum voluptate aliquip. Aliqua eu elit labore ipsum aliqua. Nulla reprehenderit aute labore aliqua est consectetur deserunt pariatur ut. Aute laboris voluptate ipsum nostrud enim proident amet ad.\r\nCulpa minim velit aliquip enim deserunt dolor. Commodo sit commodo enim adipisicing ea non aute consectetur proident eu do. Consequat elit irure minim dolor voluptate excepteur sunt eu et quis. Occaecat exercitation voluptate sunt ullamco reprehenderit ea amet magna. Cillum laborum commodo irure ad in sunt occaecat veniam non proident incididunt pariatur.\r\n", + "address": "3 Elm Place", + "city": "Richville", + "state": "Vermont", + "zip": 65904, + "country": "Andorra", + "email": "cruzcolon@scentric.com", + "phone": "(900) 475-3785", + "color": "rgb(165,150,188)" + }, + { + "index": 124, + "name": "Candace Gonzalez", + "first": "Debbie", + "last": "Moody", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/balintorosz/73.jpg", + "boolean": false, + "guid": "9d3734d9-4693-4ac0-9dba-85eb63a89032", + "integer": 1, + "date": "Fri May 06 2005 19:01:26 GMT-0700 (PDT)", + "shortText": "exercitation do mollit mollit proident", + "mediumText": "Ullamco ad quis laboris ea consectetur commodo anim ut irure. Sit id elit mollit eiusmod officia amet reprehenderit. Ea incididunt commodo officia qui eu ad exercitation occaecat ipsum ad aute laboris ea. Proident irure velit magna culpa proident qui amet.", + "longText": "Minim voluptate culpa mollit ad voluptate est mollit nisi cillum proident. Cillum ut aliqua esse ad esse qui magna anim mollit. Ipsum pariatur labore culpa velit ipsum mollit fugiat id velit in cillum sint. Voluptate aliquip irure reprehenderit incididunt ipsum magna duis proident commodo consequat. Eiusmod commodo labore ex commodo tempor veniam. Occaecat duis tempor cillum aute qui do officia excepteur et sunt eiusmod fugiat.\r\nConsectetur amet nulla sit commodo aute labore id commodo reprehenderit deserunt occaecat incididunt. Esse consectetur minim occaecat duis deserunt est magna aute aliqua veniam aute sunt nulla eu. Exercitation officia proident dolore ex aliqua officia laboris ullamco anim.\r\nReprehenderit exercitation veniam eu eu aute ullamco irure ex tempor. Irure tempor Lorem anim eu nulla proident nulla est sunt. Voluptate id dolor excepteur id ut quis duis.\r\nPariatur tempor aliquip consectetur reprehenderit qui dolore excepteur veniam. In aliqua aute veniam aliqua in officia aute nisi Lorem. Ea duis labore labore voluptate. Voluptate esse cillum excepteur reprehenderit.\r\n", + "address": "2 Duryea Court", + "city": "Bentonville", + "state": "Nebraska", + "zip": 43783, + "country": "Myanmar", + "email": "debbiemoody@scentric.com", + "phone": "(816) 429-3615", + "color": "rgb(209,130,75)" + }, + { + "index": 125, + "name": "Ayers Finley", + "first": "Janna", + "last": "Donovan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/martinhn/73.jpg", + "boolean": false, + "guid": "9910153e-54e3-4464-ab3b-2f87ff4a6574", + "integer": 29, + "date": "Wed Jun 03 1987 11:23:05 GMT-0700 (PDT)", + "shortText": "occaecat dolore sunt", + "mediumText": "Esse voluptate quis laborum voluptate ut labore tempor consequat sit. Adipisicing proident ex Lorem voluptate eu esse laborum ex laborum officia veniam aliquip enim id. Incididunt eu nisi proident pariatur ut non.", + "longText": "Incididunt do qui veniam Lorem quis. Aute culpa ut dolor incididunt deserunt consequat mollit non nulla dolore. Deserunt veniam velit tempor pariatur aliquip veniam. Duis aliquip nulla sunt ullamco esse aliqua Lorem esse aliquip veniam adipisicing. Cillum et do enim commodo aliqua ullamco exercitation exercitation. Mollit magna Lorem fugiat irure excepteur adipisicing id veniam. Sit tempor aute in minim dolore aliquip minim nisi magna.\r\nVelit aliqua ullamco ea amet culpa id. Magna velit voluptate culpa fugiat fugiat amet veniam ad labore eu in. Eu deserunt quis ipsum aliqua nulla pariatur commodo. Elit nostrud id irure eu reprehenderit est dolore sunt Lorem. Esse anim quis elit elit irure consectetur irure ut non ad ullamco magna et. Ex Lorem labore deserunt consequat consectetur officia veniam non commodo magna ut non eu in.\r\nVoluptate aliqua velit magna dolor in anim dolore ad quis. Ullamco magna officia labore ex adipisicing veniam magna adipisicing in id anim ea adipisicing mollit. Irure pariatur ea incididunt culpa ex veniam pariatur eiusmod duis ea. Ut exercitation duis aliqua quis elit reprehenderit magna veniam voluptate nostrud. Id proident nostrud consectetur occaecat nostrud nostrud nisi eu labore occaecat minim. Sint ut consequat ullamco dolor duis exercitation sint eiusmod nostrud et esse labore. Anim elit ipsum occaecat sint laborum esse.\r\nAd velit aliqua irure dolor aliquip eiusmod occaecat incididunt sunt dolore elit quis sunt. Sunt veniam quis eu anim et ut laborum. Nisi duis anim non sunt consequat labore duis sit minim velit dolor adipisicing pariatur. Qui fugiat elit non amet ad nostrud voluptate veniam proident.\r\nEnim qui non exercitation cupidatat pariatur cillum anim sunt aliqua sunt. Lorem ut excepteur consectetur ipsum dolore enim sint labore sunt. Anim dolore consectetur mollit ex consectetur ex enim eiusmod.\r\n", + "address": "2 Bank Street", + "city": "Martinsville", + "state": "Florida", + "zip": 62669, + "country": "Saint Lucia", + "email": "jannadonovan@scentric.com", + "phone": "(953) 514-3535", + "color": "rgb(140,207,218)" + }, + { + "index": 126, + "name": "Winifred Patel", + "first": "Mckenzie", + "last": "Saunders", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/73.jpg", + "boolean": true, + "guid": "0232aa09-2751-4a44-938d-2450be7353c5", + "integer": 47, + "date": "Tue May 04 2010 11:32:34 GMT-0700 (PDT)", + "shortText": "cillum culpa aliqua", + "mediumText": "Et ex ea sunt velit. Veniam amet incididunt labore consectetur incididunt do. Laborum nulla laboris commodo officia commodo fugiat voluptate aliqua ullamco occaecat adipisicing.", + "longText": "Exercitation ut commodo velit culpa veniam reprehenderit magna do amet fugiat dolor. Velit ad esse incididunt cillum eu aliquip aute in velit. Voluptate nulla veniam incididunt adipisicing commodo est aliqua irure id commodo commodo. Qui incididunt culpa culpa laborum exercitation sint eu excepteur dolore occaecat labore aute proident. Eiusmod est occaecat quis duis aliqua. Ad sit incididunt nostrud dolore velit mollit pariatur nostrud.\r\nTempor irure magna ex tempor occaecat voluptate voluptate velit eiusmod laboris enim minim quis. Id voluptate ex adipisicing eiusmod ut labore dolore qui eiusmod laborum exercitation. Irure labore laboris elit ea. Incididunt dolore ex sit id laboris eu dolor anim ullamco dolore laboris laboris ipsum. Est nulla excepteur proident enim labore. Pariatur aliquip voluptate qui amet commodo officia non.\r\nProident et minim excepteur laborum elit do laboris ipsum dolore eu nulla nulla. Id ad aliqua pariatur aliquip magna ea adipisicing occaecat. Exercitation quis Lorem consectetur eiusmod. Aliquip veniam consequat nostrud et id consectetur id consectetur eu ipsum elit incididunt. Aliquip do nostrud occaecat esse consectetur est irure nulla magna.\r\nEiusmod deserunt velit ut commodo commodo ea Lorem nisi voluptate voluptate non consequat sint sunt. Eiusmod nisi nulla minim non nisi sint excepteur ex cupidatat ipsum ex labore. Adipisicing dolore ut tempor exercitation cupidatat.\r\n", + "address": "2 Keap Street", + "city": "Blue", + "state": "New Jersey", + "zip": 62739, + "country": "Equatorial Guinea", + "email": "mckenziesaunders@scentric.com", + "phone": "(997) 545-3802", + "color": "rgb(62,238,78)" + }, + { + "index": 127, + "name": "Connie Conner", + "first": "Tracy", + "last": "York", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vovkasolovev/73.jpg", + "boolean": true, + "guid": "8996bac9-5e0b-418e-a12c-710a15bdb763", + "integer": 8, + "date": "Thu Oct 05 2000 01:32:28 GMT-0700 (PDT)", + "shortText": "nostrud id eiusmod aliqua", + "mediumText": "Irure est aliquip magna excepteur velit cillum dolore eu veniam occaecat ex. Consequat proident nulla anim culpa ullamco sint.", + "longText": "Ipsum labore enim aliquip sit id qui elit ut ex laboris. Tempor ea consequat eiusmod ullamco pariatur sit esse elit in nisi aliquip non. Velit incididunt ea reprehenderit anim anim.\r\n", + "address": "3 Seton Place", + "city": "Cloverdale", + "state": "Wisconsin", + "zip": 87279, + "country": "Tanzania", + "email": "tracyyork@scentric.com", + "phone": "(880) 459-2370", + "color": "rgb(219,127,211)" + }, + { + "index": 128, + "name": "Ladonna Sheppard", + "first": "Jennie", + "last": "Glenn", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/urbanjahvier/73.jpg", + "boolean": false, + "guid": "5590b6a2-bb72-4d3e-8088-4af6a3a81dcb", + "integer": 4, + "date": "Mon Jun 04 1979 05:10:17 GMT-0700 (PDT)", + "shortText": "irure ea culpa", + "mediumText": "Est irure minim amet reprehenderit non minim et minim consequat cillum.", + "longText": "Minim laboris sint enim ea. Elit sunt esse pariatur officia voluptate deserunt cupidatat ex ad nisi dolor culpa duis. Velit nulla aute pariatur et voluptate cillum nostrud exercitation qui cillum elit occaecat. Laborum duis dolor cupidatat enim in elit occaecat quis non dolor culpa.\r\nIncididunt excepteur consequat consequat laborum. Cupidatat enim ad et qui pariatur proident ad voluptate minim quis dolore dolor veniam. Nisi sunt voluptate ut est aliqua. Irure Lorem ad non adipisicing aute quis officia dolore adipisicing quis ad minim.\r\n", + "address": "2 Bryant Street", + "city": "Harold", + "state": "Washington", + "zip": 92836, + "country": "Slovak Republic", + "email": "jennieglenn@scentric.com", + "phone": "(875) 496-3782", + "color": "rgb(60,201,252)" + }, + { + "index": 129, + "name": "Hancock Justice", + "first": "Jana", + "last": "Daugherty", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/betraydan/73.jpg", + "boolean": false, + "guid": "ac903149-dee1-4dbc-b0b4-01e15797af97", + "integer": 23, + "date": "Sun Dec 26 1976 01:33:58 GMT-0800 (PST)", + "shortText": "amet deserunt excepteur adipisicing", + "mediumText": "Mollit eu fugiat minim irure eu aliquip eiusmod do nisi elit minim anim commodo nisi. Tempor est exercitation consequat cillum nostrud consectetur ipsum qui. Proident voluptate fugiat labore minim nulla laborum sunt mollit dolore.", + "longText": "Commodo eiusmod nulla consequat Lorem ut ipsum esse cillum. Nostrud dolore proident proident ipsum sunt mollit esse amet. Et in adipisicing esse mollit consequat esse ipsum incididunt. Lorem est do id do qui non sit. Amet minim quis elit minim adipisicing et nisi nisi. Adipisicing aliqua voluptate amet velit amet excepteur id nulla excepteur laborum sit. Anim deserunt aute laboris duis deserunt aute quis veniam.\r\nAd elit fugiat id nisi nostrud esse aliquip. Ipsum esse labore laborum velit velit esse sit consequat non aliquip. Proident consequat est excepteur mollit.\r\nReprehenderit nulla sit adipisicing duis adipisicing qui amet incididunt non in. Est consectetur amet cillum minim enim commodo laborum ipsum occaecat voluptate ea excepteur. Duis mollit anim anim minim magna elit sunt.\r\nEx et quis excepteur deserunt ea occaecat in est cillum labore ad pariatur. Commodo ea anim ipsum qui laboris duis reprehenderit. Non commodo magna voluptate deserunt do. In officia excepteur exercitation qui. Cillum eu aute laboris culpa laborum eu eiusmod.\r\nLorem irure voluptate magna velit reprehenderit sint. Sint ea exercitation officia occaecat. Cillum veniam proident voluptate ullamco in nisi eu. Irure laboris voluptate veniam ea. Reprehenderit adipisicing incididunt enim aliquip ex. Dolore amet ullamco ullamco ad pariatur.\r\n", + "address": "3 Ocean Parkway", + "city": "Fairhaven", + "state": "Oregon", + "zip": 90433, + "country": "Iraq", + "email": "janadaugherty@scentric.com", + "phone": "(966) 582-2529", + "color": "rgb(210,84,143)" + }, + { + "index": 130, + "name": "Gilda Henry", + "first": "Graham", + "last": "Moore", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justme_timothyg/73.jpg", + "boolean": true, + "guid": "25728c02-6a0c-45e4-8ed5-f0b169379f13", + "integer": 39, + "date": "Thu Aug 02 2001 00:17:50 GMT-0700 (PDT)", + "shortText": "irure incididunt magna", + "mediumText": "Ea do ad culpa adipisicing culpa. Tempor ullamco laboris anim nisi exercitation ipsum deserunt voluptate incididunt sunt veniam.", + "longText": "Laborum ex ut culpa occaecat. Ex ad qui amet minim. Occaecat sunt labore id fugiat occaecat deserunt magna dolor proident. Proident eu qui ut incididunt id. Id reprehenderit labore dolore do exercitation. Commodo exercitation sint nulla ullamco. Occaecat mollit velit elit aliquip ad ex.\r\nIrure deserunt mollit deserunt id elit. Labore officia cillum consequat incididunt aliqua veniam fugiat mollit do proident irure exercitation. Exercitation duis irure sunt sit ad proident mollit elit dolore sunt. Ex est ut qui veniam ut laboris dolor deserunt ipsum Lorem ea exercitation eu. Quis labore nostrud sint proident occaecat enim quis dolor aliquip reprehenderit aute officia. Magna aute irure ullamco voluptate nisi ipsum labore.\r\nIrure sit aliquip quis eiusmod nisi occaecat amet cillum minim ex. Ipsum eiusmod ut nostrud eiusmod cillum est fugiat irure qui. Enim minim consequat ullamco minim. Cupidatat culpa mollit ut et.\r\n", + "address": "4 Stewart Street", + "city": "Rossmore", + "state": "Illinois", + "zip": 45849, + "country": "Congo", + "email": "grahammoore@scentric.com", + "phone": "(991) 514-3925", + "color": "rgb(199,144,145)" + }, + { + "index": 131, + "name": "Bates Clements", + "first": "Hatfield", + "last": "Hayden", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justinteractive/73.jpg", + "boolean": false, + "guid": "afe8d372-90a6-404f-85c7-16fd49fb9612", + "integer": 80, + "date": "Wed Feb 14 1990 23:57:58 GMT-0800 (PST)", + "shortText": "excepteur culpa voluptate consectetur", + "mediumText": "Aliqua sunt irure commodo veniam proident. Tempor qui tempor aliqua aute labore dolor consectetur magna duis proident eiusmod sit dolor officia. Eiusmod deserunt aliquip aute officia Lorem minim deserunt magna laboris ipsum et ad commodo esse.", + "longText": "Aute culpa mollit et nisi ut adipisicing et aliquip incididunt laboris dolor mollit. Deserunt elit in sit dolore ut enim eu. Lorem ut magna eu eiusmod commodo excepteur laborum mollit nostrud voluptate sit. Sunt deserunt occaecat sit ea nostrud excepteur commodo nulla qui dolor deserunt do laborum. Pariatur do qui culpa laborum velit cillum.\r\nLabore aute cillum consequat pariatur mollit eiusmod duis ex labore ut. Occaecat dolore irure excepteur mollit tempor tempor ut. Velit qui pariatur pariatur voluptate nostrud. Duis magna sint irure et labore ipsum deserunt non veniam.\r\nFugiat do sint ea ut aute consectetur tempor reprehenderit nulla nulla. Laborum cupidatat excepteur nulla dolor cupidatat duis laboris. Amet in ipsum proident deserunt consectetur in proident incididunt. Elit consectetur occaecat dolore duis aute pariatur.\r\n", + "address": "3 Bulwer Place", + "city": "Gilmore", + "state": "West Virginia", + "zip": 18380, + "country": "Cocos (Keeling Islands)", + "email": "hatfieldhayden@scentric.com", + "phone": "(907) 440-2113", + "color": "rgb(252,242,253)" + }, + { + "index": 132, + "name": "Bell Leonard", + "first": "Leticia", + "last": "Hickman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/psdesignuk/73.jpg", + "boolean": true, + "guid": "ed4df7d0-7592-4c76-b54b-edc925ddb79d", + "integer": 77, + "date": "Tue May 03 1983 09:44:10 GMT-0700 (PDT)", + "shortText": "enim consequat ad elit sit", + "mediumText": "Aute reprehenderit officia dolor sit ullamco consectetur nostrud. Sunt duis excepteur labore enim pariatur voluptate proident nulla dolore consequat ut. Commodo aliqua anim ut Lorem. Irure nostrud ad non eiusmod duis.", + "longText": "Reprehenderit esse laboris consequat aliqua nulla. Dolore do ipsum sunt incididunt. Incididunt ipsum labore eiusmod amet dolor minim sunt velit cupidatat. Sint laboris qui occaecat dolor duis ad mollit esse dolore minim. Et nostrud deserunt magna ad adipisicing nisi deserunt mollit tempor.\r\nDeserunt exercitation consequat labore veniam. Proident aliqua Lorem pariatur anim aliqua eu elit aliqua. Pariatur anim laboris reprehenderit eu nulla consequat eu tempor sint exercitation eiusmod sint excepteur voluptate. Sunt cillum ex ex occaecat aliquip ut labore voluptate cupidatat velit incididunt consectetur reprehenderit sunt.\r\nProident ex sunt eu velit magna quis quis ea nulla. Reprehenderit id eu ullamco deserunt aliqua pariatur do nisi eu anim. Enim exercitation aute culpa aute excepteur pariatur veniam. Esse labore labore anim cupidatat exercitation aliqua Lorem consequat fugiat tempor magna. Mollit ipsum irure proident adipisicing nisi eu mollit culpa aliquip id esse occaecat. Commodo amet esse nisi velit ipsum amet id cupidatat veniam. Id veniam fugiat anim fugiat nisi non in do labore esse labore est exercitation amet.\r\n", + "address": "4 Baughman Place", + "city": "Hessville", + "state": "Mississippi", + "zip": 48135, + "country": "Saint Kitts and Nevis", + "email": "leticiahickman@scentric.com", + "phone": "(986) 415-3367", + "color": "rgb(161,161,217)" + }, + { + "index": 133, + "name": "Logan Wyatt", + "first": "Bray", + "last": "Mathews", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teclaro/73.jpg", + "boolean": false, + "guid": "50c374de-c1b2-4bef-8dc9-9b47e6caf127", + "integer": 3, + "date": "Thu Jan 23 2014 19:45:54 GMT-0800 (PST)", + "shortText": "aliquip cupidatat sint ut", + "mediumText": "Esse elit anim consectetur reprehenderit ad excepteur eiusmod aute. Veniam in ullamco reprehenderit commodo consectetur tempor quis. Nisi enim tempor tempor est est amet esse mollit mollit sint officia et amet duis. Sint sit in sit et enim et eu aliquip nostrud proident.", + "longText": "Amet aliqua eiusmod enim occaecat tempor do adipisicing labore mollit culpa adipisicing dolor nisi id. Elit consequat mollit commodo minim labore excepteur nisi est consectetur. Ad ut laborum enim fugiat cillum eu labore.\r\nReprehenderit pariatur aliqua anim aliquip. Aliqua tempor labore Lorem nulla ut velit aliquip ea amet labore qui exercitation incididunt. Velit pariatur eu sunt mollit velit deserunt mollit ad veniam aute. Cupidatat laboris qui proident eu mollit do qui. Lorem id aliqua occaecat irure proident. Commodo dolor commodo laborum excepteur nisi consequat esse culpa aute laboris do in.\r\nLaborum ex excepteur incididunt sint ipsum. Aliquip cillum nulla sit labore Lorem ut do mollit Lorem. Reprehenderit commodo dolore sint mollit. Laboris et culpa sunt ut ipsum deserunt eiusmod exercitation dolore. Do Lorem deserunt voluptate reprehenderit ex deserunt labore nulla excepteur qui nisi voluptate. Amet ipsum excepteur amet qui nostrud adipisicing elit fugiat veniam nostrud deserunt id sunt laborum. Incididunt eu dolore dolore qui quis qui pariatur pariatur ad nostrud.\r\n", + "address": "2 Cherry Street", + "city": "Kieler", + "state": "Rhode Island", + "zip": 44229, + "country": "Spain", + "email": "braymathews@scentric.com", + "phone": "(945) 538-3851", + "color": "rgb(223,145,248)" + }, + { + "index": 134, + "name": "Elva Beard", + "first": "Riley", + "last": "Wallace", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eyronn/73.jpg", + "boolean": true, + "guid": "7c00ca0a-94ea-41ec-babd-533d61c3c1db", + "integer": 26, + "date": "Tue Sep 20 2005 17:05:43 GMT-0700 (PDT)", + "shortText": "incididunt", + "mediumText": "Tempor reprehenderit ullamco labore irure velit Lorem nulla excepteur sunt nostrud ea exercitation. Exercitation nisi reprehenderit consequat enim voluptate est aute qui dolor aliqua amet quis cupidatat. Elit non aliquip esse in officia enim tempor pariatur aliquip est. Reprehenderit ipsum ea voluptate commodo qui deserunt. Cupidatat nostrud magna eu nisi mollit voluptate sint qui.", + "longText": "Reprehenderit mollit eu est adipisicing amet quis id ipsum est nisi occaecat. Veniam aute aute adipisicing aliquip et ea dolor commodo cillum esse Lorem. Dolore cillum cillum ex consectetur nostrud velit elit voluptate adipisicing deserunt dolore consectetur. Amet proident aliquip enim pariatur occaecat in aliquip deserunt in occaecat qui mollit eu. Deserunt laboris dolor quis do.\r\nVelit ea voluptate culpa veniam mollit excepteur culpa laboris. Dolor est qui sint irure cillum proident labore nulla adipisicing cillum. Incididunt aliquip dolor est consectetur nulla ad aliqua esse sit elit. Eiusmod et fugiat dolore aliquip excepteur ullamco sunt sit enim do fugiat in excepteur cupidatat. Lorem nostrud irure velit quis consectetur.\r\nNulla amet do excepteur in esse reprehenderit nulla aliqua reprehenderit ipsum dolore Lorem sunt. Quis aliqua ex esse voluptate aliquip do incididunt proident exercitation commodo. Commodo enim mollit dolor laboris dolore ex fugiat sit commodo Lorem. Lorem sint mollit reprehenderit ipsum elit qui exercitation incididunt. Non excepteur non duis nulla sunt dolor in qui proident. Proident pariatur adipisicing eu sunt laboris voluptate cillum ut adipisicing. Labore ut esse consectetur in consequat velit cupidatat esse nisi.\r\nVelit Lorem ad sunt labore irure enim ut aliqua officia velit dolor. Sint tempor sunt et amet nostrud. Sint laboris eiusmod elit excepteur.\r\n", + "address": "4 Herkimer Court", + "city": "Jacumba", + "state": "Georgia", + "zip": 87900, + "country": "Guinea-Bissau", + "email": "rileywallace@scentric.com", + "phone": "(908) 527-2510", + "color": "rgb(150,183,57)" + }, + { + "index": 135, + "name": "Jeanne Walker", + "first": "Noemi", + "last": "Castaneda", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gulian/73.jpg", + "boolean": false, + "guid": "954a476d-62d8-4190-94a1-ba084f44049d", + "integer": 52, + "date": "Thu Jul 28 1977 23:23:02 GMT-0700 (PDT)", + "shortText": "duis", + "mediumText": "Aliqua nostrud excepteur est veniam cillum et aute ut. Sint ex nostrud incididunt deserunt duis. Velit laborum occaecat mollit culpa aliquip nisi aliquip ad. Laboris eu adipisicing nostrud aliquip elit consectetur ea nulla quis minim non proident laboris. Laboris exercitation laboris ut exercitation deserunt quis irure irure officia sunt sit cillum ad.", + "longText": "Ipsum occaecat veniam cupidatat enim tempor irure ea reprehenderit esse commodo non. Aliquip est sit ipsum ipsum officia aliquip mollit quis sint adipisicing nisi sint tempor esse. Occaecat fugiat minim tempor excepteur ut minim dolor non voluptate.\r\nAdipisicing sunt excepteur amet aliquip duis anim excepteur ipsum nostrud occaecat non aliquip nulla Lorem. Labore ut sint mollit anim aliquip elit. Incididunt excepteur et deserunt anim laborum voluptate quis nulla ut. Aliqua qui culpa et culpa magna consequat irure culpa Lorem veniam. Qui sit qui labore cillum sunt elit consectetur officia qui Lorem sint elit dolor veniam. Ex labore ullamco quis ut elit Lorem in excepteur officia dolore tempor aute irure. Sunt ut eu deserunt aliquip aliqua sint elit elit.\r\nDolore ex cupidatat cupidatat elit adipisicing exercitation mollit eu officia et ullamco incididunt dolor. Qui incididunt voluptate aliquip fugiat proident ea. Officia minim laboris tempor est aliqua ipsum velit aliqua et culpa voluptate quis. Sint amet commodo dolor ad excepteur veniam cillum amet ut officia commodo velit.\r\nIpsum exercitation laboris occaecat duis non nisi cupidatat ad incididunt voluptate et. Duis ea enim nostrud non reprehenderit laborum culpa sint. Ullamco dolor non in excepteur culpa amet. Consectetur occaecat eiusmod tempor ad tempor veniam dolore aliqua ad id. Exercitation in amet fugiat ea mollit ut in officia velit dolore nostrud est amet anim. Eu do dolore eu ut adipisicing qui aute aute occaecat labore esse.\r\nDo quis laborum minim aliqua non dolor cupidatat labore velit dolor eiusmod. Minim labore sint ipsum duis nisi. Nostrud duis deserunt consectetur magna laborum mollit ea laboris. Consectetur exercitation dolor eu exercitation reprehenderit non ipsum.\r\n", + "address": "4 Montague Street", + "city": "Why", + "state": "New Mexico", + "zip": 97706, + "country": "Cameroon", + "email": "noemicastaneda@scentric.com", + "phone": "(867) 475-2648", + "color": "rgb(130,190,155)" + }, + { + "index": 136, + "name": "Jasmine Talley", + "first": "Debra", + "last": "Dunn", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/drebbits/73.jpg", + "boolean": false, + "guid": "d0121c9c-7074-450a-9234-7d97fd437785", + "integer": 91, + "date": "Mon Feb 01 1988 23:12:40 GMT-0800 (PST)", + "shortText": "non", + "mediumText": "Veniam in voluptate laboris exercitation labore velit enim occaecat eiusmod officia cupidatat ex non mollit. Irure occaecat adipisicing dolore labore officia aliquip in. Elit et consequat adipisicing aliquip irure qui sunt amet Lorem eiusmod fugiat tempor sint fugiat. Consectetur esse eu pariatur et cupidatat sint. Nulla enim Lorem exercitation eu id cillum sint qui est deserunt culpa.", + "longText": "Eiusmod aliquip pariatur minim commodo qui labore aliquip sint non officia consequat. Aliquip culpa anim amet id labore nulla enim cupidatat consectetur eiusmod. Dolor nulla pariatur sunt pariatur est labore excepteur velit dolore nisi.\r\nQuis amet fugiat occaecat anim. Elit aliqua non veniam commodo. Lorem enim ut laboris dolore ad esse est culpa aute aliqua aliqua. Elit deserunt ea cillum ad. Laboris ipsum cupidatat laborum veniam officia quis aute sit pariatur commodo reprehenderit in velit.\r\nEnim aliqua culpa do voluptate et deserunt velit est. Nisi elit voluptate ipsum officia mollit nulla anim labore magna laboris dolor proident. Ea excepteur laborum aute excepteur officia qui proident. Nisi ad ipsum et cupidatat sint cupidatat veniam eiusmod eu id eiusmod pariatur cupidatat. Mollit eiusmod culpa labore reprehenderit minim dolore et veniam non labore tempor sunt Lorem ex. Laborum officia Lorem duis enim magna exercitation ullamco elit ut veniam reprehenderit magna quis adipisicing. Dolor est amet commodo nulla deserunt Lorem reprehenderit consectetur.\r\n", + "address": "2 Woodpoint Road", + "city": "Shaft", + "state": "Arizona", + "zip": 57801, + "country": "Niger", + "email": "debradunn@scentric.com", + "phone": "(815) 574-3583", + "color": "rgb(79,212,186)" + }, + { + "index": 137, + "name": "Marquez Stark", + "first": "Gallegos", + "last": "Harris", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alexhaniotis/73.jpg", + "boolean": true, + "guid": "2dc3bab6-4120-4941-8c99-3f350a894c8f", + "integer": 76, + "date": "Tue Jul 05 2005 22:08:38 GMT-0700 (PDT)", + "shortText": "id officia", + "mediumText": "Mollit dolor quis quis velit elit id ex esse sit cillum sit aliquip.", + "longText": "Est laboris reprehenderit nisi duis eu qui elit ipsum excepteur cillum officia. Qui dolor eiusmod nulla elit enim pariatur tempor. Sunt aliquip voluptate mollit magna nisi eu sit do adipisicing laboris. Officia fugiat id quis eu consequat nulla anim irure quis exercitation adipisicing deserunt elit.\r\nAnim minim nostrud reprehenderit aute labore irure voluptate. Laborum incididunt ipsum culpa nulla qui esse mollit veniam. Dolor commodo ad aliqua aliquip ea consequat occaecat culpa veniam consequat. Incididunt reprehenderit enim veniam deserunt laboris cillum sint occaecat labore eiusmod ullamco veniam. Dolor culpa culpa laboris id cillum. Exercitation qui id laboris minim fugiat ea do aute duis. Do velit laborum adipisicing ad amet consequat laboris Lorem pariatur.\r\nConsequat dolor amet cillum minim exercitation sit in velit fugiat id anim. Fugiat tempor laborum nostrud ea eiusmod esse laborum. Labore aliquip ullamco ipsum aliqua consectetur ipsum ad. Et voluptate incididunt id cillum labore fugiat aliquip veniam sunt sunt nisi adipisicing. Cillum nisi qui reprehenderit qui nostrud sunt.\r\n", + "address": "2 Franklin Street", + "city": "Orovada", + "state": "Texas", + "zip": 68862, + "country": "Malta", + "email": "gallegosharris@scentric.com", + "phone": "(994) 597-2534", + "color": "rgb(67,106,191)" + }, + { + "index": 138, + "name": "James Gregory", + "first": "Davis", + "last": "Burton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/twahlin/73.jpg", + "boolean": false, + "guid": "7ff8b299-328d-46dc-ab4f-b59c0d6e3ad8", + "integer": 32, + "date": "Sat Jan 08 1994 09:01:56 GMT-0800 (PST)", + "shortText": "tempor", + "mediumText": "Id nisi nulla non culpa laborum dolor adipisicing aute in. Cillum consectetur sit occaecat officia. Nulla Lorem aliqua nulla velit nisi dolore magna sint in sint incididunt sunt sit nostrud. Pariatur sunt labore Lorem est nulla minim culpa velit tempor elit ipsum in eiusmod. Ad fugiat anim incididunt sint consectetur.", + "longText": "Esse reprehenderit laborum commodo aute nostrud incididunt. Voluptate do consectetur excepteur minim laboris ea et ut cupidatat. Magna qui aute sint minim do nostrud laborum magna labore. Lorem sunt veniam ullamco cupidatat.\r\nEt ullamco aute ex cupidatat cillum laboris aliqua laborum irure. Laboris ex laboris dolore non Lorem. Reprehenderit excepteur occaecat laborum laboris voluptate exercitation eu est consectetur tempor est nisi. Cillum fugiat do deserunt non dolor eiusmod Lorem dolore voluptate. Nisi minim enim Lorem minim quis exercitation reprehenderit eu nulla qui aute.\r\nIrure anim eiusmod id adipisicing aliqua. Nulla minim laboris nulla esse do elit aliqua eiusmod aute cillum elit. Ex consequat laboris aliquip dolor dolore pariatur consequat ut reprehenderit.\r\nFugiat minim eiusmod tempor commodo amet deserunt consectetur elit aliquip ex labore laborum veniam eu. Cillum aliquip aliquip non culpa eiusmod elit non dolore. Eiusmod ullamco cillum dolor ea voluptate et adipisicing ut enim. Sunt duis ea fugiat aute qui reprehenderit ut. Ullamco minim cillum aliqua nulla amet excepteur reprehenderit ut reprehenderit. Duis eu aliqua ad dolore consectetur labore quis occaecat cillum qui sint commodo deserunt est. Duis sunt deserunt enim duis est anim commodo elit id ad magna occaecat in.\r\n", + "address": "4 Macdougal Street", + "city": "Limestone", + "state": "District Of Columbia", + "zip": 74514, + "country": "Antigua and Barbuda", + "email": "davisburton@scentric.com", + "phone": "(916) 551-3269", + "color": "rgb(215,141,197)" + }, + { + "index": 139, + "name": "Thomas Lowery", + "first": "Hutchinson", + "last": "Weeks", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ntfblog/73.jpg", + "boolean": false, + "guid": "6ae3a7b3-9d8c-46bc-9d8c-af55345a1168", + "integer": 68, + "date": "Sat May 27 1978 05:40:06 GMT-0700 (PDT)", + "shortText": "irure sit", + "mediumText": "Officia proident tempor do et aliquip in cupidatat labore anim esse.", + "longText": "Labore elit laboris dolor fugiat ut sit minim aliquip adipisicing culpa nostrud. Id do adipisicing nisi adipisicing proident. Cupidatat tempor aliquip anim consequat fugiat eiusmod laborum adipisicing. Et sunt velit magna cupidatat commodo et consequat. Exercitation voluptate ex aliquip laboris. Aliqua qui voluptate anim deserunt reprehenderit.\r\nPariatur dolore pariatur laborum excepteur duis. Dolore consequat veniam fugiat sint cillum quis sit deserunt laborum eiusmod culpa id. Eiusmod incididunt magna cupidatat irure. Ex eu ad non non non consectetur sit non cillum sit anim cupidatat. Ea minim ut exercitation sint ullamco culpa cupidatat ipsum eu sit.\r\nEnim aliquip officia occaecat esse exercitation nulla esse. Commodo magna et sint sint consequat velit excepteur occaecat ex ea tempor proident. Officia laboris proident commodo eu laboris consectetur sunt pariatur aliqua pariatur. Fugiat reprehenderit reprehenderit cillum exercitation consequat duis ullamco in quis exercitation est est excepteur.\r\nEsse duis in elit cupidatat non cillum non aute sunt nulla mollit ipsum enim. Sit deserunt do nostrud quis dolor qui aliqua qui exercitation ex minim velit esse. Aliqua irure do ex eiusmod cupidatat non veniam est exercitation. Ea culpa eu Lorem id aute dolore.\r\n", + "address": "4 Hazel Court", + "city": "Lafferty", + "state": "Virgin Islands", + "zip": 50828, + "country": "Kazakhstan", + "email": "hutchinsonweeks@scentric.com", + "phone": "(930) 418-3265", + "color": "rgb(120,254,136)" + }, + { + "index": 140, + "name": "Adkins Hanson", + "first": "Gibson", + "last": "Chaney", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/commoncentssss/73.jpg", + "boolean": false, + "guid": "9f6901ec-fedc-4d3c-963a-46d2245a15d6", + "integer": 63, + "date": "Thu Dec 30 1971 20:07:08 GMT-0800 (PST)", + "shortText": "elit tempor labore labore", + "mediumText": "Esse duis dolore officia voluptate velit culpa incididunt reprehenderit nisi. Eiusmod dolor ut non ea ut consequat dolor veniam aliqua ut cupidatat pariatur sunt.", + "longText": "Culpa tempor sint ullamco minim aute ad. Mollit laboris minim amet incididunt proident proident magna elit qui fugiat non velit irure. Nostrud incididunt non sunt ex veniam minim proident exercitation aliqua veniam laboris dolor est.\r\nPariatur aute adipisicing tempor occaecat. Laborum sit quis irure commodo sit. Incididunt do enim sit ad. Voluptate dolore fugiat ipsum id. Lorem Lorem laborum excepteur nostrud ut.\r\nCulpa tempor velit esse commodo eiusmod excepteur in aliqua. Quis culpa Lorem non et sunt elit. Incididunt ullamco ipsum duis laboris minim do mollit quis non minim laboris adipisicing sit Lorem. Culpa consectetur Lorem aute amet culpa deserunt fugiat. Deserunt amet officia cupidatat ea cupidatat nisi enim cupidatat reprehenderit dolore et reprehenderit nulla cupidatat. Velit ipsum ea ad exercitation eu sunt nisi nostrud ullamco nisi commodo aliqua.\r\nAdipisicing aute reprehenderit in enim do ipsum pariatur et cupidatat deserunt consectetur mollit sunt laboris. Exercitation voluptate dolor quis quis commodo. Laboris sunt consectetur veniam id fugiat magna ipsum ad cillum officia in sunt. Sunt ut magna culpa ad proident id sit in. Sint laborum commodo culpa deserunt et aliquip dolor laborum. Laboris adipisicing exercitation aliqua qui labore irure Lorem culpa aute minim Lorem aliquip. Sint nostrud et ut irure nisi non.\r\n", + "address": "4 Croton Loop", + "city": "Cresaptown", + "state": "Puerto Rico", + "zip": 63679, + "country": "Bahrain", + "email": "gibsonchaney@scentric.com", + "phone": "(973) 550-3569", + "color": "rgb(147,126,185)" + }, + { + "index": 141, + "name": "Catalina Rojas", + "first": "Angie", + "last": "Mcknight", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anissa_anwar/73.jpg", + "boolean": true, + "guid": "2a7b1f3c-602a-4977-b1d0-b2e1f3101dbd", + "integer": 61, + "date": "Sun Jan 31 1982 15:49:23 GMT-0800 (PST)", + "shortText": "in adipisicing reprehenderit cillum officia", + "mediumText": "Commodo voluptate est elit aliquip irure qui. Ullamco labore et non irure. Ea sunt excepteur ea in. Consequat deserunt sint id et aliquip officia et nisi esse amet reprehenderit quis. Ut enim quis et culpa.", + "longText": "Labore ullamco ea ipsum aute veniam adipisicing irure culpa adipisicing mollit. Qui aute velit labore veniam enim exercitation reprehenderit tempor nisi ullamco cillum tempor ea fugiat. Nulla incididunt dolore exercitation irure ut. Fugiat dolor duis ad deserunt in proident. Est elit nisi magna do culpa aliquip proident elit cupidatat. Adipisicing fugiat commodo ullamco eiusmod mollit veniam. Nisi cupidatat ullamco cillum velit qui Lorem sint ad non esse eu.\r\n", + "address": "4 Thomas Street", + "city": "Marenisco", + "state": "Maryland", + "zip": 83481, + "country": "India", + "email": "angiemcknight@scentric.com", + "phone": "(852) 571-3576", + "color": "rgb(180,187,55)" + }, + { + "index": 142, + "name": "Waller Rios", + "first": "Sherri", + "last": "Jones", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/btrig/73.jpg", + "boolean": true, + "guid": "33336c68-2dc7-4da4-83df-770c5d0ac6a1", + "integer": 23, + "date": "Thu Aug 06 2009 20:38:56 GMT-0700 (PDT)", + "shortText": "cillum ullamco deserunt", + "mediumText": "In voluptate sit consequat ex eu consectetur labore et qui in. Nostrud do enim ut non dolore cupidatat duis sint. Est laboris aute veniam mollit ea dolore occaecat pariatur. Fugiat adipisicing amet cupidatat cillum sit reprehenderit velit cillum ex anim velit tempor. Ullamco do aliquip est Lorem duis nulla ipsum.", + "longText": "Enim aliqua ut eu excepteur cupidatat nostrud dolore. Anim in ut est laboris. Id sunt ex labore commodo pariatur laborum sint labore fugiat nostrud.\r\nVelit commodo voluptate irure eu officia aute veniam et quis laboris. Nisi excepteur excepteur deserunt dolor. Sunt ex enim do eiusmod aliqua consequat aute cupidatat incididunt sint eiusmod ex ea Lorem. Fugiat nisi adipisicing ullamco anim enim quis eu fugiat.\r\nTempor aliqua consequat nisi deserunt cillum. Nulla eu fugiat nostrud aliquip ut consequat consectetur dolor labore duis ut deserunt eu. Mollit ut irure irure dolore ad occaecat cillum. Consectetur Lorem nostrud veniam fugiat. Qui mollit pariatur tempor consequat. Ut consequat veniam consequat exercitation non cillum ullamco sit velit Lorem qui aliqua anim.\r\nIrure ad minim consectetur mollit consectetur. Ex est laborum fugiat non. Aute consequat aliquip qui ex proident. Ad occaecat deserunt aliqua non sint consectetur voluptate in enim quis do mollit velit. Reprehenderit quis dolor laborum dolor mollit.\r\nIrure Lorem aliquip elit id minim sit. Exercitation laborum deserunt irure incididunt deserunt veniam ullamco dolor. Aliqua excepteur quis culpa labore in elit reprehenderit voluptate duis consectetur. Irure occaecat consequat commodo enim ex enim deserunt.\r\n", + "address": "2 Etna Street", + "city": "Gorham", + "state": "Massachusetts", + "zip": 76332, + "country": "Qatar", + "email": "sherrijones@scentric.com", + "phone": "(905) 514-2725", + "color": "rgb(167,172,139)" + }, + { + "index": 143, + "name": "Fulton Richmond", + "first": "Nannie", + "last": "Preston", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ug_rick/73.jpg", + "boolean": false, + "guid": "d342e219-1ba1-46ae-aaea-371e1c50562a", + "integer": 14, + "date": "Thu Aug 06 1987 21:37:44 GMT-0700 (PDT)", + "shortText": "proident sunt tempor", + "mediumText": "Fugiat aliquip nisi eiusmod et. Adipisicing eiusmod quis magna aliquip ut ullamco nulla veniam dolor irure exercitation dolore. Lorem nostrud do non do cupidatat eiusmod ea ipsum aliqua pariatur aute Lorem voluptate.", + "longText": "Commodo adipisicing est ea do nostrud Lorem in adipisicing magna dolor pariatur consectetur. Esse adipisicing Lorem qui nostrud occaecat ipsum aute deserunt esse minim elit amet. Ad sint dolore minim consectetur enim. Cupidatat culpa amet mollit ut dolore aliqua laborum nulla voluptate voluptate eu sint voluptate Lorem. Irure et laboris tempor aute qui veniam id nulla sint nostrud eu officia ea commodo.\r\nAliquip et magna exercitation velit quis incididunt velit. Nostrud fugiat in nulla Lorem qui tempor nulla adipisicing anim eiusmod duis sunt ad ex. Nulla Lorem aliqua do esse commodo. Ea ullamco anim non magna reprehenderit id ad ut aliquip magna velit tempor est. Consequat laboris tempor cupidatat velit nulla ea reprehenderit aute excepteur commodo eu qui nisi amet. Commodo excepteur enim sint dolor tempor eu nulla elit non dolor.\r\nDo id incididunt aute consequat cillum. Voluptate sunt in ut id enim fugiat occaecat. Consectetur cillum sint tempor commodo duis veniam ad anim laboris deserunt consequat. Nisi duis aliqua consectetur ullamco nisi culpa ea aliqua.\r\n", + "address": "2 Lott Street", + "city": "Lydia", + "state": "Oklahoma", + "zip": 37848, + "country": "Vatican City State (Holy See)", + "email": "nanniepreston@scentric.com", + "phone": "(801) 531-2586", + "color": "rgb(58,230,86)" + }, + { + "index": 144, + "name": "Juanita Mcfadden", + "first": "Preston", + "last": "Koch", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/blakestevenson/73.jpg", + "boolean": false, + "guid": "d10bde3c-7451-4455-bcab-d6a9467128b3", + "integer": 35, + "date": "Sat Dec 29 2007 19:47:26 GMT-0800 (PST)", + "shortText": "fugiat", + "mediumText": "Deserunt mollit proident mollit pariatur aliquip amet sit sunt ea aliquip non ad irure voluptate. Mollit eu veniam do veniam esse laboris velit dolor velit aliqua Lorem sint dolore cupidatat. Ea est irure incididunt deserunt officia Lorem culpa proident non do cillum.", + "longText": "Reprehenderit sint est consequat do. Qui irure ad voluptate proident nulla nulla quis nisi minim quis ullamco eiusmod sint. Nulla exercitation tempor incididunt qui. Adipisicing velit sit ad exercitation cillum esse exercitation sit laboris. Nostrud commodo aliquip esse quis in irure exercitation.\r\nEnim nisi in dolor cillum nulla ipsum. Qui velit cupidatat esse sit quis ullamco consequat deserunt irure exercitation. Culpa tempor ut ex id id aliqua ipsum cillum est proident ullamco nulla reprehenderit. Amet proident duis sunt proident consectetur non pariatur officia in. Voluptate enim anim eiusmod fugiat occaecat ut sunt sit nulla proident. Elit dolore consectetur velit occaecat.\r\n", + "address": "4 Jewel Street", + "city": "Washington", + "state": "Ohio", + "zip": 55293, + "country": "Malaysia", + "email": "prestonkoch@scentric.com", + "phone": "(824) 598-3313", + "color": "rgb(188,204,126)" + }, + { + "index": 145, + "name": "Hunter Morin", + "first": "Aguilar", + "last": "Willis", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karalek/73.jpg", + "boolean": false, + "guid": "b6d849a7-e16f-4caf-8ddf-0232c5ccb47c", + "integer": 14, + "date": "Fri Oct 11 2013 10:09:38 GMT-0700 (PDT)", + "shortText": "mollit elit incididunt exercitation esse", + "mediumText": "Nisi tempor cupidatat do sint in nostrud nulla magna labore tempor amet. Qui ut anim adipisicing veniam veniam voluptate cupidatat culpa duis minim adipisicing veniam excepteur proident. Tempor eiusmod sint et nulla voluptate irure et quis sunt. Sit exercitation ex adipisicing consectetur sit veniam velit et laboris minim Lorem excepteur in.", + "longText": "Elit dolore dolore mollit deserunt fugiat Lorem ad nostrud occaecat magna. Sint deserunt sunt incididunt ad qui. Cupidatat nostrud ea sunt officia non sunt ea aliqua ipsum cillum adipisicing. Esse eiusmod minim magna culpa culpa.\r\n", + "address": "2 Cox Place", + "city": "Escondida", + "state": "Nevada", + "zip": 76788, + "country": "Belize", + "email": "aguilarwillis@scentric.com", + "phone": "(878) 446-2425", + "color": "rgb(137,240,219)" + }, + { + "index": 146, + "name": "Kathy Sutton", + "first": "Kendra", + "last": "Blevins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elusiveanmol/73.jpg", + "boolean": false, + "guid": "4ad8c3c8-a316-4762-a596-e9477c0fa2cd", + "integer": 31, + "date": "Thu Dec 09 2004 16:04:29 GMT-0800 (PST)", + "shortText": "nisi", + "mediumText": "Minim incididunt amet sint velit officia eiusmod cillum velit duis adipisicing magna laborum deserunt eiusmod.", + "longText": "Sunt culpa tempor deserunt ea ea labore. Occaecat consectetur anim anim ipsum dolor. Consectetur nulla commodo non velit reprehenderit cillum tempor aliquip aliqua consequat dolore.\r\nAnim minim ipsum velit consectetur sit incididunt magna cillum. Commodo deserunt consectetur esse aliqua ullamco dolor pariatur. Mollit sint voluptate aute dolor fugiat minim veniam anim ad aute. In aliquip anim ullamco dolore proident proident ipsum sunt sunt. Sint dolor pariatur aute excepteur sunt laborum magna qui.\r\nIn eu excepteur commodo eiusmod aliqua ad amet. Fugiat eu adipisicing et eu commodo nostrud elit consectetur incididunt deserunt. Non velit qui do pariatur. Lorem pariatur ullamco voluptate cillum do duis.\r\nEnim ut velit tempor nulla nostrud duis non ex amet. Fugiat cillum cillum dolore aliquip aliqua duis proident sit eu deserunt culpa esse ad. Laboris dolore nulla in ullamco ullamco ut ad. Veniam amet ea Lorem consequat officia ut consectetur ea Lorem duis cupidatat id. Irure non cupidatat ipsum do incididunt duis minim elit dolor deserunt velit. Deserunt laboris fugiat ea incididunt qui excepteur ad non irure incididunt aliquip fugiat occaecat non.\r\nElit proident exercitation quis in labore et sint ea cillum ex occaecat deserunt. Ex laboris fugiat non et excepteur. Labore non nisi exercitation do minim incididunt commodo culpa est dolor. Mollit minim proident ea id. Aliquip est nulla aliquip sint culpa eu amet magna exercitation reprehenderit culpa. Ex commodo aliqua mollit veniam fugiat officia sint duis ad sit.\r\n", + "address": "3 Prince Street", + "city": "Urbana", + "state": "Montana", + "zip": 58650, + "country": "Singapore", + "email": "kendrablevins@scentric.com", + "phone": "(956) 553-2050", + "color": "rgb(224,79,174)" + }, + { + "index": 147, + "name": "Noel Morrison", + "first": "Puckett", + "last": "Shannon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/shoo7830/73.jpg", + "boolean": false, + "guid": "3257d65a-9945-47b8-8159-7e2304b15eef", + "integer": 32, + "date": "Wed Oct 31 1973 14:26:42 GMT-0800 (PST)", + "shortText": "sit enim nisi dolor occaecat", + "mediumText": "Deserunt deserunt excepteur aliquip proident aliquip sunt voluptate qui. Incididunt Lorem laboris dolore cillum incididunt. Qui magna excepteur ad id fugiat nostrud ea sunt mollit.", + "longText": "Eiusmod irure est incididunt cillum id sit enim quis. Eiusmod consequat deserunt proident fugiat velit ut pariatur mollit eiusmod tempor reprehenderit nisi. Nulla id ea occaecat culpa sit aute pariatur sit ullamco sint. Reprehenderit minim irure ut laborum irure nisi consectetur. Velit laborum aliquip eu ea quis veniam dolore nulla in mollit labore. Dolor velit est eiusmod est ullamco magna excepteur culpa deserunt aliqua culpa Lorem ea.\r\nTempor adipisicing sit elit ea commodo dolore dolore incididunt anim cillum nulla. In exercitation excepteur cupidatat nisi do. Id et aliqua incididunt officia pariatur dolor officia in eu ea. Eiusmod duis sint Lorem in officia velit sit qui labore aliqua fugiat quis magna ea. Laborum reprehenderit exercitation reprehenderit veniam anim nisi qui est. Ad velit incididunt ut labore consequat culpa nisi do voluptate aliquip.\r\nDo dolore occaecat amet aliquip excepteur aute nisi non. Cillum incididunt nostrud excepteur eiusmod consequat mollit voluptate dolor aliquip non. Veniam pariatur ad dolor commodo velit. Sunt dolore sunt dolore adipisicing pariatur sit nulla magna exercitation dolor proident amet dolore. Lorem adipisicing cillum laboris anim ex pariatur minim proident cillum deserunt incididunt est nostrud.\r\nEiusmod dolore eiusmod ad irure. Id nulla voluptate ad cillum duis aute veniam est mollit do. Dolore adipisicing cupidatat officia magna mollit incididunt ea. Ipsum commodo aute eu consequat ea sit. Pariatur cupidatat veniam voluptate est ex. Officia sint laboris voluptate anim laborum occaecat in ad. Consequat amet occaecat commodo deserunt duis.\r\nEnim minim dolor in anim enim. Sint ad adipisicing ullamco dolor cillum aute proident ea sint quis laboris sit. Dolor voluptate qui duis do ut labore magna incididunt occaecat tempor esse reprehenderit. Proident fugiat nulla tempor magna sit ut aliquip proident voluptate esse.\r\n", + "address": "2 Vanderbilt Avenue", + "city": "Nanafalia", + "state": "California", + "zip": 57562, + "country": "Trinidad and Tobago", + "email": "puckettshannon@scentric.com", + "phone": "(963) 414-2787", + "color": "rgb(74,128,154)" + }, + { + "index": 148, + "name": "Reeves Combs", + "first": "Trudy", + "last": "Newton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/oanacr/73.jpg", + "boolean": false, + "guid": "53ffc997-22cc-4acc-94b5-13907ae8737f", + "integer": 12, + "date": "Sun Feb 19 1984 10:56:10 GMT-0800 (PST)", + "shortText": "consequat quis ea laboris", + "mediumText": "Commodo minim culpa cillum proident dolor occaecat mollit.", + "longText": "Proident consectetur officia consectetur laborum eiusmod sunt. Et magna labore nostrud culpa ullamco cillum duis pariatur laboris irure. Anim laborum enim laboris velit pariatur cupidatat. Aliqua minim eu labore est ex excepteur ullamco laboris deserunt ex id tempor. Laboris dolor elit officia anim incididunt nostrud incididunt nostrud officia voluptate. Voluptate nostrud fugiat consectetur cillum adipisicing elit sint sit duis. Dolor labore do pariatur do officia ullamco.\r\nQui nulla occaecat dolore ad labore excepteur reprehenderit magna sint irure culpa est. In mollit cupidatat laborum duis ipsum mollit. Eiusmod excepteur aliquip do anim occaecat quis mollit id laborum Lorem consectetur commodo. Officia nisi Lorem veniam officia consectetur proident duis anim ullamco sunt enim nostrud. Laboris ad eu et esse sit nisi.\r\nNulla proident eu duis sunt nostrud minim laboris fugiat nisi pariatur occaecat. Et cupidatat mollit laborum ipsum sint ea amet enim aliqua. Exercitation eiusmod eu labore tempor mollit id commodo amet magna.\r\n", + "address": "3 Fayette Street", + "city": "Noxen", + "state": "Marshall Islands", + "zip": 85920, + "country": "Namibia", + "email": "trudynewton@scentric.com", + "phone": "(873) 577-2869", + "color": "rgb(219,169,181)" + }, + { + "index": 149, + "name": "Oconnor Chan", + "first": "Beasley", + "last": "Larson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elamyr/73.jpg", + "boolean": true, + "guid": "1f90bd42-2c77-42fe-aa6b-fa4cd66676e6", + "integer": 10, + "date": "Fri Dec 30 1983 09:19:48 GMT-0800 (PST)", + "shortText": "adipisicing magna dolore", + "mediumText": "Commodo fugiat enim est minim. Amet quis amet mollit ipsum. Ex laboris eiusmod ut cillum nostrud sit excepteur qui est aliquip irure.", + "longText": "Laborum aliquip ullamco id irure anim esse nisi pariatur incididunt enim tempor. Sit voluptate aliquip non duis commodo. Dolor pariatur sunt ex nulla occaecat commodo ad minim minim eiusmod laborum consectetur. Veniam aute pariatur excepteur deserunt veniam voluptate tempor magna laborum minim consectetur officia consectetur. Enim aliquip incididunt dolor qui labore.\r\nAdipisicing fugiat commodo eiusmod cillum reprehenderit amet anim id. Aute laboris irure culpa est officia eiusmod esse minim ut irure ut. Nulla eu tempor nulla est eiusmod exercitation deserunt est. Nisi commodo amet sunt laborum non dolore sint eiusmod adipisicing officia elit ea occaecat.\r\nAdipisicing do ex aliqua aute ex nisi veniam excepteur consequat proident Lorem. Occaecat sit nisi amet occaecat consectetur id cillum dolore ad do laborum fugiat eiusmod. Cillum officia mollit qui non ad occaecat ea. Aliqua do pariatur culpa ullamco aliquip nisi enim tempor tempor ad quis nisi. Elit ipsum nisi nostrud magna excepteur sunt nisi excepteur ipsum nulla proident. Adipisicing mollit anim dolore eu mollit amet tempor.\r\n", + "address": "3 Sedgwick Street", + "city": "Wyoming", + "state": "Indiana", + "zip": 32307, + "country": "Paraguay", + "email": "beasleylarson@scentric.com", + "phone": "(816) 493-2742", + "color": "rgb(72,189,192)" + }, + { + "index": 150, + "name": "Cherry Barrett", + "first": "Jodie", + "last": "Logan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hmenchaca2/73.jpg", + "boolean": false, + "guid": "cf368c96-a982-4646-9b54-5fac8d17760e", + "integer": 86, + "date": "Tue Jun 30 2009 10:25:53 GMT-0700 (PDT)", + "shortText": "minim aliqua deserunt officia reprehenderit", + "mediumText": "Sunt ea eu occaecat aliqua.", + "longText": "Do anim id incididunt enim eiusmod quis sit id anim laboris proident. Fugiat nostrud dolore ex sit excepteur aliqua ex laborum ipsum deserunt mollit in laboris excepteur. Voluptate fugiat aliquip cillum sint magna voluptate labore veniam commodo deserunt excepteur. Nisi laborum commodo magna laborum ullamco ullamco est incididunt. Fugiat ex do pariatur reprehenderit velit pariatur proident. Laborum nulla laborum fugiat minim ut est voluptate elit reprehenderit.\r\nVelit enim enim ex eiusmod quis quis. Est minim adipisicing eu labore et dolor. Occaecat non laborum sint officia aliquip. Sint voluptate est incididunt ullamco anim duis cillum nostrud consectetur consequat amet quis labore. Ullamco eu amet eu est esse. Pariatur commodo incididunt dolore commodo sint consequat qui consectetur ea eu et. Amet quis non fugiat sint nostrud magna eiusmod incididunt ullamco.\r\nConsequat Lorem id ea consectetur cupidatat veniam adipisicing quis est proident eu quis. Labore magna ut esse amet qui non commodo exercitation. Adipisicing ut fugiat dolor sit ex sint mollit aute occaecat officia ipsum ut. Dolore consectetur laboris sint ex consectetur. Labore proident Lorem sunt sunt amet. Laboris ad in consectetur laboris nostrud culpa veniam pariatur esse adipisicing.\r\nIrure qui nostrud magna elit nulla velit consequat magna aliqua. Esse in consectetur velit laborum nostrud Lorem quis. Ipsum consectetur adipisicing sint adipisicing labore sit Lorem elit veniam nisi excepteur fugiat.\r\nAliqua ut qui enim sit nulla nulla nulla labore aliqua Lorem Lorem do. Voluptate id non pariatur aliquip eiusmod sit in nisi excepteur aliquip nostrud ut. Non id sunt Lorem nostrud cillum ad incididunt. Et aliquip ipsum Lorem deserunt magna do ullamco pariatur exercitation ad id anim in. Anim fugiat nostrud eu commodo velit. Aute labore est anim duis et minim qui non voluptate velit incididunt.\r\n", + "address": "3 Kenilworth Place", + "city": "Foxworth", + "state": "Tennessee", + "zip": 15225, + "country": "Macau", + "email": "jodielogan@scentric.com", + "phone": "(804) 506-3585", + "color": "rgb(200,139,149)" + }, + { + "index": 151, + "name": "Pennington Mccormick", + "first": "Georgette", + "last": "Clay", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dparrelli/73.jpg", + "boolean": false, + "guid": "c449450f-7ccb-4b65-9f9d-2b392e612960", + "integer": 15, + "date": "Tue Nov 10 1992 06:22:21 GMT-0800 (PST)", + "shortText": "adipisicing non officia", + "mediumText": "Dolore tempor qui cupidatat et velit ipsum ut officia.", + "longText": "Laboris nostrud cillum esse velit veniam non occaecat. Consequat pariatur reprehenderit qui culpa cupidatat fugiat ad amet irure non. Consequat magna laboris occaecat laborum est elit et magna voluptate cillum occaecat amet. Sit elit proident duis tempor nulla ullamco est qui nostrud. Duis non aliqua ea duis labore elit pariatur elit. Aliquip amet id ea aliqua.\r\nLorem Lorem exercitation eiusmod laboris culpa ipsum qui occaecat irure elit. Do occaecat reprehenderit pariatur non nisi magna nisi labore cupidatat anim proident quis ad ipsum. Non qui aute cupidatat irure dolor excepteur excepteur. Veniam eiusmod non nulla ex amet in minim non dolore excepteur anim. Ipsum non magna minim ea consequat officia et eu velit do. Aliqua veniam dolor officia incididunt occaecat. Ipsum est magna non fugiat mollit sunt consectetur veniam dolore id proident exercitation exercitation consectetur.\r\n", + "address": "2 Blake Avenue", + "city": "Haring", + "state": "Palau", + "zip": 47253, + "country": "Mauritania", + "email": "georgetteclay@scentric.com", + "phone": "(941) 573-3108", + "color": "rgb(166,137,160)" + }, + { + "index": 152, + "name": "Freda Coffey", + "first": "Rice", + "last": "Savage", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/okansurreel/73.jpg", + "boolean": true, + "guid": "0645d81f-1761-4eb4-b3ec-5c83f1d37a29", + "integer": 84, + "date": "Sun May 07 1978 23:30:05 GMT-0700 (PDT)", + "shortText": "deserunt voluptate officia consequat magna", + "mediumText": "Adipisicing esse tempor proident irure dolore eu sit.", + "longText": "Exercitation cupidatat voluptate exercitation quis nulla laborum. Tempor elit elit est commodo commodo ipsum elit quis minim ut cupidatat aliqua. Elit officia enim occaecat nisi fugiat nulla qui quis. Nisi cillum ullamco eu proident mollit velit.\r\n", + "address": "4 Ludlam Place", + "city": "Dotsero", + "state": "Virginia", + "zip": 28698, + "country": "Ghana", + "email": "ricesavage@scentric.com", + "phone": "(885) 508-3868", + "color": "rgb(209,117,128)" + }, + { + "index": 153, + "name": "Robin Merrill", + "first": "Harrington", + "last": "Simpson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lwilsonsmith/73.jpg", + "boolean": false, + "guid": "13382562-593b-4d3d-8633-025dec9ff8d2", + "integer": 71, + "date": "Sun Jul 15 1973 12:02:34 GMT-0700 (PDT)", + "shortText": "ad", + "mediumText": "Incididunt est minim non mollit amet est. Id nulla fugiat in pariatur nisi non aliqua deserunt cillum fugiat labore occaecat. Laborum Lorem laborum sit esse amet veniam. Occaecat exercitation anim consectetur nisi.", + "longText": "Anim nisi ex sint laboris incididunt id mollit sunt voluptate laboris qui sunt ad aliqua. Consectetur et esse aliqua in esse cupidatat pariatur ea nulla cillum ea. Exercitation commodo consectetur do quis aute officia est exercitation tempor nisi. Ut mollit Lorem anim cupidatat tempor aute consequat labore Lorem do enim reprehenderit.\r\nLorem magna tempor incididunt aliqua in magna Lorem. Fugiat qui minim est excepteur dolore laboris non consequat. Ullamco consequat eiusmod et sint aliquip et in anim.\r\nSunt incididunt nostrud nulla cillum veniam laborum proident exercitation occaecat incididunt nulla cillum. Labore exercitation in ea aliquip est anim cillum aliqua dolore aliqua adipisicing dolore. Ex et qui sint mollit nisi id aliqua nostrud nostrud eiusmod dolore ut proident qui.\r\nExcepteur cillum ea est eu ad eu exercitation commodo non amet in sint. Amet esse proident consequat elit consequat in laboris ea quis. Duis cillum do dolore sit culpa cillum irure enim tempor qui consectetur magna. Anim cillum esse cillum labore mollit reprehenderit. Sint consequat aliqua in id labore in adipisicing est non sit. Laborum esse voluptate proident excepteur occaecat.\r\n", + "address": "2 Duffield Street", + "city": "Soham", + "state": "Wyoming", + "zip": 36147, + "country": "Moldova", + "email": "harringtonsimpson@scentric.com", + "phone": "(920) 448-3636", + "color": "rgb(166,121,227)" + }, + { + "index": 154, + "name": "Petty Olsen", + "first": "Mcleod", + "last": "Oliver", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/klimmka/73.jpg", + "boolean": true, + "guid": "f4ae116d-6e1a-45dc-a540-636907772467", + "integer": 43, + "date": "Tue May 07 1991 17:32:07 GMT-0700 (PDT)", + "shortText": "proident laborum irure", + "mediumText": "Culpa laborum laboris adipisicing irure commodo.", + "longText": "Culpa incididunt dolore minim laboris eu fugiat occaecat esse cupidatat excepteur exercitation. Est quis Lorem mollit deserunt quis dolore sunt. In laboris ullamco nisi culpa velit deserunt nisi cupidatat irure adipisicing. Veniam in cupidatat irure reprehenderit mollit ut laboris esse consectetur. Ipsum dolore aliquip mollit nulla magna officia. Eiusmod est culpa eiusmod nostrud adipisicing reprehenderit proident adipisicing do velit nisi et ea do. Ut aute officia esse in ad magna voluptate magna tempor mollit labore consequat quis.\r\nUt ut cupidatat et velit magna aliquip nostrud aute nulla deserunt reprehenderit. Ex consequat labore mollit est officia sint esse labore. Consectetur nulla dolor cupidatat ad irure sint anim ea dolor ullamco ex. Amet pariatur ex reprehenderit amet sit minim eu ullamco enim commodo sunt occaecat cillum id.\r\nEnim elit nostrud exercitation qui. Laboris consequat enim cillum quis aliquip officia sint laborum nisi in reprehenderit aute velit. Duis nisi excepteur mollit nisi duis. Aliquip elit laboris anim fugiat minim. Adipisicing minim excepteur sunt ea irure velit qui voluptate commodo.\r\n", + "address": "4 Malta Street", + "city": "Irwin", + "state": "Colorado", + "zip": 85637, + "country": "Costa Rica", + "email": "mcleodoliver@scentric.com", + "phone": "(805) 533-2119", + "color": "rgb(190,184,203)" + }, + { + "index": 155, + "name": "Misty Hardy", + "first": "Barber", + "last": "Boone", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_kalibry/73.jpg", + "boolean": true, + "guid": "9c45bc8a-25cf-4c5b-8b71-30364fcf1924", + "integer": 43, + "date": "Sun Oct 16 1994 17:51:06 GMT-0700 (PDT)", + "shortText": "magna", + "mediumText": "Exercitation nulla aliquip deserunt dolore nisi.", + "longText": "Minim exercitation sint laborum nulla. Amet sunt aliquip veniam pariatur est ex qui proident mollit est. Fugiat do est elit mollit dolore enim labore aliquip tempor consectetur fugiat culpa et labore. Do anim enim incididunt sit excepteur dolore quis commodo ea reprehenderit sit eiusmod. Labore sint deserunt laborum esse deserunt voluptate sint consequat culpa duis proident. Excepteur enim ipsum minim enim enim elit nulla duis dolore reprehenderit amet enim. Sunt ea esse veniam nostrud aliquip Lorem sunt ex exercitation dolor officia ullamco.\r\nConsectetur proident magna sit est enim magna exercitation elit pariatur excepteur laborum id. Mollit nostrud est excepteur consequat aliqua ea irure. Deserunt velit dolore incididunt exercitation.\r\nLabore anim minim dolor excepteur officia est est in magna minim. Laboris pariatur aute elit esse esse ipsum eiusmod sit esse tempor voluptate irure quis adipisicing. Ea Lorem consectetur irure magna tempor ullamco eu esse magna sit Lorem mollit enim tempor. Do qui consequat dolore est sint aliquip ullamco reprehenderit ut et incididunt. Fugiat non est proident aute.\r\nSunt deserunt consequat anim aliqua aliquip minim ullamco in consectetur. Nisi fugiat cillum pariatur duis in magna pariatur eu nisi ea est esse sunt in. Occaecat proident tempor excepteur cillum.\r\nCupidatat laborum ex commodo excepteur deserunt quis nulla amet labore cupidatat. Enim ipsum id laborum duis anim nulla ex dolor eu officia incididunt aute laboris mollit. Dolore laboris do laborum magna amet minim ea eu eiusmod. Deserunt duis laboris nostrud qui.\r\n", + "address": "3 Clark Street", + "city": "Suitland", + "state": "Utah", + "zip": 21043, + "country": "El Salvador", + "email": "barberboone@scentric.com", + "phone": "(828) 457-2049", + "color": "rgb(233,144,205)" + }, + { + "index": 156, + "name": "Tessa Ward", + "first": "Janie", + "last": "Bailey", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dhoot_amit/73.jpg", + "boolean": false, + "guid": "fa4f8583-7893-484e-a2fa-3daeb6c18ffc", + "integer": 38, + "date": "Thu Jun 19 1975 01:08:42 GMT-0700 (PDT)", + "shortText": "ex proident", + "mediumText": "Esse cupidatat duis non ullamco dolor aliquip aute tempor voluptate. Dolore cillum voluptate nulla eiusmod sint dolor minim consectetur.", + "longText": "Sunt occaecat officia aliqua nostrud incididunt est nisi laborum. Labore qui do sint dolore nisi qui sunt fugiat dolor Lorem adipisicing voluptate. Aliqua culpa dolor dolore nulla culpa labore duis sint ex.\r\n", + "address": "2 Wilson Street", + "city": "Rowe", + "state": "Idaho", + "zip": 55794, + "country": "Oman", + "email": "janiebailey@scentric.com", + "phone": "(949) 462-3512", + "color": "rgb(159,233,70)" + }, + { + "index": 157, + "name": "Wilda Booker", + "first": "Ramsey", + "last": "Kemp", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/actionsmile/73.jpg", + "boolean": false, + "guid": "53cfead6-8964-4112-84a9-ab158fff3aef", + "integer": 66, + "date": "Sun Jun 03 2007 03:34:39 GMT-0700 (PDT)", + "shortText": "ex id", + "mediumText": "Esse veniam laborum enim exercitation nisi ut duis elit incididunt consequat. Amet anim non proident commodo. Voluptate ex irure ex occaecat veniam velit.", + "longText": "Nisi aliqua id ad et sunt esse ad sunt. Quis irure velit anim aute consequat dolore eu sunt est proident commodo magna irure. Minim ullamco ex duis sint nisi nulla occaecat quis. Dolor dolore est anim aute qui fugiat in veniam incididunt Lorem ad sint qui sit.\r\nOfficia est ullamco laborum duis eu reprehenderit do excepteur Lorem pariatur sit consectetur excepteur deserunt. Sit magna laborum nulla exercitation et ex laboris est incididunt minim. Ipsum cupidatat sint minim do commodo minim ea laboris ea occaecat ut exercitation qui anim. Reprehenderit voluptate sit voluptate occaecat commodo. Adipisicing nisi ipsum eiusmod exercitation non. Nostrud ad incididunt laboris fugiat veniam esse ex laboris enim.\r\nElit fugiat minim nostrud in proident ex nisi ea eiusmod sint adipisicing anim reprehenderit culpa. Exercitation anim do id ad. Nulla esse aliquip sint qui occaecat excepteur irure incididunt dolor. Aliquip commodo veniam laborum enim quis enim dolor laboris excepteur. Laborum consequat tempor reprehenderit elit velit magna pariatur officia nostrud tempor quis elit laboris pariatur. Id consequat reprehenderit in dolor aliquip enim officia occaecat et labore labore.\r\n", + "address": "2 Denton Place", + "city": "Hartsville/Hartley", + "state": "Arkansas", + "zip": 66806, + "country": "Belgium", + "email": "ramseykemp@scentric.com", + "phone": "(856) 582-2727", + "color": "rgb(83,54,244)" + }, + { + "index": 158, + "name": "Owens Bowman", + "first": "Tyson", + "last": "Bowers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/craftified/73.jpg", + "boolean": true, + "guid": "77abfb3a-ed05-4caf-bf96-82e827a650f0", + "integer": 14, + "date": "Wed Mar 28 1990 07:53:40 GMT-0800 (PST)", + "shortText": "qui ullamco pariatur incididunt", + "mediumText": "Laborum pariatur sit pariatur veniam aliqua sint exercitation esse.", + "longText": "Occaecat nostrud sint nisi reprehenderit. Irure est enim esse irure dolor eu pariatur aute ea dolor id nulla. Adipisicing culpa elit adipisicing velit elit cillum sint nisi et deserunt eu.\r\nAd anim fugiat amet commodo do anim ea adipisicing irure ad aliquip cupidatat deserunt. Nulla consequat ut sit consectetur ea non ut aliqua. Nulla nisi sit anim incididunt cillum laborum. Quis deserunt velit ullamco esse non do eu aliquip aliqua consequat quis. Occaecat in in et occaecat proident commodo aliqua mollit magna elit mollit adipisicing elit aute. Consectetur culpa exercitation cillum aliqua cillum proident pariatur enim ut ea amet. Voluptate adipisicing enim esse laborum elit duis consequat labore sunt officia adipisicing adipisicing.\r\nEt magna commodo aute duis ipsum et exercitation eiusmod quis do ipsum. Tempor adipisicing incididunt deserunt eu adipisicing id anim Lorem est. Elit proident esse sunt tempor eiusmod dolor Lorem irure mollit. Qui sit proident duis quis magna qui. Tempor id velit fugiat elit duis nostrud velit id amet velit minim deserunt laboris aute.\r\nAliqua voluptate minim elit consectetur laborum ex proident. Commodo minim tempor veniam duis veniam irure sint do aliqua ut reprehenderit velit ut sunt. Ea nostrud irure Lorem est officia ea esse ad. Ipsum fugiat voluptate irure consequat veniam quis commodo fugiat.\r\nPariatur commodo ex anim nostrud consectetur tempor. Ipsum minim Lorem nostrud elit voluptate ullamco eu labore ipsum Lorem. Excepteur magna ea tempor deserunt eu aliquip pariatur excepteur. Minim fugiat proident quis incididunt laboris. Est nisi esse consectetur pariatur.\r\n", + "address": "4 Canda Avenue", + "city": "Crayne", + "state": "Delaware", + "zip": 12406, + "country": "Kyrgyzstan", + "email": "tysonbowers@scentric.com", + "phone": "(951) 408-3515", + "color": "rgb(163,140,145)" + }, + { + "index": 159, + "name": "Violet Salazar", + "first": "Roy", + "last": "Rosa", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aleksitappura/73.jpg", + "boolean": true, + "guid": "dd706aa0-2c9a-4b30-8ada-4c21111ff80c", + "integer": 60, + "date": "Wed Jun 24 1998 10:59:00 GMT-0700 (PDT)", + "shortText": "cillum", + "mediumText": "Amet aute amet occaecat enim cupidatat excepteur mollit et aute fugiat. In labore Lorem elit mollit aliquip est adipisicing excepteur ullamco. Velit reprehenderit magna et minim exercitation duis laborum ut consectetur minim. Enim duis adipisicing nostrud ea esse occaecat reprehenderit anim Lorem exercitation anim consequat sint non. Nisi duis occaecat excepteur consequat ullamco et nostrud laboris fugiat elit pariatur sit consequat mollit.", + "longText": "Est veniam irure excepteur aliquip excepteur aliqua fugiat. Labore aliquip anim fugiat est mollit dolor aute incididunt duis. Quis exercitation eiusmod laboris ullamco velit dolor deserunt cillum eiusmod ea. Excepteur velit ullamco reprehenderit fugiat laborum quis velit.\r\nCupidatat adipisicing irure cillum esse non ullamco incididunt amet adipisicing nisi. Consequat enim excepteur voluptate magna laborum incididunt in do incididunt duis. Minim qui Lorem velit incididunt cillum sunt quis aute nulla dolore pariatur labore ipsum. Amet in non amet et cillum duis exercitation aliqua et. Velit et voluptate excepteur amet anim deserunt mollit eu. Lorem commodo proident labore elit mollit cillum ad et et quis. Magna sint ut proident nisi duis.\r\nVoluptate ad dolor incididunt ex esse enim deserunt incididunt commodo esse irure laboris labore. Occaecat ad deserunt do et. Fugiat do sint nulla incididunt elit nulla est nulla et fugiat nulla nostrud in. Consectetur aute et nulla excepteur tempor do ut Lorem. Consequat magna qui adipisicing eiusmod irure amet laboris ea Lorem eu ut deserunt consectetur do.\r\nConsequat sunt incididunt sit voluptate proident minim anim. Aute est adipisicing occaecat officia cupidatat Lorem labore officia nulla culpa non elit ipsum. Commodo amet amet id enim cupidatat amet. Anim minim duis deserunt veniam sit sint sint ullamco magna.\r\n", + "address": "3 Royce Street", + "city": "Leroy", + "state": "Federated States Of Micronesia", + "zip": 13161, + "country": "Swaziland", + "email": "royrosa@scentric.com", + "phone": "(805) 581-2201", + "color": "rgb(150,213,255)" + }, + { + "index": 160, + "name": "Laurel Harvey", + "first": "Yvonne", + "last": "Foster", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicollerich/73.jpg", + "boolean": true, + "guid": "1fb04afe-2620-4b3d-bf7d-c0ae6504d91a", + "integer": 27, + "date": "Sun May 20 1973 10:47:10 GMT-0700 (PDT)", + "shortText": "sit officia", + "mediumText": "Lorem laboris sit dolore nulla est enim eu eu. Enim fugiat officia elit cillum fugiat nostrud nostrud aute non aliquip laborum culpa amet fugiat. Elit esse laboris aliquip labore reprehenderit elit fugiat nostrud duis aliquip consequat.", + "longText": "Commodo elit amet sit irure id. Deserunt laboris commodo aute incididunt nisi esse occaecat irure non magna. Irure nisi nisi irure consequat dolore fugiat dolor reprehenderit veniam qui cupidatat ipsum. Cillum sint in ut quis ullamco eu ut laborum exercitation reprehenderit culpa. Consectetur dolor duis exercitation irure et eiusmod.\r\n", + "address": "3 Matthews Court", + "city": "Chesterfield", + "state": "Guam", + "zip": 42757, + "country": "Slovenia", + "email": "yvonnefoster@scentric.com", + "phone": "(981) 600-2987", + "color": "rgb(131,169,121)" + }, + { + "index": 161, + "name": "Mills Cruz", + "first": "Lydia", + "last": "Trevino", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrmartineau/73.jpg", + "boolean": false, + "guid": "cd0f0296-ec14-4221-a846-ca3bf425bbbc", + "integer": 86, + "date": "Sun Feb 10 2002 20:01:40 GMT-0800 (PST)", + "shortText": "est dolore pariatur", + "mediumText": "Duis non quis tempor enim non sunt mollit esse. Irure ipsum ea elit commodo aute dolore ad sint reprehenderit. Velit aute ad commodo sint nisi ipsum. Sunt ex nostrud laboris anim amet tempor exercitation laboris in commodo non excepteur. Ea duis cupidatat eu enim est veniam.", + "longText": "Amet anim eu fugiat amet. Non cillum veniam consectetur nulla proident eu minim enim irure et. Proident exercitation est laboris ullamco anim. Commodo consectetur nostrud labore irure.\r\nDolore sunt id mollit aliquip. Nulla ullamco sint eu et reprehenderit nulla nostrud officia sint. Culpa consequat qui nulla dolore aliquip ipsum aliqua occaecat. Et ea ad magna ipsum magna tempor. Aliquip laborum proident cillum ut aliquip irure minim ut ad nostrud aliquip. Id veniam duis aliqua fugiat aliquip amet tempor ut deserunt proident eu pariatur anim pariatur.\r\n", + "address": "3 Rutherford Place", + "city": "Jeff", + "state": "Pennsylvania", + "zip": 59522, + "country": "Mali", + "email": "lydiatrevino@scentric.com", + "phone": "(958) 545-3599", + "color": "rgb(58,191,253)" + }, + { + "index": 162, + "name": "Craft Gould", + "first": "Simon", + "last": "Durham", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kuldarkalvik/73.jpg", + "boolean": true, + "guid": "fddbf917-d75d-4698-8f07-cad884331664", + "integer": 58, + "date": "Sat Apr 02 1983 08:39:43 GMT-0800 (PST)", + "shortText": "excepteur", + "mediumText": "Magna tempor do quis est pariatur culpa aliqua tempor ipsum. Laborum velit irure qui nostrud aute non amet est consectetur esse deserunt ad elit. Eiusmod velit proident culpa labore anim velit ex.", + "longText": "Ad tempor excepteur id incididunt. Elit culpa dolor ullamco exercitation non minim proident ex ipsum. Dolore veniam sit non Lorem aute ipsum enim deserunt nostrud est labore. Amet minim ut magna pariatur. Velit qui ipsum irure excepteur eiusmod sint. Irure sit dolor deserunt do proident ex aliquip anim enim. Ipsum nulla sunt ex magna sunt et enim exercitation.\r\n", + "address": "4 Love Lane", + "city": "Weedville", + "state": "New Hampshire", + "zip": 37752, + "country": "Cyprus", + "email": "simondurham@scentric.com", + "phone": "(934) 533-3438", + "color": "rgb(168,60,232)" + }, + { + "index": 163, + "name": "Michelle Thomas", + "first": "Gretchen", + "last": "Carson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/erickmazer/73.jpg", + "boolean": true, + "guid": "f7385e18-ca3a-4a01-b518-4de10115efad", + "integer": 17, + "date": "Sun Mar 23 1980 04:08:07 GMT-0800 (PST)", + "shortText": "eiusmod officia ex", + "mediumText": "Officia ipsum in tempor amet fugiat sunt ex id ullamco anim pariatur. Sint eu ad consequat tempor mollit dolor est minim duis. Nulla esse amet dolore veniam exercitation aute velit laboris aute ex velit nostrud officia. Enim Lorem elit laboris culpa ut minim ut veniam enim aliqua dolor quis sunt consectetur.", + "longText": "Id esse dolor laborum magna reprehenderit ut culpa enim. Sit dolore aute culpa nisi. Nulla qui quis culpa nostrud duis sint proident mollit velit pariatur.\r\nIrure commodo consequat anim in sunt. Commodo nisi fugiat ullamco sunt excepteur cillum reprehenderit veniam dolor cillum proident exercitation pariatur. Adipisicing consectetur aliquip veniam nostrud ex qui duis amet non quis elit. Ad non consectetur pariatur occaecat occaecat tempor magna.\r\nCillum enim proident dolore dolore eiusmod consectetur consectetur eiusmod in dolor. Deserunt exercitation incididunt esse non excepteur laborum elit tempor deserunt et officia. Ut magna mollit occaecat anim irure nulla aliqua consequat minim. Officia qui mollit veniam do cillum non non. Enim fugiat nostrud fugiat velit exercitation ea. Sunt eu officia non laborum anim occaecat qui tempor eu consectetur ad ipsum dolor.\r\n", + "address": "2 Irwin Street", + "city": "Brandywine", + "state": "North Dakota", + "zip": 74057, + "country": "Georgia", + "email": "gretchencarson@scentric.com", + "phone": "(963) 572-3829", + "color": "rgb(206,131,97)" + }, + { + "index": 164, + "name": "Fowler Kirby", + "first": "Christi", + "last": "Rivas", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guischmitt/73.jpg", + "boolean": true, + "guid": "1a236923-53b2-47df-88a0-9304e14dcc9c", + "integer": 4, + "date": "Tue Jul 06 1971 07:33:44 GMT-0700 (PDT)", + "shortText": "ut sunt incididunt ea", + "mediumText": "Enim ea excepteur nostrud id commodo do pariatur ipsum dolore excepteur incididunt. Id commodo id fugiat commodo incididunt sint laboris proident quis reprehenderit. Fugiat labore magna do in consequat cillum commodo sint laborum. Ex cillum sint dolor eiusmod dolore in voluptate voluptate ut reprehenderit.", + "longText": "Excepteur elit ad esse incididunt nulla in duis. Ut Lorem labore nulla aute ipsum occaecat esse voluptate enim in sit officia magna. Qui aliquip excepteur laborum esse nostrud et deserunt consectetur reprehenderit aliquip enim nulla. Eiusmod magna consequat sit officia aliquip laboris laborum aliquip non irure.\r\nIncididunt dolor officia exercitation sit sit tempor enim proident qui anim reprehenderit amet aliqua anim. Amet consectetur laboris occaecat labore aliquip veniam sunt do esse nostrud fugiat ex quis. Ex irure tempor laboris eiusmod qui id pariatur dolor tempor cillum et aute culpa aliqua.\r\n", + "address": "2 Clara Street", + "city": "Bladensburg", + "state": "Northern Mariana Islands", + "zip": 47563, + "country": "Djibouti", + "email": "christirivas@scentric.com", + "phone": "(934) 580-3784", + "color": "rgb(163,213,79)" + }, + { + "index": 165, + "name": "Coleen Alford", + "first": "Bobbie", + "last": "Wells", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mariosmaselli/73.jpg", + "boolean": false, + "guid": "a38427b2-d0ac-4dae-aae3-2c4504338bf7", + "integer": 72, + "date": "Fri Aug 23 1985 16:39:58 GMT-0700 (PDT)", + "shortText": "sit labore cupidatat nulla", + "mediumText": "Magna ullamco in nulla officia dolor in mollit labore proident nulla do officia dolor.", + "longText": "Enim mollit proident magna adipisicing laborum duis magna officia exercitation incididunt mollit. Id Lorem in nostrud sit ut est culpa. Nulla mollit cillum reprehenderit fugiat ipsum occaecat occaecat qui nostrud.\r\nExcepteur consectetur eu aliqua aliqua esse cupidatat do excepteur quis culpa officia culpa aute cupidatat. Lorem id officia irure cillum cupidatat duis duis enim officia duis nisi anim. Elit ipsum nulla aliqua magna dolore eiusmod veniam est laborum. Veniam laboris deserunt duis voluptate. Laborum est eu ullamco exercitation non commodo minim minim nostrud irure deserunt deserunt cupidatat.\r\n", + "address": "4 Lyme Avenue", + "city": "Orick", + "state": "South Dakota", + "zip": 76909, + "country": "Tokelau", + "email": "bobbiewells@scentric.com", + "phone": "(968) 545-3385", + "color": "rgb(144,250,135)" + }, + { + "index": 166, + "name": "Victoria Hull", + "first": "Velasquez", + "last": "Buck", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_ahmadyunus/73.jpg", + "boolean": false, + "guid": "f0102b51-dc32-496c-984f-1df5f9e71231", + "integer": 19, + "date": "Fri Jul 04 2003 19:23:27 GMT-0700 (PDT)", + "shortText": "occaecat reprehenderit nostrud cupidatat ullamco", + "mediumText": "Aute proident minim amet amet.", + "longText": "Dolor deserunt nulla ex occaecat. Pariatur consequat culpa ex nostrud. Pariatur laborum voluptate tempor do qui aliqua esse aliquip nisi aliquip aute. Deserunt sit ex cupidatat mollit mollit ipsum eiusmod.\r\nAliquip do ullamco pariatur elit. Qui aliqua pariatur excepteur minim aute anim consequat ipsum esse pariatur laboris eu dolore ea. Adipisicing velit cillum est deserunt ea magna laboris irure. Pariatur reprehenderit cupidatat aliqua laborum excepteur sunt eiusmod nulla. Consequat ex Lorem consequat eu laboris est cupidatat.\r\nCupidatat ea reprehenderit sint minim ipsum anim culpa Lorem enim elit proident quis cupidatat cillum. Elit est et cupidatat irure labore minim est. Dolor veniam consectetur commodo id in anim. Fugiat et qui ex aliquip magna fugiat excepteur id. Qui mollit non veniam excepteur. Lorem adipisicing anim ullamco excepteur officia proident ea.\r\n", + "address": "4 Vermont Street", + "city": "Klondike", + "state": "Alaska", + "zip": 29219, + "country": "San Marino", + "email": "velasquezbuck@scentric.com", + "phone": "(872) 448-3197", + "color": "rgb(113,227,172)" + }, + { + "index": 167, + "name": "Kimberly Allen", + "first": "Valencia", + "last": "Duran", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anggit_pradito/73.jpg", + "boolean": true, + "guid": "8bfa6dca-8fd4-4050-b184-2e523d1bdc9e", + "integer": 59, + "date": "Thu Nov 29 2012 14:27:53 GMT-0800 (PST)", + "shortText": "non adipisicing aliqua aliquip", + "mediumText": "Dolor dolor ea sit id elit aute dolore. Commodo amet ut fugiat tempor in aliquip.", + "longText": "Sunt fugiat duis nulla laborum excepteur. Cupidatat consequat consectetur Lorem elit velit mollit cillum dolore duis culpa. Commodo elit adipisicing ut tempor proident reprehenderit. Excepteur laboris occaecat labore dolor enim in. Elit et sunt minim deserunt ex adipisicing sit Lorem deserunt sit eu amet dolore eiusmod. Dolor ullamco elit sint quis ex sunt consequat id est mollit aliqua cupidatat magna dolore. Adipisicing laborum cupidatat id deserunt eu velit Lorem aliquip aliquip amet minim culpa nulla ex.\r\nLaboris ipsum Lorem tempor labore anim fugiat quis velit. Sint sunt incididunt anim cupidatat eiusmod ea aute exercitation tempor Lorem. Nulla amet eu voluptate eu in ut veniam dolor elit ullamco. Labore elit eu id tempor esse. Incididunt cupidatat cillum do non amet ullamco cillum nulla Lorem. Mollit fugiat ea et sit veniam nulla qui duis laboris non magna irure consectetur dolor. Id eu officia mollit est dolore voluptate anim ex.\r\nIrure ipsum commodo reprehenderit labore et nulla. Sunt et nulla id commodo quis laboris ipsum irure elit ad officia. Aute Lorem anim dolore non est occaecat in esse quis duis.\r\n", + "address": "2 Judge Street", + "city": "Bedias", + "state": "Louisiana", + "zip": 39058, + "country": "Vanuatu", + "email": "valenciaduran@scentric.com", + "phone": "(933) 441-3632", + "color": "rgb(160,71,158)" + }, + { + "index": 168, + "name": "Gill Meadows", + "first": "Diann", + "last": "Fox", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/saschamt/73.jpg", + "boolean": true, + "guid": "a9cbf409-9e60-457a-a048-b16302e1615a", + "integer": 88, + "date": "Sat Oct 13 2001 11:08:26 GMT-0700 (PDT)", + "shortText": "quis ea et amet sint", + "mediumText": "Dolor reprehenderit duis nulla ea cupidatat sit cupidatat Lorem fugiat. Cupidatat laborum fugiat eu do incididunt id adipisicing aute laborum minim occaecat. Culpa pariatur culpa dolor anim ullamco sit proident Lorem ex sunt fugiat mollit proident elit. Culpa mollit nulla aute fugiat qui ad ut incididunt veniam dolor officia irure esse.", + "longText": "Occaecat do proident enim et. Dolore minim mollit eiusmod exercitation exercitation eu laborum laboris laborum ipsum eiusmod. Reprehenderit pariatur sint dolor consequat.\r\nElit consectetur enim aute sit culpa. Nostrud irure do et voluptate nostrud. Officia et magna occaecat nisi excepteur sit veniam ipsum ipsum eiusmod culpa. Id sunt excepteur culpa et. Eu sunt aute aliquip excepteur labore incididunt laborum cupidatat. Eu deserunt occaecat culpa Lorem aliquip excepteur cillum et esse est.\r\nAdipisicing non est voluptate anim proident tempor. Pariatur est eiusmod magna id consectetur consectetur nostrud in est id exercitation commodo minim nostrud. Aute esse veniam tempor sint sunt. Ut elit exercitation laborum voluptate voluptate. Id eu proident nostrud laborum exercitation elit commodo non aliquip quis irure.\r\nAnim quis eu sit qui esse deserunt ut. Officia voluptate deserunt cupidatat sint nostrud anim. Ipsum ut eiusmod ullamco irure exercitation aliqua incididunt in nostrud. Eu fugiat nulla esse deserunt et laboris consequat. Ipsum occaecat quis irure exercitation magna duis elit reprehenderit ad sunt cillum est do. Id qui ipsum dolor laboris commodo voluptate exercitation commodo. Laborum veniam culpa minim culpa eiusmod nulla est commodo dolor minim irure minim cupidatat.\r\nEx eu duis sit velit. Laborum excepteur nisi voluptate sunt adipisicing irure pariatur incididunt ullamco proident ea labore. Culpa velit occaecat ea pariatur esse amet proident nostrud cillum velit qui elit ullamco commodo. Pariatur ad qui ad in qui in est laborum enim incididunt qui. Commodo excepteur commodo veniam est Lorem veniam velit quis veniam incididunt laborum esse in proident. Id aliquip aliquip exercitation labore dolore in laboris nostrud enim.\r\n", + "address": "3 Poplar Avenue", + "city": "Day", + "state": "Missouri", + "zip": 72123, + "country": "Somalia", + "email": "diannfox@scentric.com", + "phone": "(862) 462-3513", + "color": "rgb(115,148,158)" + }, + { + "index": 169, + "name": "Peggy Sandoval", + "first": "Kathleen", + "last": "Ryan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anasnakawa/73.jpg", + "boolean": false, + "guid": "5c6b1295-b453-4328-a4f4-e137d434c520", + "integer": 52, + "date": "Sat Feb 04 1978 00:31:29 GMT-0800 (PST)", + "shortText": "esse laborum duis fugiat dolore", + "mediumText": "Reprehenderit quis ut incididunt laborum sint non culpa tempor. Sint irure voluptate consectetur irure amet.", + "longText": "Ipsum mollit nostrud tempor amet nostrud aliqua ea eiusmod. Consequat exercitation consectetur mollit qui reprehenderit. Incididunt irure deserunt deserunt eu ullamco non proident et velit. Adipisicing ea ad dolore aliquip sint qui ut. Eiusmod laboris cupidatat dolore aliquip ullamco cillum exercitation.\r\nEsse non fugiat ex culpa. Veniam aliquip amet elit qui culpa commodo duis. Ad officia culpa ut adipisicing aliqua adipisicing consequat non mollit. Quis exercitation aute exercitation esse duis do. Velit consectetur ipsum magna incididunt proident fugiat laborum aliqua irure occaecat sit. Excepteur aliquip qui est nostrud deserunt velit ullamco aute ipsum enim mollit deserunt. Consectetur velit velit Lorem exercitation laboris irure mollit sunt voluptate ex cupidatat non occaecat culpa.\r\nConsequat occaecat magna aliqua reprehenderit velit excepteur incididunt. Incididunt est ea ea proident consectetur excepteur non minim minim pariatur adipisicing deserunt ipsum. Reprehenderit amet non quis esse reprehenderit. Enim et elit Lorem id sit in culpa eiusmod aliquip ipsum.\r\nSunt sit aliquip ullamco laborum voluptate officia laborum nisi commodo deserunt sint. Sit nostrud sit eu nisi dolor sit voluptate duis exercitation. Eiusmod mollit nulla labore ea labore et labore tempor ad magna in sunt.\r\n", + "address": "2 Lake Avenue", + "city": "Hamilton", + "state": "Kentucky", + "zip": 57827, + "country": "Maldives", + "email": "kathleenryan@scentric.com", + "phone": "(868) 529-3500", + "color": "rgb(213,148,139)" + }, + { + "index": 170, + "name": "Julia Palmer", + "first": "Harrell", + "last": "Galloway", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/just_watt/73.jpg", + "boolean": true, + "guid": "8de12a66-7b83-4add-91a8-87d6b817555b", + "integer": 3, + "date": "Sat Oct 15 1994 03:18:04 GMT-0700 (PDT)", + "shortText": "elit occaecat", + "mediumText": "Veniam sunt elit id ad amet ut. Quis in reprehenderit qui amet mollit exercitation sint esse anim. Reprehenderit anim ex sint adipisicing dolor dolore quis.", + "longText": "Exercitation consequat incididunt amet ad nisi anim ipsum aliqua velit do excepteur laborum eiusmod veniam. Mollit do est adipisicing ipsum Lorem elit consequat sunt aliquip aliquip nisi enim incididunt. Reprehenderit adipisicing ea in aliquip consectetur non nostrud aliquip irure aliqua irure irure. Ad officia adipisicing nisi laboris non esse officia cillum voluptate proident magna minim ad voluptate. Eu aute dolore sit elit proident est id in. Esse eiusmod reprehenderit consequat labore proident incididunt est ut.\r\nOfficia non voluptate non quis fugiat deserunt consequat ullamco dolor et enim eu. Ullamco eu reprehenderit tempor Lorem aliqua amet duis ullamco laborum. Exercitation ad aliqua tempor cillum excepteur adipisicing Lorem velit.\r\nMinim ipsum proident labore esse duis adipisicing eu cillum nostrud tempor. Esse commodo enim officia amet dolore esse. Incididunt tempor labore sit culpa aliqua est ut do anim.\r\nVoluptate in sint eu sint culpa do aliqua incididunt ullamco consequat duis. Est esse dolore excepteur aute Lorem consequat enim nulla in nisi ex proident dolore. Ad velit eiusmod esse do minim commodo duis occaecat aute eiusmod adipisicing qui non nostrud.\r\nDolor do sit culpa amet irure occaecat nisi aliquip est ad. Dolor ullamco officia anim amet occaecat elit minim. Anim exercitation elit ipsum magna sit ut sunt aliqua. Do quis occaecat culpa mollit aute qui. Irure officia dolor cillum veniam esse. Exercitation sint fugiat sint sint in aliquip commodo magna mollit minim irure deserunt.\r\n", + "address": "2 Guider Avenue", + "city": "Tonopah", + "state": "American Samoa", + "zip": 59756, + "country": "Israel", + "email": "harrellgalloway@scentric.com", + "phone": "(824) 588-3680", + "color": "rgb(122,79,220)" + }, + { + "index": 171, + "name": "Luann Gates", + "first": "Gwendolyn", + "last": "Weaver", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/caiifr/73.jpg", + "boolean": false, + "guid": "f87dd269-a351-4ca6-864e-d1262763c0ed", + "integer": 35, + "date": "Wed Feb 26 1992 22:47:04 GMT-0800 (PST)", + "shortText": "nulla esse do consequat", + "mediumText": "Veniam cupidatat ut tempor amet. Cillum amet irure aliquip non.", + "longText": "Incididunt amet adipisicing eiusmod ipsum sit et aute voluptate veniam nostrud. Ea ex ullamco sint minim. Proident minim quis aute nulla minim nisi sunt. Incididunt sit irure duis exercitation anim deserunt sunt Lorem ex enim incididunt. Non et sint amet minim culpa fugiat ut esse. Dolor do commodo minim incididunt laborum do magna cillum commodo mollit consectetur labore id exercitation.\r\nNon fugiat Lorem enim cillum duis voluptate. Exercitation aliqua irure consequat amet sint occaecat aliqua sunt ea tempor ut reprehenderit. Occaecat pariatur duis adipisicing consequat. Amet sunt qui veniam mollit officia ea magna.\r\nEnim esse amet cillum mollit fugiat laborum Lorem. Consectetur anim labore dolor velit magna magna nisi dolore deserunt ad eu eu ex velit. Pariatur magna esse ipsum veniam ipsum sint tempor magna consectetur dolor eiusmod nulla eiusmod. Eiusmod veniam et ex incididunt ea sunt quis dolor ex. Laborum deserunt elit ullamco quis amet adipisicing magna eiusmod ad nostrud amet culpa sint eiusmod. Id Lorem occaecat in velit ex cupidatat aliquip dolore reprehenderit laboris. Consequat nostrud magna non occaecat ut laboris aliqua amet anim.\r\nNisi veniam id anim minim elit elit veniam. Do id voluptate mollit duis adipisicing mollit officia do enim eu consectetur. Culpa duis ad tempor laborum proident sint commodo aliquip sunt occaecat eu culpa. Eu ullamco exercitation excepteur aute voluptate mollit ex.\r\n", + "address": "2 Claver Place", + "city": "Moraida", + "state": "Minnesota", + "zip": 14017, + "country": "Reunion", + "email": "gwendolynweaver@scentric.com", + "phone": "(926) 595-3032", + "color": "rgb(170,147,167)" + }, + { + "index": 172, + "name": "Tyler Gardner", + "first": "Collins", + "last": "Warner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/briandiazme/73.jpg", + "boolean": false, + "guid": "e9934a5e-c84e-4920-979e-2c6496359125", + "integer": 41, + "date": "Sat Jun 23 1990 16:08:31 GMT-0700 (PDT)", + "shortText": "esse velit commodo", + "mediumText": "Est consequat velit elit exercitation irure laboris commodo do cillum proident commodo. Laborum fugiat aute Lorem reprehenderit exercitation.", + "longText": "Sint enim est amet nulla anim consequat duis nostrud id excepteur ut. Dolor cillum sit do duis nostrud laborum. Id mollit enim id ad nostrud culpa reprehenderit mollit enim exercitation minim fugiat. Eiusmod esse aliqua aute aliquip ullamco aute est in in veniam cillum ipsum aute. Laboris tempor mollit non veniam officia velit ea. Laboris cillum fugiat id consectetur labore proident est. Fugiat mollit ullamco do fugiat nulla incididunt commodo nisi aliqua consectetur voluptate.\r\nIncididunt velit quis mollit laborum esse occaecat id. Aute ut tempor et commodo magna anim consequat reprehenderit tempor proident eu. Et deserunt aliquip est fugiat anim nostrud exercitation Lorem sint labore non nisi. Magna nostrud do culpa aliqua consequat proident in sunt consequat qui Lorem sunt magna culpa. Id velit in consequat pariatur irure cupidatat ipsum eiusmod Lorem fugiat et.\r\nEiusmod proident amet cupidatat ea et. Veniam minim consectetur dolor officia aliquip exercitation culpa. Sunt et tempor magna laboris sunt aliquip excepteur ea nostrud aliqua. Laboris pariatur commodo tempor in dolor aliqua fugiat elit deserunt tempor esse.\r\n", + "address": "2 Dearborn Court", + "city": "Avoca", + "state": "Hawaii", + "zip": 49354, + "country": "Taiwan", + "email": "collinswarner@scentric.com", + "phone": "(803) 510-3885", + "color": "rgb(192,229,65)" + }, + { + "index": 173, + "name": "Ruthie Mcintyre", + "first": "Rowena", + "last": "Sellers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/productpeopletv/73.jpg", + "boolean": true, + "guid": "e7f9037c-1145-4e46-a079-2b461a550ad8", + "integer": 21, + "date": "Mon Aug 25 2014 19:53:08 GMT-0700 (PDT)", + "shortText": "occaecat velit", + "mediumText": "Lorem ut adipisicing deserunt quis fugiat aute.", + "longText": "Exercitation quis exercitation magna dolor elit cillum sit sint. Officia consequat dolore ex proident exercitation labore qui aliquip. Exercitation adipisicing sit culpa ullamco laborum.\r\nIpsum veniam amet occaecat incididunt officia consectetur ullamco fugiat quis dolor incididunt. Ea deserunt id ipsum labore exercitation enim officia aliquip labore anim eiusmod. In sint dolore cupidatat sint fugiat culpa ipsum veniam sunt sit consequat nisi labore nulla.\r\n", + "address": "3 Varanda Place", + "city": "Drummond", + "state": "Alabama", + "zip": 57942, + "country": "Cuba", + "email": "rowenasellers@scentric.com", + "phone": "(969) 592-2871", + "color": "rgb(181,199,125)" + }, + { + "index": 174, + "name": "Nguyen Stewart", + "first": "Robert", + "last": "Russell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/darioalbini/73.jpg", + "boolean": false, + "guid": "28ef7fb5-18c4-4dd2-927c-3ddc4d9199c4", + "integer": 75, + "date": "Wed Sep 06 1972 12:28:29 GMT-0700 (PDT)", + "shortText": "in minim qui veniam nulla", + "mediumText": "Esse laboris aliquip ex est deserunt ut minim Lorem Lorem non proident minim. Est et ad Lorem laborum laboris nostrud tempor eu magna. Incididunt sint mollit ullamco sint sunt fugiat voluptate ut nostrud.", + "longText": "Irure est cillum duis pariatur et ut. In laborum Lorem velit ad anim voluptate sit amet laboris consectetur officia aliquip. Do ex proident id ullamco velit incididunt in proident ut duis amet sunt voluptate nisi. Et nostrud eiusmod laboris ipsum ad. Officia anim laborum commodo et excepteur quis consectetur et labore amet commodo ea consectetur esse. Laboris ea sit officia pariatur est enim irure consequat non consectetur commodo mollit reprehenderit incididunt.\r\n", + "address": "3 Pierrepont Street", + "city": "Ferney", + "state": "North Carolina", + "zip": 89796, + "country": "Turkey", + "email": "robertrussell@scentric.com", + "phone": "(833) 512-2279", + "color": "rgb(198,215,99)" + }, + { + "index": 175, + "name": "Acosta Herman", + "first": "Becker", + "last": "Le", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_pandajs/73.jpg", + "boolean": false, + "guid": "fc0ce1b2-66dd-4e0a-8a4d-192b563ab3af", + "integer": 17, + "date": "Mon Jul 25 2011 16:50:08 GMT-0700 (PDT)", + "shortText": "veniam officia ipsum ad do", + "mediumText": "Mollit do laborum aliquip elit occaecat qui do. Ullamco mollit velit pariatur amet exercitation.", + "longText": "Excepteur voluptate irure proident enim nulla eiusmod anim enim nisi id et incididunt velit. Id anim excepteur excepteur aliquip elit ex. Voluptate id veniam sunt occaecat consequat ad aliquip sunt aliquip esse aute tempor. Mollit cupidatat reprehenderit et eu excepteur sint amet elit ad veniam nostrud laboris. Voluptate sint amet anim cupidatat velit ut incididunt ex laborum ea. Et minim pariatur laboris nostrud cillum aute Lorem ipsum adipisicing dolore nulla magna. Incididunt incididunt occaecat consequat proident sint sit mollit qui nulla sint.\r\n", + "address": "2 Moore Place", + "city": "Cavalero", + "state": "Connecticut", + "zip": 55194, + "country": "Solomon Islands", + "email": "beckerle@scentric.com", + "phone": "(968) 520-2781", + "color": "rgb(220,63,86)" + }, + { + "index": 176, + "name": "Lucy England", + "first": "Wilma", + "last": "Spencer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wellnext/73.jpg", + "boolean": false, + "guid": "912d4bf7-1356-4736-9560-45d3c9f56f54", + "integer": 99, + "date": "Fri Jun 24 1977 07:55:22 GMT-0700 (PDT)", + "shortText": "qui exercitation reprehenderit", + "mediumText": "Ipsum voluptate ex cupidatat sunt sit fugiat amet quis irure ex. Esse esse deserunt magna non occaecat ullamco aliqua do laboris ad exercitation elit mollit enim. Enim irure commodo enim excepteur officia officia esse tempor fugiat nisi cillum. Reprehenderit nulla sunt exercitation est sunt laboris aliquip excepteur in eu anim.", + "longText": "In et labore id deserunt do non dolor reprehenderit nisi magna veniam veniam eiusmod. Deserunt Lorem non adipisicing non pariatur. Est cillum sint proident sint proident eu aliqua commodo. Pariatur qui laboris eiusmod amet mollit ullamco amet. Voluptate cillum quis aliquip elit ad et nulla sit et mollit irure voluptate. Et in ullamco in adipisicing deserunt. Tempor consectetur exercitation mollit incididunt et sunt minim.\r\n", + "address": "4 Milford Street", + "city": "Wacissa", + "state": "South Carolina", + "zip": 79777, + "country": "Malawi", + "email": "wilmaspencer@scentric.com", + "phone": "(850) 473-3863", + "color": "rgb(73,237,50)" + }, + { + "index": 177, + "name": "Selena Beach", + "first": "Florence", + "last": "Charles", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/skylark64/73.jpg", + "boolean": false, + "guid": "ed115112-8db3-4cae-a08d-983100a10c85", + "integer": 88, + "date": "Wed Jun 19 1996 04:58:57 GMT-0700 (PDT)", + "shortText": "quis nulla", + "mediumText": "Duis dolor id et elit nostrud eiusmod labore eiusmod incididunt eu ex enim magna exercitation. Velit do elit pariatur proident.", + "longText": "Eiusmod qui voluptate do commodo exercitation ex proident laborum ullamco. Laboris ad officia dolore duis minim. In proident ullamco et duis qui ullamco exercitation. Exercitation est consectetur minim exercitation commodo sunt officia exercitation laboris. Laborum elit in incididunt quis et pariatur adipisicing.\r\nLorem esse ea sit nostrud adipisicing laborum nostrud tempor commodo adipisicing. Et officia dolore do ex sit in laborum officia occaecat laboris duis irure voluptate. Labore mollit reprehenderit ullamco ut velit voluptate. Amet adipisicing Lorem officia laboris enim nostrud velit non velit culpa et Lorem. Deserunt qui pariatur occaecat sit cillum cupidatat deserunt dolore ut anim labore in ut. Minim velit do dolor deserunt duis. Velit ad aliquip exercitation nulla voluptate dolore exercitation velit laborum.\r\n", + "address": "2 Chester Avenue", + "city": "Faxon", + "state": "Michigan", + "zip": 60214, + "country": "Samoa", + "email": "florencecharles@scentric.com", + "phone": "(854) 538-2605", + "color": "rgb(142,199,175)" + }, + { + "index": 178, + "name": "Leon Reilly", + "first": "Trevino", + "last": "Schneider", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lisekyle/73.jpg", + "boolean": false, + "guid": "f0c018ba-4648-46ab-bd0f-3d92f2370954", + "integer": 92, + "date": "Fri May 13 1983 05:44:49 GMT-0700 (PDT)", + "shortText": "sunt", + "mediumText": "Mollit velit id proident ex pariatur ea.", + "longText": "Enim ex tempor ad esse cupidatat officia aute. Ea duis Lorem culpa voluptate duis deserunt pariatur tempor Lorem aliqua nostrud et Lorem minim. Et consequat adipisicing esse labore. Sunt consequat cupidatat proident magna dolore. Labore irure magna est do sint et labore pariatur laboris tempor sint aute tempor. Quis nulla non qui eiusmod Lorem nulla.\r\nUllamco cillum magna exercitation reprehenderit cupidatat officia nostrud veniam laborum ad adipisicing. Sint laborum sit enim nostrud sint proident consectetur. Culpa reprehenderit ullamco est eiusmod qui non eiusmod elit deserunt nisi exercitation velit occaecat quis. Commodo est qui velit irure eiusmod officia.\r\nDolor Lorem officia qui sint duis nostrud esse qui magna qui. Duis ullamco irure labore ut mollit. Deserunt in laboris proident culpa sit eu.\r\nAnim minim excepteur id reprehenderit laboris adipisicing Lorem non. Aliqua anim anim cillum aliqua excepteur elit ut. Tempor aliqua qui esse nulla fugiat minim proident dolore ea officia culpa reprehenderit ullamco cupidatat.\r\n", + "address": "2 Barbey Street", + "city": "Spelter", + "state": "Maine", + "zip": 33752, + "country": "United Kingdom", + "email": "trevinoschneider@scentric.com", + "phone": "(919) 571-3870", + "color": "rgb(199,207,59)" + }, + { + "index": 179, + "name": "Margie Caldwell", + "first": "Drake", + "last": "Frost", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/zumwalt/73.jpg", + "boolean": false, + "guid": "1c2ba2bb-24b8-4fa7-8755-0fd72201985e", + "integer": 26, + "date": "Thu Oct 27 1977 23:39:23 GMT-0700 (PDT)", + "shortText": "aliqua labore id excepteur", + "mediumText": "Sit in irure voluptate ex sint cillum sint duis cillum.", + "longText": "Reprehenderit eiusmod adipisicing officia consectetur ullamco. Aliqua reprehenderit esse do labore mollit mollit non tempor anim anim incididunt. Id reprehenderit amet laborum do.\r\nEa eu nisi do tempor exercitation exercitation aliquip cupidatat ut veniam esse aliqua nostrud ea. Laboris in laborum nostrud proident duis elit fugiat in labore. Cupidatat exercitation culpa elit sit do fugiat. Id eiusmod est ut deserunt tempor quis. Est sint sunt occaecat exercitation aliquip mollit minim aute non esse. Ex officia Lorem qui eu adipisicing occaecat do. Aute cupidatat incididunt velit ut cillum id proident labore id pariatur mollit fugiat.\r\nIncididunt deserunt cillum officia eiusmod enim elit laboris. Labore elit excepteur adipisicing eiusmod consectetur proident exercitation pariatur. Lorem labore excepteur cillum duis ea adipisicing fugiat adipisicing sit cupidatat. Culpa proident proident aute nostrud ad occaecat velit in. Labore non ad cillum adipisicing quis sit. Occaecat minim cupidatat reprehenderit veniam est incididunt sunt ut aliquip adipisicing.\r\nQui sunt exercitation aute sint pariatur. Id do do dolore sunt ad sit velit exercitation proident adipisicing proident ea qui. In quis excepteur incididunt in. Enim adipisicing laborum nulla nisi commodo incididunt non ipsum ex sint aliquip. Elit labore ex ullamco veniam id.\r\n", + "address": "4 Wortman Avenue", + "city": "Cetronia", + "state": "Kansas", + "zip": 73451, + "country": "French Guiana", + "email": "drakefrost@scentric.com", + "phone": "(993) 559-2273", + "color": "rgb(240,117,178)" + }, + { + "index": 180, + "name": "Floyd Whitehead", + "first": "Monique", + "last": "Barron", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_winslet/73.jpg", + "boolean": true, + "guid": "5505bea5-acce-4d67-b22e-850228beae52", + "integer": 30, + "date": "Wed Jul 15 2009 01:03:18 GMT-0700 (PDT)", + "shortText": "id eu", + "mediumText": "Quis et sit amet reprehenderit esse ex velit. Id Lorem ea irure consectetur deserunt excepteur. Consectetur reprehenderit qui eu pariatur proident do adipisicing consectetur nulla amet nulla ea laboris magna. Occaecat ut commodo non esse aliqua est velit amet deserunt sit enim adipisicing in. Mollit aliquip nostrud nisi esse.", + "longText": "In enim consectetur aliqua tempor do sint fugiat officia ea proident esse cillum. Lorem magna ipsum amet aute deserunt. Pariatur aliqua dolor veniam in. Consequat dolore et cillum ea mollit esse dolor. Ipsum aute officia pariatur id do fugiat nisi incididunt mollit labore voluptate deserunt duis.\r\nNulla in sit incididunt nisi ad laborum tempor ipsum irure aliquip aliquip id nostrud officia. Pariatur fugiat consequat excepteur aliqua enim. Sunt minim dolore elit esse nostrud. Laboris eiusmod officia incididunt Lorem ullamco non amet ut in veniam cupidatat. Id nisi cupidatat ea esse exercitation fugiat minim sit ex exercitation.\r\nExercitation non reprehenderit ipsum aliqua quis. Qui labore mollit voluptate aliqua nostrud ex id sit pariatur nostrud veniam in qui. In consequat ullamco commodo deserunt magna Lorem labore ullamco velit deserunt veniam cupidatat elit. Dolor fugiat ea in magna dolor occaecat aliquip cillum id. Ipsum amet veniam dolore incididunt nostrud cupidatat velit velit exercitation cupidatat ad enim do deserunt. Mollit officia sit anim elit. Veniam ipsum nulla culpa occaecat non mollit.\r\nAute ex quis est et laborum dolore duis velit. Dolor laborum Lorem occaecat consectetur eu deserunt cillum ea culpa culpa est enim culpa. Ut veniam do anim consectetur sit id. Officia fugiat ad dolor veniam eu deserunt eiusmod proident enim veniam nulla. Exercitation proident aute esse fugiat veniam cupidatat. Proident non incididunt duis eiusmod officia nulla elit eiusmod adipisicing est.\r\nIn qui aliqua nisi eiusmod proident exercitation ad in sit elit minim amet. Culpa est Lorem Lorem irure exercitation et dolore. Qui sit dolor velit do laborum voluptate excepteur qui nostrud.\r\n", + "address": "4 Pershing Loop", + "city": "Floriston", + "state": "Iowa", + "zip": 14548, + "country": "Latvia", + "email": "moniquebarron@scentric.com", + "phone": "(944) 573-3509", + "color": "rgb(215,200,175)" + }, + { + "index": 181, + "name": "Langley Kidd", + "first": "Lowe", + "last": "Luna", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kikillo/73.jpg", + "boolean": false, + "guid": "5934f42f-1f3e-41a3-8465-8453fbd97653", + "integer": 87, + "date": "Sat Jul 27 2002 15:35:16 GMT-0700 (PDT)", + "shortText": "ex laborum", + "mediumText": "Proident excepteur duis dolor nostrud aute in aliquip excepteur exercitation laboris fugiat consectetur amet.", + "longText": "Elit ea pariatur aliqua minim enim voluptate est voluptate dolore eiusmod mollit dolor voluptate nisi. Qui et ex fugiat irure velit voluptate. Deserunt sunt enim et dolor dolor occaecat magna est aliquip officia tempor minim et. Ex aliquip duis labore nisi amet deserunt et quis non elit consequat et fugiat.\r\nAd est irure veniam aliqua sint ad. Cillum quis ex tempor ex irure proident duis id pariatur ipsum irure. Id ea ad excepteur enim voluptate consectetur id. Non cupidatat do in tempor aute commodo in magna. Non irure minim Lorem sunt ex nulla cillum.\r\nEx commodo proident tempor incididunt velit velit mollit sint excepteur quis adipisicing nostrud laboris irure. Commodo proident nisi enim ipsum nostrud ullamco elit aliquip velit fugiat eiusmod. Ipsum do qui nostrud amet ullamco et adipisicing aliquip voluptate voluptate laborum. Laborum ex aute tempor esse velit ut.\r\nVeniam esse cillum ut cupidatat reprehenderit minim eu elit minim velit aute consequat tempor tempor. Nisi et aute ea elit veniam sit dolore proident minim. Ut tempor aute dolor aliquip. Do consequat tempor nulla tempor labore duis eu commodo aliquip commodo id fugiat tempor enim.\r\n", + "address": "3 Caton Place", + "city": "Stevens", + "state": "Vermont", + "zip": 87533, + "country": "Netherlands Antilles", + "email": "loweluna@scentric.com", + "phone": "(996) 562-3285", + "color": "rgb(206,231,90)" + }, + { + "index": 182, + "name": "Eunice Pace", + "first": "Margaret", + "last": "Mueller", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hndragnwn/73.jpg", + "boolean": true, + "guid": "3f9b897f-6674-476f-9dd8-31c86f3401c7", + "integer": 98, + "date": "Mon Jan 19 1970 12:04:31 GMT-0800 (PST)", + "shortText": "exercitation eu ipsum ipsum cillum", + "mediumText": "Ullamco ullamco velit sit et elit et excepteur laboris reprehenderit.", + "longText": "Officia cupidatat consectetur tempor amet. Excepteur aute elit do eiusmod aute voluptate quis est voluptate occaecat ut pariatur. Aliqua incididunt cillum proident aute quis deserunt. Voluptate do magna nulla reprehenderit ea eiusmod minim aliquip do est laboris. Velit consequat ut veniam ut cillum dolore tempor nostrud eu. Non Lorem Lorem non nostrud minim commodo minim qui non. Velit aliqua duis occaecat dolor laborum sint est culpa nulla elit occaecat reprehenderit consectetur culpa.\r\nSunt non id labore Lorem do Lorem enim. Adipisicing deserunt excepteur est ipsum nulla deserunt in. Proident tempor dolore sint ullamco proident velit. Nisi Lorem enim ullamco elit culpa occaecat labore officia consequat enim. Eu consectetur ad anim incididunt sit excepteur exercitation cupidatat enim proident irure sunt non cupidatat. Id aute cupidatat irure pariatur laboris nostrud. Est enim commodo quis anim incididunt nostrud proident occaecat anim.\r\n", + "address": "4 Erasmus Street", + "city": "Watrous", + "state": "Nebraska", + "zip": 91145, + "country": "Colombia", + "email": "margaretmueller@scentric.com", + "phone": "(881) 442-3317", + "color": "rgb(248,53,68)" + }, + { + "index": 183, + "name": "Hess Ross", + "first": "Knowles", + "last": "Drake", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fc987/73.jpg", + "boolean": false, + "guid": "b34d191e-f646-4fd0-8e89-ed523ceb5127", + "integer": 73, + "date": "Tue Jul 11 2006 08:13:58 GMT-0700 (PDT)", + "shortText": "quis reprehenderit amet", + "mediumText": "Id ut laboris aliquip dolor aliqua incididunt cillum dolore qui aliqua. Tempor officia esse aliquip irure cillum ipsum esse ea ea. Aliqua pariatur laboris cillum do ad ea pariatur nostrud amet amet do.", + "longText": "Tempor mollit exercitation sit elit duis magna et veniam nisi ex. Sit amet veniam velit commodo ad proident duis exercitation consequat eiusmod officia pariatur. Tempor occaecat consequat aliquip cupidatat veniam ad qui enim pariatur.\r\nIpsum dolor occaecat in minim sint eu. Non duis anim quis pariatur qui adipisicing sunt laborum sunt cillum exercitation sit. Reprehenderit amet elit labore ad culpa excepteur. Cillum commodo eu dolore dolor ea velit id. Eu Lorem nostrud esse elit aliqua in deserunt elit exercitation sunt sunt aliquip eu amet. Cupidatat incididunt aliquip anim proident magna velit in veniam tempor.\r\nEx non ex irure exercitation sint ad commodo commodo. Exercitation eiusmod qui est labore non velit velit velit voluptate id. Nisi est velit ut do velit quis ipsum voluptate. In consequat esse tempor cillum fugiat ex. Ut est mollit consequat duis esse non magna incididunt eu laboris velit incididunt ullamco. Adipisicing enim sint amet velit do irure. Exercitation labore deserunt pariatur est exercitation veniam laborum ad.\r\n", + "address": "2 Indiana Place", + "city": "Lawrence", + "state": "Florida", + "zip": 64631, + "country": "Wallis and Futuna Islands", + "email": "knowlesdrake@scentric.com", + "phone": "(995) 490-2638", + "color": "rgb(50,148,194)" + }, + { + "index": 184, + "name": "Terri Mayo", + "first": "Rachael", + "last": "Sharp", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lettershoppe/73.jpg", + "boolean": false, + "guid": "c14b363a-8dae-4656-908d-6fe410ad32e5", + "integer": 98, + "date": "Sat Mar 10 1973 06:27:24 GMT-0800 (PST)", + "shortText": "occaecat consequat minim enim aute", + "mediumText": "Officia ex pariatur velit sint officia sunt deserunt nisi. Exercitation sit commodo sit quis dolor esse pariatur.", + "longText": "Eiusmod culpa voluptate eiusmod excepteur pariatur mollit enim irure ad commodo. Irure reprehenderit ea officia eu ullamco occaecat ad exercitation aute reprehenderit est adipisicing adipisicing est. Exercitation pariatur cillum exercitation laborum sint pariatur do mollit ipsum cillum exercitation. Non duis aliquip veniam occaecat fugiat cupidatat Lorem eu.\r\n", + "address": "3 Jamison Lane", + "city": "Hayden", + "state": "New Jersey", + "zip": 21158, + "country": "Bouvet Island", + "email": "rachaelsharp@scentric.com", + "phone": "(920) 458-2923", + "color": "rgb(224,219,109)" + }, + { + "index": 185, + "name": "Lorie Stephenson", + "first": "Vaughan", + "last": "Hardin", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akashsharma39/73.jpg", + "boolean": true, + "guid": "3277febc-0447-4b3c-ac7a-f98c0a22432d", + "integer": 43, + "date": "Sat Mar 30 1974 11:23:57 GMT-0700 (PDT)", + "shortText": "qui pariatur voluptate eiusmod elit", + "mediumText": "Tempor mollit fugiat ex quis excepteur.", + "longText": "Elit eiusmod eu irure nostrud labore enim. Incididunt esse aliquip amet in nulla mollit amet nostrud est mollit. Eiusmod cupidatat et esse ea quis sunt ex. Ut duis fugiat laboris eiusmod excepteur. Occaecat do incididunt mollit officia. Enim ea sunt ad amet labore enim esse nulla occaecat eiusmod.\r\n", + "address": "2 Truxton Street", + "city": "Caroleen", + "state": "Wisconsin", + "zip": 98807, + "country": "Niue", + "email": "vaughanhardin@scentric.com", + "phone": "(954) 576-2820", + "color": "rgb(76,217,135)" + }, + { + "index": 186, + "name": "Jacqueline Estes", + "first": "Gale", + "last": "Hutchinson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fgin69/73.jpg", + "boolean": false, + "guid": "07994b68-513f-4c9d-a92d-edfc3ade4825", + "integer": 17, + "date": "Sun Jul 16 2000 16:12:37 GMT-0700 (PDT)", + "shortText": "sunt laboris tempor ut do", + "mediumText": "Nulla consequat dolore enim velit excepteur. Qui ipsum elit occaecat ea in. Laborum irure ipsum consectetur ullamco quis consectetur enim. Dolore laboris nisi excepteur nostrud. Aliqua ipsum nostrud velit labore tempor nisi eu.", + "longText": "Adipisicing ipsum exercitation culpa consectetur voluptate aliqua proident fugiat ut laborum ex deserunt. Et ullamco non sint tempor do officia cillum ex quis enim dolor aliqua. Cupidatat id incididunt irure ad quis commodo ut laborum labore. Dolore cillum reprehenderit adipisicing nulla qui in ea cillum enim excepteur quis sit sint non. Duis reprehenderit consequat eu eiusmod id.\r\nQui velit aliquip fugiat reprehenderit eiusmod mollit ex commodo mollit anim occaecat excepteur duis. Eiusmod nisi et in ex laborum. Nulla officia nulla nostrud ullamco proident ut ipsum excepteur. Occaecat et quis est eu aliqua. Labore enim esse ullamco est laborum nulla incididunt fugiat cillum pariatur sit et. Sunt irure duis laborum id ea Lorem sint.\r\nExercitation anim duis ad minim eiusmod eiusmod dolor mollit enim qui laborum ad aliquip magna. Reprehenderit veniam exercitation minim incididunt excepteur exercitation tempor. Pariatur do esse consequat do. Voluptate do pariatur qui aliqua laboris aute consequat eu reprehenderit dolore. Laborum amet in veniam sit. Adipisicing sint labore officia deserunt nulla do cillum aliquip ipsum minim anim.\r\nDolore sit pariatur dolore proident est minim irure do qui laborum laboris. Sunt quis nisi consequat tempor est ullamco amet sunt dolor. Minim voluptate cupidatat eu pariatur aliquip esse minim voluptate commodo esse. Nulla non minim eu sunt nostrud aliquip. Elit ullamco do sunt mollit labore officia quis proident fugiat amet labore. Culpa elit nisi incididunt ipsum anim non. Cupidatat exercitation laboris pariatur reprehenderit culpa.\r\n", + "address": "3 Columbia Street", + "city": "Clayville", + "state": "Washington", + "zip": 55909, + "country": "Sweden", + "email": "galehutchinson@scentric.com", + "phone": "(853) 433-2272", + "color": "rgb(234,208,240)" + }, + { + "index": 187, + "name": "Linda Steele", + "first": "Weber", + "last": "Barlow", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pdugan19/73.jpg", + "boolean": false, + "guid": "39847382-b9bd-4f9d-823a-9a8ff0b6a952", + "integer": 57, + "date": "Sun May 24 1992 04:47:58 GMT-0700 (PDT)", + "shortText": "aliqua ut", + "mediumText": "Ea excepteur consequat Lorem aute. Id nisi est ad ipsum enim. Consequat elit do mollit cillum. Ea voluptate tempor laborum sit. Culpa ex officia mollit et in ullamco.", + "longText": "Culpa deserunt velit enim amet excepteur. Labore anim laboris aliquip nisi amet ad. Irure duis cillum exercitation labore do deserunt ullamco nulla ea do mollit. Et ut dolor cillum laboris ex dolor.\r\n", + "address": "2 Bragg Court", + "city": "Rehrersburg", + "state": "Oregon", + "zip": 16492, + "country": "Bolivia", + "email": "weberbarlow@scentric.com", + "phone": "(816) 478-3071", + "color": "rgb(253,113,243)" + }, + { + "index": 188, + "name": "Humphrey Rocha", + "first": "Watson", + "last": "Martin", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bluehaus/73.jpg", + "boolean": true, + "guid": "bf36a00a-c264-4e8c-b2cf-37b558a6331d", + "integer": 56, + "date": "Wed Feb 18 1981 11:26:50 GMT-0800 (PST)", + "shortText": "ad sint", + "mediumText": "In ea ea aute est aute. Ex fugiat ullamco duis deserunt quis eiusmod non do quis enim officia ea consequat. Lorem cupidatat nisi officia irure veniam consectetur commodo cupidatat et laborum exercitation exercitation veniam proident. Enim minim non velit dolore esse aute ullamco officia cillum ea deserunt magna ut.", + "longText": "Aliqua laborum non officia aute deserunt deserunt voluptate sunt sint do do culpa. Adipisicing anim qui id elit consectetur ad veniam nostrud magna. Culpa dolor culpa irure minim elit occaecat eiusmod.\r\nDo dolore cillum incididunt reprehenderit laboris proident mollit occaecat laborum eu. Tempor aute aliqua aute Lorem velit sunt sint ad ad. Eu minim adipisicing duis nulla nulla et excepteur occaecat. Consectetur aliqua excepteur reprehenderit eu reprehenderit mollit veniam adipisicing ut culpa consectetur enim. Nisi consequat sit fugiat anim ut anim. Culpa et occaecat consectetur reprehenderit. Id sunt mollit labore ipsum eiusmod est adipisicing dolor esse.\r\n", + "address": "3 Main Street", + "city": "Chumuckla", + "state": "Illinois", + "zip": 25127, + "country": "Barbados", + "email": "watsonmartin@scentric.com", + "phone": "(870) 511-2367", + "color": "rgb(180,100,61)" + }, + { + "index": 189, + "name": "Carter Berry", + "first": "Copeland", + "last": "Fernandez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/angeloffonline/73.jpg", + "boolean": true, + "guid": "c95f429b-45ba-4d2e-9fb0-990a65f0f1ed", + "integer": 94, + "date": "Mon Sep 10 1973 19:09:26 GMT-0700 (PDT)", + "shortText": "nostrud elit", + "mediumText": "Sint ullamco ipsum commodo nisi duis exercitation reprehenderit minim id elit ipsum incididunt id minim.", + "longText": "Ea et officia cillum labore consectetur proident fugiat veniam. Adipisicing proident quis nulla duis consectetur culpa deserunt. Aliquip ea non incididunt nisi. Culpa irure adipisicing est aute excepteur sunt laboris minim officia. Minim dolor incididunt deserunt aliqua qui velit laborum. Sint eu sunt ut ea ut cillum tempor excepteur sit voluptate.\r\nLorem nostrud sit dolor dolor consectetur labore anim ad excepteur ipsum eu sunt consequat dolore. Velit irure officia esse mollit voluptate aliquip fugiat enim ipsum minim occaecat. Consectetur tempor irure sint quis irure anim. Nulla esse adipisicing nulla eiusmod dolor eu id dolor ipsum qui nostrud. In excepteur eiusmod ipsum commodo eu labore duis irure adipisicing in deserunt commodo.\r\nExcepteur ullamco ex est occaecat sit Lorem eu. Amet pariatur dolor reprehenderit irure dolor et culpa. Laboris cupidatat est esse veniam qui consectetur eu eu irure. Exercitation eiusmod ipsum ipsum non esse consectetur nostrud enim nostrud eu adipisicing culpa. Lorem aliquip duis tempor proident do aliqua cillum. Esse aliquip fugiat veniam aliquip magna pariatur.\r\n", + "address": "3 Cooke Court", + "city": "Brethren", + "state": "West Virginia", + "zip": 48527, + "country": "Haiti", + "email": "copelandfernandez@scentric.com", + "phone": "(916) 428-2390", + "color": "rgb(225,220,78)" + }, + { + "index": 190, + "name": "Mcgee Price", + "first": "Christian", + "last": "Brown", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/yalozhkin/73.jpg", + "boolean": true, + "guid": "25386af0-7fef-4915-afcb-e29e3996bfc1", + "integer": 99, + "date": "Fri Jun 10 1977 22:37:49 GMT-0700 (PDT)", + "shortText": "velit aliqua qui", + "mediumText": "Proident velit et consequat qui veniam et eiusmod officia sint laborum Lorem sit exercitation. Voluptate dolore qui excepteur eu tempor et irure ea id consectetur. Nostrud ullamco quis nulla laboris labore qui ullamco occaecat veniam. Ut excepteur tempor in non cillum deserunt dolor velit magna excepteur est ullamco. Officia quis adipisicing aliquip Lorem consectetur veniam labore non exercitation.", + "longText": "Anim officia fugiat aliquip deserunt enim culpa commodo. Amet mollit labore tempor adipisicing cupidatat aute sunt incididunt sit duis cupidatat fugiat nisi labore. Eiusmod non sunt commodo laborum ex cillum anim eu mollit. Duis in duis cillum commodo officia qui Lorem duis do exercitation amet occaecat.\r\nNisi culpa magna dolore ut tempor amet commodo. Nisi ut mollit et sint id aliquip Lorem quis ipsum non sunt. Ad adipisicing qui ad nulla cillum id culpa. Occaecat duis magna deserunt dolor adipisicing ex in Lorem dolor occaecat enim laboris cupidatat eiusmod.\r\nDo velit occaecat cupidatat labore ut qui et ipsum pariatur excepteur aliqua sunt ad. Ut eu eu consectetur ut laborum aute culpa. Consequat qui irure ad magna qui exercitation nostrud ex ullamco Lorem consequat. Esse sunt do sunt consectetur tempor.\r\n", + "address": "4 Withers Street", + "city": "Aberdeen", + "state": "Mississippi", + "zip": 14870, + "country": "Heard and McDonald Islands", + "email": "christianbrown@scentric.com", + "phone": "(981) 586-2200", + "color": "rgb(211,68,198)" + }, + { + "index": 191, + "name": "Browning Harrison", + "first": "Wanda", + "last": "Dorsey", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/solid_color/73.jpg", + "boolean": false, + "guid": "18e2fdcf-33bc-447e-9d9e-95cd992f3b01", + "integer": 99, + "date": "Fri Apr 12 1996 19:22:55 GMT-0700 (PDT)", + "shortText": "nostrud", + "mediumText": "Minim velit ex mollit officia deserunt mollit.", + "longText": "In enim culpa ea quis occaecat Lorem voluptate voluptate. Ad occaecat dolore cillum exercitation laborum. Amet ex labore in sint dolor Lorem eiusmod elit voluptate magna. Dolore quis dolore ullamco velit. Occaecat incididunt ex laboris nulla sit amet sit. Proident nisi elit exercitation sunt incididunt ipsum ex laboris aliquip elit id fugiat id. Sint nulla irure labore mollit reprehenderit irure cupidatat exercitation.\r\nProident aliqua aliquip irure reprehenderit aliquip et nulla in ea do cillum. Anim esse culpa adipisicing do reprehenderit aliquip elit sunt fugiat velit aliqua excepteur. Irure nulla nulla elit esse qui magna qui adipisicing eu consectetur ea. Sint magna labore esse occaecat ad est. Voluptate ex sit anim ipsum consequat est aliquip quis. Quis eu anim officia reprehenderit dolore veniam labore.\r\nEiusmod quis cillum nisi officia. Consequat laborum amet enim deserunt occaecat cillum. Labore cupidatat eu sit officia ea.\r\nCillum mollit occaecat dolor labore dolore sint laborum irure commodo magna id officia. Ullamco minim reprehenderit nulla ea non commodo. Amet eu fugiat officia quis labore pariatur. Duis anim ad eiusmod magna ad voluptate dolore anim anim exercitation reprehenderit cillum labore. Nulla esse nisi ipsum cillum. Nulla incididunt consequat ut elit aute et Lorem ea enim do sint id proident. Voluptate et magna dolor deserunt sint laborum eu.\r\nAliquip laborum labore exercitation culpa duis sunt magna consequat excepteur. Sunt incididunt ad consectetur ullamco sit esse et fugiat mollit irure adipisicing. Ipsum enim enim sunt est. Ipsum officia incididunt dolore aute elit elit fugiat est commodo esse. Sunt minim et cillum excepteur deserunt. In id mollit quis et occaecat cupidatat irure velit dolor reprehenderit in commodo ad velit. Excepteur est et magna elit fugiat amet cupidatat ea anim.\r\n", + "address": "4 Irving Street", + "city": "Winesburg", + "state": "Rhode Island", + "zip": 33983, + "country": "United States", + "email": "wandadorsey@scentric.com", + "phone": "(857) 473-2997", + "color": "rgb(188,149,116)" + }, + { + "index": 192, + "name": "Beth Clark", + "first": "Stuart", + "last": "Potter", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/panghal0/73.jpg", + "boolean": false, + "guid": "885c3d9f-8acb-4fa6-82d0-3b1f8066fa8e", + "integer": 90, + "date": "Fri Sep 25 1998 20:49:56 GMT-0700 (PDT)", + "shortText": "ipsum voluptate qui est", + "mediumText": "Elit proident mollit qui reprehenderit labore minim aliquip ut ea dolore aliquip qui. Commodo sint non minim pariatur veniam.", + "longText": "Aliqua deserunt officia pariatur fugiat dolore magna pariatur exercitation elit esse elit. Ad enim consectetur nisi est amet irure aliqua nulla labore consequat cillum. In cupidatat laborum deserunt aliqua veniam mollit veniam nulla ex.\r\nEiusmod sint nostrud duis ad minim magna sit consequat commodo nostrud do laborum mollit id. Consequat exercitation dolore mollit exercitation aute id. Veniam minim laboris Lorem enim aliqua nulla et. Aliquip dolor officia duis cupidatat enim ad velit ad. Fugiat irure Lorem sunt deserunt consectetur id cillum elit. Nulla officia commodo enim labore sit dolore ipsum ad sint nisi consectetur esse.\r\n", + "address": "4 Dewitt Avenue", + "city": "Somerset", + "state": "Georgia", + "zip": 62165, + "country": "Jamaica", + "email": "stuartpotter@scentric.com", + "phone": "(868) 542-3034", + "color": "rgb(93,172,196)" + }, + { + "index": 193, + "name": "Neal Mcgee", + "first": "Daisy", + "last": "Lucas", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/renettarenula/73.jpg", + "boolean": true, + "guid": "a86f246d-1555-4d68-b633-713d56a7357a", + "integer": 66, + "date": "Wed Jan 22 1975 14:12:25 GMT-0800 (PST)", + "shortText": "aliquip quis", + "mediumText": "Pariatur nostrud irure dolor ad et. Commodo tempor mollit nisi consequat officia ex exercitation.", + "longText": "Velit deserunt ipsum Lorem id laboris et laborum in. Aute ea consequat elit magna sit ad voluptate nostrud dolor pariatur labore ipsum mollit consectetur. Fugiat velit ipsum et aute elit. Aliqua Lorem ullamco ad mollit ex. Sint cupidatat esse minim exercitation. Laborum ipsum quis ut commodo proident elit et et. Duis excepteur ut sit duis cupidatat mollit mollit.\r\nVeniam pariatur minim duis esse est mollit exercitation esse enim. Esse aliqua labore velit minim qui cillum excepteur qui occaecat excepteur quis Lorem sint. Culpa sint do commodo pariatur reprehenderit et adipisicing. Dolore Lorem minim in pariatur nulla incididunt magna amet qui. Excepteur velit adipisicing cupidatat aliquip cupidatat consectetur adipisicing consequat fugiat eiusmod consectetur consequat. Ea laborum occaecat voluptate do.\r\nCommodo minim adipisicing cupidatat labore velit. Commodo eu officia sunt ea sit exercitation nisi quis fugiat non Lorem duis. Culpa adipisicing mollit aliqua dolore aute mollit veniam non qui occaecat sunt.\r\n", + "address": "3 Cadman Plaza", + "city": "Kula", + "state": "New Mexico", + "zip": 50567, + "country": "Sao Tome and Principe", + "email": "daisylucas@scentric.com", + "phone": "(922) 417-2649", + "color": "rgb(242,147,241)" + }, + { + "index": 194, + "name": "Wall Vasquez", + "first": "Kara", + "last": "Avery", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kevin_granger/73.jpg", + "boolean": true, + "guid": "4ca5b46e-7470-4364-8a00-55922d238841", + "integer": 2, + "date": "Sun Oct 27 2002 02:24:06 GMT-0800 (PST)", + "shortText": "consequat ut", + "mediumText": "Culpa id occaecat pariatur eu id adipisicing est non adipisicing nisi et nostrud eu voluptate. Reprehenderit sit adipisicing eiusmod ex excepteur occaecat Lorem consectetur. Mollit exercitation ex adipisicing culpa non ullamco aute aliqua laborum anim deserunt id. Est magna do Lorem Lorem Lorem officia ullamco in eiusmod ut.", + "longText": "Nostrud eu elit voluptate consequat nisi. Dolor qui consequat minim ea sit eiusmod duis aliquip ex. Labore aliquip culpa quis velit id fugiat. Veniam exercitation exercitation aliquip magna eiusmod ad cupidatat sint ullamco consequat pariatur est consequat deserunt. Dolore qui nostrud velit labore magna proident enim in aliquip velit. Mollit ullamco sunt ut do do reprehenderit nostrud do.\r\nConsequat eiusmod adipisicing qui exercitation do minim consequat deserunt non elit sint. Elit dolore ullamco nostrud duis fugiat minim mollit Lorem. Occaecat incididunt officia do tempor dolor velit excepteur laborum. Occaecat cillum aliquip cupidatat anim. Laborum nostrud occaecat irure qui. Id tempor nulla enim irure cillum non culpa non ea enim ad tempor.\r\nQui qui laborum aliquip irure ipsum excepteur do tempor est pariatur nisi. Enim tempor et cupidatat tempor pariatur officia excepteur aliqua. Culpa incididunt laborum ea cupidatat culpa reprehenderit occaecat. Qui do dolor officia aliqua fugiat quis est ex irure. Proident dolor proident dolore proident amet duis labore sunt enim.\r\nSit incididunt deserunt veniam et velit. Eu voluptate esse dolor ullamco nisi sint reprehenderit. Excepteur pariatur est eiusmod eiusmod irure nostrud aliqua aliqua anim. Elit nisi aliqua incididunt tempor dolor commodo eiusmod sit sit ea nostrud eiusmod adipisicing ad. Et occaecat non enim proident nostrud voluptate reprehenderit veniam do exercitation pariatur ut quis. Minim labore ea deserunt deserunt eiusmod anim irure aliquip irure qui sit tempor ad.\r\nSunt sint nulla duis cupidatat. Culpa Lorem eu Lorem eu enim veniam voluptate irure nostrud est ullamco proident non. Aliqua tempor adipisicing proident aliquip cillum do esse laboris. Voluptate eu sint pariatur velit nisi dolore.\r\n", + "address": "2 Clinton Avenue", + "city": "Konterra", + "state": "Arizona", + "zip": 98633, + "country": "Belarus", + "email": "karaavery@scentric.com", + "phone": "(870) 572-3252", + "color": "rgb(192,119,159)" + }, + { + "index": 195, + "name": "Booker Mcgowan", + "first": "Olga", + "last": "Tucker", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maxsmeagol/73.jpg", + "boolean": true, + "guid": "06e837ae-b847-48ce-8b91-832435eb8867", + "integer": 72, + "date": "Sat May 02 2009 00:56:50 GMT-0700 (PDT)", + "shortText": "anim commodo exercitation", + "mediumText": "Elit id enim esse ad Lorem irure laboris in laborum dolore aliquip.", + "longText": "Deserunt eu aute cillum excepteur dolore do do enim fugiat veniam ad. Dolore dolor eu aliquip et. Culpa excepteur aliqua excepteur nisi id eiusmod Lorem eiusmod duis est proident dolor occaecat anim. Aliqua laboris in incididunt sint labore. Incididunt eiusmod quis nostrud occaecat fugiat do cupidatat eu ex reprehenderit nostrud ea proident. Ad reprehenderit consequat laborum eu elit qui occaecat. Quis non magna duis minim amet consequat sunt.\r\nEa consequat do ex qui laboris amet mollit amet nulla. Veniam in sit nisi ad pariatur nulla cillum et ea ad eiusmod. Tempor aliqua eu amet esse dolore nisi pariatur cillum in.\r\nLaborum in ipsum dolor fugiat. Nostrud consectetur nostrud proident aliqua veniam et esse. Occaecat culpa et adipisicing magna ea sint sit fugiat consectetur.\r\nUllamco amet pariatur ipsum duis incididunt laborum ad commodo. Voluptate laborum ea culpa esse nulla dolor reprehenderit duis ut laboris ullamco minim adipisicing aute. Commodo id ad dolor nulla non aliquip eiusmod sint tempor cillum enim.\r\n", + "address": "4 Monroe Place", + "city": "Waterloo", + "state": "Texas", + "zip": 94273, + "country": "Russian Federation", + "email": "olgatucker@scentric.com", + "phone": "(902) 400-3059", + "color": "rgb(136,215,127)" + }, + { + "index": 196, + "name": "Blankenship Henson", + "first": "Staci", + "last": "King", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jvhleb/73.jpg", + "boolean": false, + "guid": "c0bdad68-d176-4514-8d66-d4ae0ae03bdf", + "integer": 41, + "date": "Wed Jan 10 1990 09:56:54 GMT-0800 (PST)", + "shortText": "elit velit exercitation deserunt", + "mediumText": "Labore exercitation excepteur non incididunt. Et reprehenderit anim exercitation ipsum id eu eu irure magna et adipisicing occaecat quis.", + "longText": "Officia nulla cillum duis nostrud labore mollit eiusmod labore ut aliqua elit incididunt. Minim exercitation consequat non eiusmod sint magna voluptate incididunt ex consectetur labore sunt nulla anim. Commodo ipsum aute ipsum mollit veniam reprehenderit reprehenderit irure amet. Nisi voluptate esse consectetur cillum. In eu in duis culpa deserunt ea tempor elit. Nisi tempor fugiat pariatur irure.\r\nQuis ex sunt cupidatat anim aliqua aliquip tempor minim incididunt fugiat officia. Et sunt eiusmod eu culpa incididunt aute culpa. Excepteur Lorem ipsum dolore labore amet occaecat elit fugiat. Eiusmod velit aute occaecat sunt qui ad irure in do id consequat sunt amet cupidatat. Non dolor sunt elit velit excepteur anim deserunt ut occaecat culpa aute aute.\r\n", + "address": "2 Beach Place", + "city": "Slovan", + "state": "District Of Columbia", + "zip": 43413, + "country": "Croatia (Hrvatska)", + "email": "staciking@scentric.com", + "phone": "(964) 422-3068", + "color": "rgb(123,169,84)" + }, + { + "index": 197, + "name": "Essie Hoover", + "first": "Lourdes", + "last": "Mayer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nbirckel/73.jpg", + "boolean": true, + "guid": "d4eca4a8-9d42-4800-9776-b3f2f858b3e5", + "integer": 7, + "date": "Wed Jul 02 1986 21:56:11 GMT-0700 (PDT)", + "shortText": "incididunt nisi minim id officia", + "mediumText": "Ex sint esse labore sit cillum cupidatat cupidatat consequat dolor aliquip elit sunt fugiat quis.", + "longText": "Minim veniam dolor tempor cupidatat nostrud dolore quis sint Lorem duis eiusmod consectetur. Incididunt irure consequat ipsum id cillum culpa qui ad magna nisi. Consequat quis adipisicing dolor consequat reprehenderit incididunt ipsum enim laborum duis. Dolor sit do ex magna do culpa dolor anim incididunt tempor nisi ipsum ex voluptate. Quis exercitation dolore voluptate veniam amet nostrud dolore consequat nulla quis anim amet. Veniam ut do incididunt culpa eiusmod proident in sint nostrud voluptate.\r\nVeniam sint excepteur laboris duis nostrud. Eiusmod commodo mollit est ex incididunt fugiat labore proident. Ea enim commodo non tempor non aliquip culpa non laborum. Anim veniam sit sunt adipisicing adipisicing ea cillum duis incididunt excepteur ut ad non ad. Ex in nulla exercitation laborum Lorem ex deserunt commodo esse dolore nostrud.\r\nOccaecat reprehenderit Lorem culpa tempor dolor et dolore nulla nostrud eiusmod dolor magna voluptate aliquip. Dolore consectetur exercitation proident aliquip cupidatat veniam ea ad anim nostrud enim nulla labore. Incididunt duis deserunt laborum mollit veniam irure est ad enim commodo eiusmod.\r\nCulpa consequat duis deserunt magna laborum magna amet eiusmod. Ut ipsum id aute duis reprehenderit. Nulla nisi sint mollit amet ex esse laborum nulla ullamco cupidatat nostrud. Enim consequat aute tempor veniam adipisicing aliqua laborum irure duis mollit Lorem eu ipsum quis. Dolor culpa est et reprehenderit occaecat. Amet ex ad do mollit sint mollit non culpa nisi laborum qui aliquip sit. Laborum officia ullamco pariatur non sit esse est sint duis reprehenderit laborum aute qui.\r\nLabore dolor occaecat anim deserunt anim duis Lorem incididunt anim amet amet ut eu dolore. Consequat commodo laborum ipsum id magna non occaecat adipisicing et non. Deserunt cupidatat culpa in reprehenderit mollit aliqua aute amet.\r\n", + "address": "2 Merit Court", + "city": "Curtice", + "state": "Virgin Islands", + "zip": 27446, + "country": "Indonesia", + "email": "lourdesmayer@scentric.com", + "phone": "(844) 447-3638", + "color": "rgb(56,235,218)" + }, + { + "index": 198, + "name": "Bridget Wilcox", + "first": "Danielle", + "last": "Delacruz", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/irida168/73.jpg", + "boolean": false, + "guid": "4072c5a4-5842-4c17-85c4-d9c472e32f5d", + "integer": 1, + "date": "Thu Mar 18 1993 10:26:24 GMT-0800 (PST)", + "shortText": "quis", + "mediumText": "Lorem in aliquip ullamco labore consequat elit nisi ex tempor. Enim exercitation cupidatat in laborum nulla.", + "longText": "Veniam ea qui pariatur laborum minim. Duis tempor commodo ad qui tempor est. Do enim incididunt Lorem elit proident ex nulla elit exercitation voluptate ex laborum ullamco deserunt. Ad voluptate mollit dolore sint exercitation anim laborum voluptate Lorem deserunt. Anim ullamco minim commodo non consequat est qui nostrud ullamco laboris mollit. Ipsum laborum anim ex labore laboris cillum cupidatat elit ex enim quis.\r\nAliquip anim ea fugiat aute nostrud occaecat culpa magna ut nisi ea tempor ex. Quis dolore aute cupidatat officia esse anim occaecat. Anim occaecat incididunt sit ea enim mollit consectetur aute anim. Voluptate sint et occaecat adipisicing eiusmod excepteur aliquip eu. Cillum enim et aliquip non cupidatat eu consequat voluptate culpa veniam esse. Commodo officia enim excepteur id cupidatat.\r\nSunt reprehenderit id voluptate deserunt irure veniam fugiat elit ipsum exercitation excepteur ut. Elit ut eu in Lorem reprehenderit reprehenderit aliqua duis dolor. Velit voluptate aute magna voluptate id do mollit enim nisi consequat veniam elit cupidatat et.\r\nEt sint adipisicing officia ipsum commodo do ea sunt anim. Laborum ullamco elit aute occaecat adipisicing exercitation labore nulla ipsum. Cupidatat sit eiusmod aliqua esse eu ullamco in. Laborum eiusmod excepteur ad magna exercitation occaecat amet ad sint ullamco aliquip excepteur. Nisi sit consequat laboris nulla consequat dolore fugiat. Lorem cupidatat adipisicing do esse nisi fugiat eu culpa fugiat ullamco quis elit in.\r\nMagna in cupidatat duis dolor quis cillum occaecat. Pariatur minim ipsum irure qui officia veniam incididunt adipisicing consectetur Lorem. Ex esse cillum ut sint minim. Esse ex excepteur id do culpa laboris nisi nisi non. Exercitation minim consectetur dolor aliqua culpa commodo dolor. Ut tempor sint mollit Lorem incididunt laborum laboris sit cupidatat ex esse. Enim amet sunt sit anim veniam fugiat ea mollit.\r\n", + "address": "4 Leonora Court", + "city": "Bradenville", + "state": "Puerto Rico", + "zip": 59719, + "country": "Nauru", + "email": "danielledelacruz@scentric.com", + "phone": "(952) 548-3787", + "color": "rgb(168,148,116)" + }, + { + "index": 199, + "name": "Mccarthy Fletcher", + "first": "Janis", + "last": "Fischer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kevin_py/73.jpg", + "boolean": true, + "guid": "010c3410-51e3-409d-ae76-1ef43f546c53", + "integer": 21, + "date": "Thu Feb 27 2014 18:02:21 GMT-0800 (PST)", + "shortText": "non ullamco exercitation voluptate", + "mediumText": "Ea velit ullamco ullamco excepteur culpa est in nisi cillum amet deserunt quis laborum. Tempor in duis cupidatat proident.", + "longText": "Labore reprehenderit deserunt sint reprehenderit officia et culpa sunt exercitation velit ipsum cupidatat veniam. Cupidatat ut elit cillum cupidatat qui sit tempor veniam consequat labore dolor minim. Ad duis laboris ad voluptate ea non velit elit excepteur sint elit consectetur non. Velit tempor officia quis cillum duis et culpa voluptate ipsum.\r\nMinim labore nostrud deserunt ipsum est qui aliqua Lorem ullamco non nostrud. Reprehenderit cillum consectetur ex aute est dolor laboris minim aliqua aliqua elit aliqua. Sint pariatur nostrud enim qui do exercitation occaecat mollit anim mollit.\r\nUllamco ea adipisicing duis est consectetur enim. Cillum esse et enim duis qui quis est elit. Occaecat sunt cupidatat voluptate consectetur anim ut non deserunt veniam ullamco laboris cupidatat incididunt pariatur. Id consequat nisi non aliquip voluptate esse. Cupidatat fugiat anim anim id quis aliquip sint nisi fugiat sit. Ipsum voluptate do officia quis culpa nulla et.\r\nEt commodo ea irure aliquip consectetur dolore. Eu nostrud non ad tempor commodo. Est tempor aliquip nisi mollit tempor excepteur. Enim consectetur cillum laborum do anim labore deserunt culpa exercitation commodo dolore commodo dolore nulla. Laboris ex officia officia incididunt fugiat reprehenderit officia proident laborum qui consectetur eiusmod et. Aute adipisicing eiusmod do cupidatat id commodo. Deserunt nostrud officia nulla exercitation nostrud occaecat tempor mollit duis.\r\n", + "address": "2 Colin Place", + "city": "Greensburg", + "state": "Maryland", + "zip": 26126, + "country": "Ireland", + "email": "janisfischer@scentric.com", + "phone": "(860) 405-3588", + "color": "rgb(113,69,223)" + }, + { + "index": 200, + "name": "Judy Whitley", + "first": "Webster", + "last": "Doyle", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ratbus/73.jpg", + "boolean": false, + "guid": "f4ccb739-8e28-42fd-b1a0-4051b77a60b3", + "integer": 57, + "date": "Tue Jan 29 2002 02:38:20 GMT-0800 (PST)", + "shortText": "cillum", + "mediumText": "Eiusmod nisi excepteur labore Lorem incididunt laborum cillum sit nisi id id sint minim. Proident reprehenderit excepteur cupidatat culpa dolor labore. Irure labore aute amet nostrud ad voluptate non.", + "longText": "Eiusmod do tempor aliquip adipisicing nisi sit amet sunt amet commodo aute pariatur occaecat. Labore incididunt qui incididunt duis non dolore eu voluptate. Veniam minim esse ipsum non do. Laboris non culpa adipisicing do dolore pariatur eiusmod aute incididunt mollit Lorem labore ad ad.\r\nEt fugiat ad deserunt exercitation pariatur. Elit eiusmod ut pariatur ut adipisicing officia proident Lorem nisi id dolore sit tempor occaecat. Et minim fugiat incididunt ad ullamco Lorem.\r\nElit ea cupidatat elit adipisicing magna ex culpa aliqua enim. Enim deserunt eiusmod dolore incididunt ex veniam dolor ipsum pariatur. Ipsum elit tempor eiusmod occaecat qui fugiat quis elit non nisi anim. Fugiat ut sit cillum ad dolore duis qui. Deserunt amet et sunt nulla duis nisi ea. In elit consectetur exercitation cupidatat sit nostrud reprehenderit adipisicing aliquip.\r\n", + "address": "3 Gerry Street", + "city": "Lookingglass", + "state": "Massachusetts", + "zip": 73514, + "country": "Luxembourg", + "email": "websterdoyle@scentric.com", + "phone": "(891) 436-2016", + "color": "rgb(129,172,59)" + }, + { + "index": 201, + "name": "Ware Harding", + "first": "Phyllis", + "last": "Holcomb", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sprayaga/73.jpg", + "boolean": true, + "guid": "87934fda-9cd1-4e95-9faa-53102d8ce1f2", + "integer": 3, + "date": "Fri May 19 1972 15:51:24 GMT-0700 (PDT)", + "shortText": "deserunt laboris excepteur pariatur nostrud", + "mediumText": "Tempor Lorem occaecat magna aute aliqua eu qui commodo.", + "longText": "Laboris deserunt anim excepteur magna et. Eu ullamco laborum enim id ut excepteur nulla est quis deserunt exercitation veniam irure. Sint officia anim cupidatat nostrud culpa aute ut. Amet id elit incididunt do excepteur. Qui aute voluptate tempor non ad fugiat commodo voluptate culpa eiusmod sit enim dolor. Minim est proident anim consequat adipisicing ea reprehenderit magna labore fugiat ea anim. Velit aute incididunt aute commodo aliquip veniam do fugiat ut anim.\r\nNulla aliquip aliqua est cupidatat ex laboris id velit ullamco labore qui. Commodo labore mollit esse laboris deserunt duis. Sunt velit ex excepteur cillum officia sint ad id commodo. Irure amet est laboris officia occaecat anim id ut irure sunt aute. Deserunt quis deserunt et ad mollit nulla. Velit eu Lorem deserunt ipsum sit aute amet exercitation aliquip nulla. Nulla sunt commodo adipisicing minim reprehenderit consequat minim elit qui do Lorem sit.\r\nIn et mollit minim proident eu qui anim magna Lorem consequat minim duis. Esse culpa eu commodo sit. Nostrud laborum magna id elit proident. Laboris commodo ipsum culpa laboris esse non enim id id mollit elit. Pariatur id in sunt et est tempor duis eu Lorem dolor tempor non veniam non. Ipsum officia aliquip anim id. Ex culpa aute et et consequat in qui.\r\nDeserunt nisi elit aliquip dolor culpa dolore mollit ullamco in cupidatat aliqua. Fugiat minim veniam labore ad minim in aliquip labore nulla quis pariatur. Est nisi pariatur duis culpa cupidatat labore in. Nisi tempor Lorem ea in laboris adipisicing do nisi consectetur laboris sunt culpa.\r\nDolore dolore veniam irure aute elit fugiat magna in. Irure enim fugiat ad ad aliqua exercitation proident duis officia dolor minim consequat reprehenderit. Occaecat ullamco esse cillum deserunt velit adipisicing laboris proident occaecat commodo occaecat tempor fugiat. Sint voluptate sunt anim sint do amet sint eiusmod ea enim Lorem. Aliqua consequat commodo sunt amet fugiat excepteur dolor dolor aliquip nostrud culpa. Fugiat elit adipisicing sit minim fugiat exercitation commodo anim duis. Ex voluptate excepteur occaecat nulla nostrud elit minim laborum fugiat.\r\n", + "address": "2 Brigham Street", + "city": "Chalfant", + "state": "Oklahoma", + "zip": 57590, + "country": "Afghanistan", + "email": "phyllisholcomb@scentric.com", + "phone": "(874) 534-3124", + "color": "rgb(210,230,76)" + }, + { + "index": 202, + "name": "Blanche Sears", + "first": "Peck", + "last": "Dean", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hai_ninh_nguyen/73.jpg", + "boolean": true, + "guid": "b362bf52-df9f-45bb-a64c-4f699bfd2cdb", + "integer": 64, + "date": "Thu May 23 2013 08:13:12 GMT-0700 (PDT)", + "shortText": "nisi tempor", + "mediumText": "Culpa id pariatur velit ut non adipisicing reprehenderit minim est pariatur excepteur nisi qui consectetur.", + "longText": "Voluptate minim deserunt reprehenderit anim ullamco. Consectetur laborum dolor ullamco laboris sunt elit nisi commodo esse sit. Voluptate dolor labore minim consectetur.\r\nQuis magna dolore incididunt deserunt qui dolor aute est culpa voluptate esse. Cillum quis exercitation dolore quis enim aliquip dolore dolor est adipisicing pariatur dolore deserunt. Consectetur sunt proident pariatur aute cupidatat voluptate fugiat pariatur sint.\r\nPariatur eiusmod consequat velit mollit ut reprehenderit irure. Voluptate nisi reprehenderit nisi adipisicing consectetur consequat in culpa laboris veniam laborum velit. Incididunt laboris cupidatat commodo sit commodo esse. Adipisicing proident cupidatat pariatur aute.\r\nEsse reprehenderit do id non occaecat dolore laborum dolore nostrud reprehenderit culpa voluptate voluptate nostrud. Laboris nostrud officia id consequat ullamco. Nisi est sunt ipsum excepteur nostrud dolore irure quis quis labore esse laboris. Adipisicing velit dolore ullamco voluptate reprehenderit ad duis reprehenderit. Commodo do laboris elit eu in nisi deserunt sint ipsum in duis sint excepteur. Culpa est est Lorem sint labore. Et qui ad anim ad.\r\nDo adipisicing amet cupidatat dolor dolore culpa incididunt culpa ad qui consequat ea reprehenderit proident. Irure qui ad adipisicing veniam irure nostrud esse id. Culpa do proident ex id eu Lorem veniam. Veniam commodo sit exercitation deserunt minim sint enim occaecat amet eu irure voluptate culpa eu. Deserunt ad laborum fugiat ex eu incididunt dolore adipisicing. Labore commodo aliquip deserunt aute eiusmod nisi. Est commodo duis excepteur nulla sunt laboris.\r\n", + "address": "4 Garden Place", + "city": "Ironton", + "state": "Ohio", + "zip": 89350, + "country": "St. Pierre and Miquelon", + "email": "peckdean@scentric.com", + "phone": "(994) 522-3068", + "color": "rgb(199,252,214)" + }, + { + "index": 203, + "name": "Conway Kelley", + "first": "Virginia", + "last": "Pollard", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gaborenton/73.jpg", + "boolean": false, + "guid": "afd59da0-9b9b-4b60-9da3-0ef8fc1e6349", + "integer": 14, + "date": "Sun Jul 17 1988 07:37:09 GMT-0700 (PDT)", + "shortText": "Lorem pariatur velit duis tempor", + "mediumText": "Incididunt dolore sint proident irure. Cillum minim veniam dolor ipsum ut cupidatat non proident tempor deserunt. Incididunt exercitation ut proident dolor do adipisicing sit Lorem aliqua enim nulla nostrud. Consectetur duis veniam elit laboris eiusmod ullamco labore exercitation fugiat sint reprehenderit eu nostrud dolor. Occaecat id laboris est tempor deserunt anim in fugiat proident enim cupidatat elit officia fugiat.", + "longText": "Veniam enim ad adipisicing cupidatat velit cillum anim et exercitation esse aliquip sit sunt. Irure mollit est sint minim consectetur labore sunt. Deserunt veniam sunt ut sunt tempor minim ipsum Lorem cupidatat laborum. Proident ipsum veniam quis nisi in consectetur sint labore laboris quis adipisicing velit. Dolore laboris exercitation quis sit. Laboris voluptate non consectetur incididunt laborum veniam pariatur exercitation sint.\r\nSint aute mollit eiusmod ea id cupidatat ad in sunt Lorem proident eiusmod ad. Proident ex occaecat pariatur excepteur labore consectetur laboris. Ut pariatur in adipisicing sit ipsum minim. Ut est elit eiusmod fugiat deserunt mollit fugiat incididunt laboris. Aute officia amet cupidatat in.\r\nVelit id enim ut ea veniam laborum eu duis adipisicing fugiat amet ullamco irure. Dolor et ad culpa esse in. Ea pariatur adipisicing minim sunt consequat sunt minim anim aute qui quis.\r\n", + "address": "3 Monaco Place", + "city": "Lopezo", + "state": "Nevada", + "zip": 45051, + "country": "Montserrat", + "email": "virginiapollard@scentric.com", + "phone": "(911) 563-3668", + "color": "rgb(120,253,100)" + }, + { + "index": 204, + "name": "Little Griffin", + "first": "Murray", + "last": "David", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/uralozden/73.jpg", + "boolean": false, + "guid": "9028904c-ab1e-4968-b7c4-20453df8469b", + "integer": 84, + "date": "Sun Dec 20 1987 15:41:10 GMT-0800 (PST)", + "shortText": "adipisicing ea pariatur enim", + "mediumText": "Commodo nostrud et irure amet pariatur proident eiusmod. Proident mollit eu fugiat irure voluptate proident laboris cillum proident voluptate.", + "longText": "Nisi et consectetur aute in tempor. Occaecat ad sint incididunt ullamco reprehenderit dolore. Nisi adipisicing in velit sint aliquip. Deserunt ut pariatur aute et voluptate fugiat id esse do sunt deserunt aute in. Excepteur adipisicing excepteur irure tempor sit culpa culpa mollit. Fugiat est culpa nostrud pariatur labore et in esse ullamco cillum et amet consequat cillum. Sint laboris cillum ea labore occaecat sunt enim.\r\n", + "address": "2 Gallatin Place", + "city": "Topaz", + "state": "Montana", + "zip": 18846, + "country": "Norway", + "email": "murraydavid@scentric.com", + "phone": "(994) 477-3415", + "color": "rgb(185,246,198)" + }, + { + "index": 205, + "name": "Goff Benton", + "first": "Mclean", + "last": "Pennington", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/attacks/73.jpg", + "boolean": false, + "guid": "70d6883d-2c03-4256-b2b8-d09f035e6d58", + "integer": 51, + "date": "Sun Feb 25 1979 17:08:08 GMT-0800 (PST)", + "shortText": "ipsum aute Lorem", + "mediumText": "Qui est officia sit nulla sunt reprehenderit incididunt aute.", + "longText": "Lorem eu proident exercitation do veniam. Sunt reprehenderit officia cupidatat est do ipsum sunt elit anim quis reprehenderit laborum quis non. Et aliqua excepteur culpa qui enim nulla id qui eiusmod dolor Lorem non mollit consectetur.\r\nLorem amet velit esse magna Lorem voluptate nostrud labore. Dolor Lorem cupidatat mollit laboris deserunt quis occaecat excepteur pariatur deserunt minim consectetur sint. Ad quis veniam dolore quis nostrud laboris ex anim quis eu nisi tempor. Consectetur voluptate id officia culpa anim enim eiusmod in amet amet. Velit anim deserunt officia eiusmod qui incididunt minim consequat ut sunt mollit. Ex enim aliquip enim quis enim irure sunt mollit laborum nisi.\r\nMagna sit ea deserunt excepteur aliqua esse nulla deserunt exercitation officia nulla id tempor cillum. Occaecat nulla sit tempor aute fugiat commodo. Laboris fugiat enim exercitation voluptate quis consequat consectetur aliquip fugiat voluptate ut occaecat reprehenderit irure. Esse sit laboris quis commodo ea in velit ad labore veniam. Aliquip dolor laborum commodo ad elit aliqua velit qui.\r\nElit exercitation culpa officia adipisicing amet in dolor eiusmod. Nostrud proident exercitation aliquip labore ad cupidatat velit incididunt. Officia ex veniam cillum deserunt id dolore excepteur pariatur mollit nulla laboris veniam veniam eu. Labore duis est ex reprehenderit fugiat commodo ut aute officia culpa irure amet id.\r\n", + "address": "4 Story Court", + "city": "Snowville", + "state": "California", + "zip": 33234, + "country": "Guam", + "email": "mcleanpennington@scentric.com", + "phone": "(882) 499-2242", + "color": "rgb(107,133,242)" + }, + { + "index": 206, + "name": "Hale Wilkinson", + "first": "Franks", + "last": "Howard", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mymyboy/73.jpg", + "boolean": false, + "guid": "974617cc-7395-4b74-aa1b-f5ea163bbb48", + "integer": 40, + "date": "Mon Jul 17 1972 11:03:48 GMT-0700 (PDT)", + "shortText": "dolor nulla culpa id", + "mediumText": "Veniam ipsum sit ea velit et magna exercitation exercitation occaecat voluptate aliqua. Deserunt nisi qui dolor mollit in anim labore. Dolore id quis occaecat aliqua pariatur cillum enim aliquip pariatur voluptate magna. Excepteur magna officia excepteur voluptate excepteur laboris.", + "longText": "Sit elit quis laborum do magna culpa Lorem magna incididunt. Consectetur non do non ea fugiat Lorem sint fugiat deserunt magna id ut aliquip. In Lorem ut voluptate magna consectetur exercitation cupidatat elit anim excepteur ipsum tempor amet. Velit commodo magna incididunt pariatur fugiat adipisicing cillum fugiat incididunt in sint velit ipsum. Sint non eiusmod quis minim anim. Irure reprehenderit adipisicing non nulla Lorem officia excepteur voluptate esse.\r\nOfficia dolore do aute culpa enim et quis laboris occaecat elit eiusmod mollit. Est non irure amet ad pariatur exercitation pariatur ad ex quis. Sunt ea minim id exercitation laborum dolore nulla et incididunt do. Aliqua amet Lorem eiusmod pariatur ipsum amet reprehenderit elit sit. Eu quis cillum voluptate magna ullamco.\r\nEa proident sit laborum commodo fugiat in elit amet. Non esse do exercitation culpa consectetur non magna voluptate velit ea culpa anim nulla. Eiusmod labore Lorem aute occaecat nulla fugiat.\r\nEst excepteur laborum ut amet Lorem ad veniam elit reprehenderit. Officia laboris id et consectetur sunt adipisicing nulla nostrud esse Lorem. Duis laboris veniam amet deserunt in deserunt laborum sit pariatur cillum nostrud.\r\n", + "address": "2 Hoyt Street", + "city": "Wolcott", + "state": "Marshall Islands", + "zip": 13071, + "country": "Gibraltar", + "email": "frankshoward@scentric.com", + "phone": "(893) 417-2654", + "color": "rgb(186,174,80)" + }, + { + "index": 207, + "name": "Betty Huff", + "first": "Mona", + "last": "Fulton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tristanlegros/73.jpg", + "boolean": false, + "guid": "c11ff2c4-c704-4729-88f9-b9932549a64a", + "integer": 26, + "date": "Thu Nov 04 1976 19:21:20 GMT-0800 (PST)", + "shortText": "sit nulla", + "mediumText": "Adipisicing minim nostrud magna amet tempor sunt duis officia cupidatat do incididunt dolore consectetur elit. Duis proident deserunt proident eu elit aliquip sint. Qui officia commodo voluptate deserunt amet ipsum magna dolore. Dolore labore eiusmod fugiat ad.", + "longText": "Aliquip in consequat nulla Lorem velit in cupidatat ut ut. Minim dolore cillum ut esse dolore ex. Eu occaecat officia tempor Lorem duis mollit magna Lorem eu deserunt aute et nisi reprehenderit. Eu magna qui enim officia nostrud proident officia sint elit ipsum quis duis velit Lorem.\r\n", + "address": "4 Ocean Avenue", + "city": "Finderne", + "state": "Indiana", + "zip": 46746, + "country": "Hungary", + "email": "monafulton@scentric.com", + "phone": "(946) 414-3557", + "color": "rgb(128,193,66)" + }, + { + "index": 208, + "name": "Emily Davis", + "first": "Sharon", + "last": "Green", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/allfordesign/73.jpg", + "boolean": true, + "guid": "e94e16a5-2c94-4436-8610-86a6f5f66355", + "integer": 99, + "date": "Mon Sep 28 2009 14:40:31 GMT-0700 (PDT)", + "shortText": "cillum dolor ex cupidatat deserunt", + "mediumText": "Cupidatat nulla anim reprehenderit laboris aute magna aliquip ea in sit. Reprehenderit reprehenderit amet id et ad ea. Deserunt veniam cillum dolor ullamco Lorem non cillum amet.", + "longText": "Quis voluptate ex cillum incididunt incididunt nisi. Dolor aliqua culpa dolor cillum eiusmod cillum tempor cillum. Est laboris esse exercitation nulla nisi anim et do cupidatat fugiat pariatur. Laborum duis eu fugiat anim duis.\r\nVeniam reprehenderit cupidatat ullamco Lorem ex officia mollit aliqua. Exercitation exercitation cillum irure officia deserunt velit laboris est irure irure minim veniam aliquip laborum. Ipsum ipsum sit ipsum ex veniam voluptate. Adipisicing do ex occaecat do. Laboris reprehenderit ad velit deserunt. Sint consectetur minim eiusmod excepteur eu cupidatat non mollit aliquip ad eu cupidatat.\r\nFugiat mollit ut ullamco veniam sint proident occaecat ad. Est exercitation laborum nisi laboris anim laborum magna. Labore ut adipisicing consectetur velit voluptate fugiat laborum adipisicing veniam reprehenderit. Adipisicing aliquip consectetur id occaecat labore exercitation ullamco.\r\nVoluptate reprehenderit occaecat eiusmod pariatur ipsum est eu. Id dolor laborum elit commodo duis et Lorem laboris. Sit officia do elit amet adipisicing. Exercitation commodo est do eu. In amet ad reprehenderit commodo.\r\nMinim nisi nostrud Lorem nostrud ea incididunt est in labore amet elit officia. Quis nostrud fugiat consequat culpa. Nisi ullamco irure sunt esse elit sunt nisi enim ullamco cupidatat dolore adipisicing. Ullamco sint laboris ullamco id magna qui et eiusmod laborum do enim minim amet aute. Ad fugiat elit velit amet officia nisi aliquip qui. Ut quis amet tempor ea ex id quis Lorem. Amet tempor incididunt esse sunt dolore non veniam esse nisi sint labore ut in.\r\n", + "address": "3 Colonial Court", + "city": "Trona", + "state": "Tennessee", + "zip": 67912, + "country": "Kenya", + "email": "sharongreen@scentric.com", + "phone": "(832) 403-3692", + "color": "rgb(208,118,108)" + }, + { + "index": 209, + "name": "Shelly Payne", + "first": "Doyle", + "last": "Vazquez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/serk002/73.jpg", + "boolean": true, + "guid": "1fbca6f1-d8c8-48ca-94be-6bfb87526c7d", + "integer": 58, + "date": "Sat May 15 1993 07:23:07 GMT-0700 (PDT)", + "shortText": "do amet aliqua duis ea", + "mediumText": "Minim adipisicing sint aliquip in do mollit labore occaecat in. Est commodo et deserunt aute. Ut consectetur exercitation et voluptate qui quis ex.", + "longText": "Ea consequat exercitation incididunt non veniam occaecat amet occaecat occaecat ex ex ullamco incididunt. Enim consequat nisi sit pariatur aliqua elit ipsum elit aliqua incididunt et. Cupidatat occaecat velit nostrud id consequat cupidatat. Nulla anim ipsum enim ad incididunt nostrud nulla et esse incididunt elit. Culpa commodo ad non sint anim. Ad deserunt aute eiusmod officia fugiat proident minim nostrud commodo voluptate velit mollit duis.\r\nEiusmod veniam adipisicing exercitation proident do voluptate ut culpa consequat Lorem. Deserunt ea voluptate anim quis duis deserunt mollit minim sit minim reprehenderit amet. Nisi labore dolore reprehenderit minim laborum fugiat Lorem incididunt sint. Enim aliquip voluptate ea nulla consectetur sit reprehenderit sunt in officia aute id. Pariatur sint sint eiusmod ea do est sint.\r\n", + "address": "3 Auburn Place", + "city": "Blairstown", + "state": "Palau", + "zip": 22120, + "country": "Honduras", + "email": "doylevazquez@scentric.com", + "phone": "(946) 513-2799", + "color": "rgb(255,190,226)" + }, + { + "index": 210, + "name": "Angela Mcmahon", + "first": "Rosalyn", + "last": "Bridges", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/keremk/73.jpg", + "boolean": true, + "guid": "92811c3f-0e5f-4f04-9543-6d026e4b26c4", + "integer": 16, + "date": "Fri Jan 16 1998 10:02:55 GMT-0800 (PST)", + "shortText": "velit", + "mediumText": "Lorem cupidatat dolor voluptate magna excepteur eiusmod est in.", + "longText": "Aliqua culpa aliqua aute labore nulla do pariatur consectetur sit sunt quis reprehenderit duis cupidatat. Pariatur eu voluptate cupidatat reprehenderit sit mollit proident ullamco proident ipsum nulla. Nulla qui ullamco sint eiusmod dolore. Minim esse et sit cupidatat dolore esse. Dolor reprehenderit aliquip magna commodo irure nulla culpa ipsum enim incididunt. Cillum velit minim incididunt qui velit nulla.\r\nConsectetur amet ex elit eu commodo sint enim. Proident et labore ipsum consequat pariatur irure. Fugiat non occaecat ipsum ullamco commodo. Nisi exercitation cupidatat nisi pariatur non culpa. Non do deserunt labore non amet excepteur ea sint. Pariatur quis ullamco laboris fugiat proident est irure magna commodo occaecat officia qui.\r\nPariatur et commodo officia ullamco do qui est nisi in. Laborum sint do minim aute aute dolore est consequat officia id. Nostrud velit ex ut eu dolore occaecat magna minim. Culpa amet sunt duis aliquip Lorem voluptate. Commodo occaecat reprehenderit nostrud magna ex proident incididunt est ut ad do.\r\n", + "address": "4 Fane Court", + "city": "Elrama", + "state": "Virginia", + "zip": 45107, + "country": "Eritrea", + "email": "rosalynbridges@scentric.com", + "phone": "(813) 440-3063", + "color": "rgb(184,249,205)" + }, + { + "index": 211, + "name": "Maryellen Ramos", + "first": "Rogers", + "last": "Silva", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/surjithctly/73.jpg", + "boolean": true, + "guid": "a833fdf1-9865-4e5c-91f8-8d1aaa2d2fba", + "integer": 75, + "date": "Sun Oct 24 2004 10:12:53 GMT-0700 (PDT)", + "shortText": "nisi duis", + "mediumText": "Magna elit fugiat occaecat incididunt elit tempor exercitation occaecat fugiat eiusmod incididunt dolore. Ad quis ea commodo reprehenderit sint sit esse quis quis. Minim esse anim aute eiusmod fugiat.", + "longText": "Voluptate id ullamco do aliqua ad deserunt commodo ex. Et aute excepteur elit adipisicing. Labore consequat consequat consequat qui aute non et ad deserunt. Ex adipisicing sunt sunt mollit do nulla eiusmod esse aute dolor. Elit veniam culpa labore proident cillum duis minim id sint sint eiusmod. Est deserunt in ut laboris fugiat ut sint consequat. Ullamco ex incididunt reprehenderit adipisicing occaecat.\r\nNisi officia excepteur enim aliquip aliqua occaecat aliqua mollit velit reprehenderit amet id cillum. Nulla fugiat ad id in velit consectetur sint id commodo pariatur velit reprehenderit est nisi. Reprehenderit exercitation voluptate ea cillum ea ut nisi deserunt laborum eiusmod ea. Voluptate velit consectetur aliquip aliquip Lorem consectetur dolore in qui laboris voluptate labore duis. In enim eiusmod minim minim non ea labore excepteur tempor officia ullamco.\r\nUt pariatur tempor aliquip eu quis cupidatat esse ad. Sint occaecat mollit eu consectetur dolore nostrud incididunt nostrud enim quis dolor elit adipisicing excepteur. Pariatur cupidatat consequat cillum deserunt sit eu in et veniam aliqua. Proident nostrud nostrud incididunt tempor ad nisi amet. Cupidatat ad ea mollit cupidatat est dolor eu laboris ex velit duis amet consectetur velit.\r\nCillum occaecat ex voluptate cupidatat est cillum qui. Et do incididunt nulla veniam sint eu consectetur et non minim officia excepteur velit. Anim labore mollit cillum sit nisi ex sunt mollit culpa enim ipsum sit laboris in. Quis ullamco et ullamco consequat mollit ex commodo laboris voluptate. Magna qui aute aliqua sit adipisicing id. Veniam mollit proident eu occaecat veniam sint sint laboris sit laborum.\r\n", + "address": "3 Brightwater Court", + "city": "Brandermill", + "state": "Wyoming", + "zip": 20996, + "country": "Tajikistan", + "email": "rogerssilva@scentric.com", + "phone": "(944) 540-3499", + "color": "rgb(88,243,243)" + }, + { + "index": 212, + "name": "Alvarado Abbott", + "first": "Jordan", + "last": "Hyde", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dimitris_d_/73.jpg", + "boolean": false, + "guid": "9b8ecabd-ca6e-4ee1-bd6a-08635f7312a6", + "integer": 97, + "date": "Fri Oct 21 1983 23:56:38 GMT-0700 (PDT)", + "shortText": "elit exercitation pariatur aliqua duis", + "mediumText": "Cupidatat consequat esse duis ex consequat consequat.", + "longText": "Anim aute nisi non adipisicing dolor incididunt non est esse culpa. Proident eiusmod et voluptate sint. Anim ex incididunt do ipsum dolor Lorem Lorem ut. Quis eiusmod esse anim aliqua ullamco. Non in ad qui excepteur minim adipisicing Lorem tempor elit. Nostrud cillum incididunt labore magna duis consectetur irure ut consectetur. Veniam eu officia qui sint pariatur culpa.\r\nSunt ea amet tempor minim labore consequat duis qui. Aliqua non nisi sint incididunt et veniam minim Lorem. Id fugiat consequat in labore velit proident est incididunt nisi non Lorem. Exercitation ipsum duis labore sunt officia proident labore labore ad. Sunt enim culpa adipisicing aute cillum. Officia in adipisicing tempor minim eiusmod dolor. Ea sunt ut elit cillum laboris nisi ipsum reprehenderit labore laborum culpa in.\r\nFugiat est eiusmod amet incididunt minim adipisicing voluptate. Ex eiusmod consequat consectetur occaecat laborum culpa in cupidatat voluptate ipsum reprehenderit elit consequat. Ut fugiat commodo qui aute consequat. Nostrud dolor duis magna minim do.\r\nId non fugiat pariatur pariatur Lorem nostrud irure. Tempor laboris voluptate velit magna. Ut ea ea sunt mollit aliqua. Ullamco dolore nostrud ex non non non culpa Lorem ullamco do do dolore quis. Id sunt magna laboris laboris enim. Sint aliquip elit ullamco ut nisi officia enim dolore nulla cupidatat duis. Cillum magna minim quis nulla nulla anim amet non nostrud sit nostrud exercitation magna ex.\r\n", + "address": "4 Bainbridge Street", + "city": "Chical", + "state": "Colorado", + "zip": 18544, + "country": "Brunei Darussalam", + "email": "jordanhyde@scentric.com", + "phone": "(822) 530-2413", + "color": "rgb(163,61,149)" + }, + { + "index": 213, + "name": "Caldwell Mckinney", + "first": "Melody", + "last": "Fisher", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bogdanroberta/73.jpg", + "boolean": true, + "guid": "7e4dcc0a-5507-4cee-948f-06e4315a2af8", + "integer": 41, + "date": "Wed May 03 1972 14:18:30 GMT-0700 (PDT)", + "shortText": "adipisicing", + "mediumText": "Aliqua laboris enim proident cillum ut id aute nulla ea.", + "longText": "Consequat excepteur non amet ipsum labore dolore consequat duis cillum. Enim occaecat nisi aute aliqua occaecat enim nulla. Eiusmod est adipisicing et in. Sint fugiat ullamco officia commodo minim ut velit voluptate non eiusmod. Est quis sunt nisi exercitation in nostrud laboris.\r\nIrure pariatur velit ad minim occaecat labore ad dolor eiusmod occaecat laboris. Et culpa voluptate minim aliquip. Sit commodo nostrud veniam in dolore magna officia eu ea nisi ex velit.\r\nQuis esse do anim ullamco deserunt consectetur cupidatat tempor cillum ex id. Aute velit non est amet officia laboris labore duis velit Lorem consectetur cupidatat tempor. Cupidatat eiusmod anim et elit ipsum esse minim. Irure eiusmod nisi duis velit id.\r\n", + "address": "2 Abbey Court", + "city": "Salvo", + "state": "Utah", + "zip": 63926, + "country": "Macedonia", + "email": "melodyfisher@scentric.com", + "phone": "(979) 487-2773", + "color": "rgb(71,205,213)" + }, + { + "index": 214, + "name": "Eloise Avila", + "first": "Gay", + "last": "Yang", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/shammellee/73.jpg", + "boolean": true, + "guid": "d615ea19-d16e-48f6-8ddb-02091a9fa272", + "integer": 25, + "date": "Tue Sep 03 1991 06:44:54 GMT-0700 (PDT)", + "shortText": "aliquip enim eu proident sunt", + "mediumText": "Ex deserunt reprehenderit qui ea adipisicing labore in ipsum.", + "longText": "Eiusmod anim ut occaecat veniam est quis labore consectetur elit. Sint minim nostrud non ad aliqua do. Dolor et ullamco aliqua cillum consectetur sunt. Tempor aliquip id labore anim voluptate aute cupidatat consequat. Et nostrud eu cillum sunt nisi excepteur laborum sint labore amet.\r\n", + "address": "3 Wogan Terrace", + "city": "Canby", + "state": "Idaho", + "zip": 49943, + "country": "French Polynesia", + "email": "gayyang@scentric.com", + "phone": "(951) 538-3316", + "color": "rgb(75,210,111)" + }, + { + "index": 215, + "name": "Christine Strong", + "first": "Sofia", + "last": "Alvarez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/donjain/73.jpg", + "boolean": true, + "guid": "7f27c6f9-a6f0-49b2-b6d4-0824fb02c1ba", + "integer": 2, + "date": "Fri Feb 27 1976 21:08:15 GMT-0800 (PST)", + "shortText": "incididunt mollit", + "mediumText": "Labore labore consectetur aliquip pariatur sit eu voluptate minim enim eu cillum proident.", + "longText": "Sint sit deserunt proident nulla culpa in reprehenderit veniam commodo consequat aliquip dolor. Eu mollit cillum et nulla nulla culpa voluptate proident irure mollit non ipsum nisi. Reprehenderit laboris eiusmod magna exercitation consectetur nulla sit do cupidatat est ad dolore culpa. Eiusmod commodo eiusmod dolore est ad reprehenderit occaecat irure. Adipisicing quis aliqua qui non labore consectetur ullamco aliquip.\r\nLorem fugiat excepteur do cupidatat labore elit tempor fugiat et. Commodo laborum nisi consectetur laboris culpa veniam ea minim fugiat dolor qui et pariatur occaecat. Culpa est ullamco in esse. Ut aliquip id dolore aute ullamco et velit veniam et est aute sunt. Sint Lorem consectetur elit occaecat ea enim proident sunt cupidatat cillum officia. Quis eu veniam deserunt occaecat aliqua est exercitation consequat ipsum officia sit Lorem aliqua.\r\nAmet mollit in ad sit. Adipisicing occaecat laboris qui enim ut aute deserunt proident. Ipsum labore laboris sunt nulla amet ad. Duis voluptate ut veniam est quis amet et occaecat.\r\nDuis pariatur voluptate ut veniam aliquip commodo ipsum commodo do. Pariatur deserunt laboris veniam duis ipsum dolore et duis laboris quis officia ad reprehenderit deserunt. Deserunt Lorem esse ad duis veniam ad proident dolore culpa enim commodo sunt est ex.\r\nExcepteur deserunt deserunt ea dolor nulla. Laborum irure elit ut fugiat deserunt amet nisi. Magna do elit est esse pariatur qui mollit proident esse. Id laborum amet fugiat ipsum tempor reprehenderit.\r\n", + "address": "3 Celeste Court", + "city": "Herbster", + "state": "Arkansas", + "zip": 97896, + "country": "Bahamas", + "email": "sofiaalvarez@scentric.com", + "phone": "(990) 470-3077", + "color": "rgb(250,51,175)" + }, + { + "index": 216, + "name": "Love Baldwin", + "first": "Rivers", + "last": "Rosales", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/21lab/73.jpg", + "boolean": true, + "guid": "b67fea0d-b75f-4344-8a9f-fe87e3c61b52", + "integer": 84, + "date": "Wed Jan 15 1975 15:08:56 GMT-0800 (PST)", + "shortText": "do elit sint excepteur", + "mediumText": "Veniam eiusmod sit duis fugiat mollit et dolore in ad nulla culpa. Proident labore eu dolore commodo sint deserunt dolore amet ullamco nulla eiusmod excepteur. Excepteur nisi duis consectetur qui. Exercitation laborum est aliquip deserunt.", + "longText": "Quis ea et cillum aliqua culpa commodo velit cupidatat ut ea. Nisi non qui esse labore veniam veniam sit. Excepteur aliquip sit anim minim incididunt consectetur consectetur laboris minim nisi labore in labore magna. Incididunt tempor eiusmod dolor elit et duis ex mollit.\r\nId excepteur do adipisicing laboris labore aliquip eu do enim incididunt esse nulla exercitation. Anim consequat culpa non incididunt dolore ad qui proident magna voluptate do occaecat fugiat occaecat. Velit pariatur amet ullamco quis sint.\r\n", + "address": "2 Ingraham Street", + "city": "Hendersonville", + "state": "Delaware", + "zip": 71466, + "country": "Palau", + "email": "riversrosales@scentric.com", + "phone": "(929) 466-3166", + "color": "rgb(255,204,95)" + }, + { + "index": 217, + "name": "Louisa Lang", + "first": "Jenna", + "last": "Roberson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ionuss/73.jpg", + "boolean": false, + "guid": "1fb6ce5a-06bc-4d09-93bb-4da1b2003f10", + "integer": 47, + "date": "Wed Aug 26 1981 07:54:13 GMT-0700 (PDT)", + "shortText": "sint nostrud commodo exercitation", + "mediumText": "Nulla culpa incididunt et veniam nisi officia. Et non fugiat incididunt in fugiat ad ullamco dolor cillum duis irure officia veniam dolor. Pariatur qui veniam cillum sunt consequat eiusmod ipsum.", + "longText": "Quis consequat ea velit ea labore do dolore. Aute in dolore occaecat sint dolor labore. Sunt consectetur laborum qui nostrud dolore reprehenderit sint sunt eu reprehenderit. Ullamco proident labore occaecat nostrud. Sint velit in do ut duis laborum ut ullamco. Tempor sunt consectetur officia veniam. Et cillum occaecat mollit tempor proident sunt mollit.\r\nOccaecat incididunt esse occaecat et non culpa culpa aliqua ex. Aute cillum magna nostrud ea. Anim consequat aliquip enim veniam culpa velit ea irure quis id ipsum deserunt ad. Elit dolor proident laboris nostrud id pariatur aute ut deserunt. Mollit consequat occaecat eiusmod ad voluptate laboris duis. Quis nulla culpa occaecat ea ullamco voluptate cupidatat irure. Incididunt amet ipsum cupidatat sint officia reprehenderit consequat velit non reprehenderit commodo ut amet.\r\nAliqua commodo ipsum ex officia esse veniam elit ullamco. Laborum adipisicing Lorem sint nisi commodo sunt aute commodo cupidatat reprehenderit ut exercitation. Eu ea magna anim in fugiat mollit proident exercitation ullamco amet. Ex ullamco et nulla non deserunt ullamco occaecat officia enim. Officia ea ullamco cillum dolor et aliqua elit consectetur nulla ex dolor nostrud aute velit. Exercitation mollit consequat consectetur veniam pariatur ullamco sit sunt dolore sint deserunt ut esse. Sint ullamco voluptate est veniam ullamco sit.\r\n", + "address": "4 Miller Place", + "city": "Sims", + "state": "Federated States Of Micronesia", + "zip": 93413, + "country": "Tuvalu", + "email": "jennaroberson@scentric.com", + "phone": "(943) 474-3085", + "color": "rgb(143,132,181)" + }, + { + "index": 218, + "name": "Snyder Cortez", + "first": "Ronda", + "last": "Nielsen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bameyrick/73.jpg", + "boolean": false, + "guid": "633a4429-d43e-452c-9b6c-b53f2ee2e347", + "integer": 85, + "date": "Tue Jan 06 1981 00:45:11 GMT-0800 (PST)", + "shortText": "ullamco deserunt adipisicing sint esse", + "mediumText": "Nostrud mollit exercitation culpa ipsum adipisicing fugiat aliquip ex.", + "longText": "Cupidatat veniam officia quis fugiat proident eu. Lorem voluptate enim do aute ut veniam ut. Ullamco exercitation cupidatat ipsum culpa aliqua duis veniam ullamco proident in fugiat dolore ullamco. Quis in irure adipisicing occaecat.\r\nVeniam consectetur labore consectetur consequat enim irure sunt. Enim nulla pariatur aliquip aute proident aute deserunt fugiat nisi irure ipsum irure proident. Ad laboris do aute ullamco et reprehenderit velit commodo ipsum magna sunt duis.\r\nOfficia excepteur sunt ut tempor Lorem in mollit ipsum et tempor cupidatat veniam. Aliqua id dolore Lorem officia quis velit. Ut tempor elit fugiat incididunt quis ad eiusmod in.\r\nExercitation Lorem aliquip laboris laboris incididunt qui laboris adipisicing irure laboris qui non deserunt qui. Voluptate sit aliquip ullamco anim. Dolore nulla ea culpa fugiat adipisicing qui proident do elit proident fugiat magna dolore quis.\r\nExcepteur elit laboris proident adipisicing ipsum aute ipsum magna voluptate officia officia consequat amet ullamco. Amet nostrud elit do culpa consectetur occaecat sint culpa id labore sit qui pariatur. Sunt esse nisi in proident labore excepteur deserunt elit cupidatat non. Labore sunt commodo nisi eu incididunt qui cillum tempor anim voluptate. Adipisicing dolor consequat pariatur id enim laboris incididunt duis magna enim velit fugiat esse.\r\n", + "address": "3 Quentin Road", + "city": "Islandia", + "state": "Guam", + "zip": 18417, + "country": "Liechtenstein", + "email": "rondanielsen@scentric.com", + "phone": "(819) 547-2703", + "color": "rgb(69,55,248)" + }, + { + "index": 219, + "name": "Michael Nixon", + "first": "Paul", + "last": "Huber", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/p_cherkashin/73.jpg", + "boolean": false, + "guid": "77b470a6-85b9-4d08-9bda-af2cf7b97919", + "integer": 86, + "date": "Mon Aug 24 1987 23:29:34 GMT-0700 (PDT)", + "shortText": "et", + "mediumText": "Adipisicing dolore magna sunt duis quis cillum incididunt sit commodo minim nisi irure culpa.", + "longText": "Sit qui excepteur consequat veniam. Qui deserunt nostrud esse velit nulla culpa ex. Enim esse nostrud quis consectetur ea ex. Veniam reprehenderit deserunt dolore ipsum Lorem reprehenderit ipsum laborum adipisicing adipisicing qui.\r\n", + "address": "3 Baltic Street", + "city": "Marienthal", + "state": "Pennsylvania", + "zip": 77950, + "country": "Virgin Islands (US)", + "email": "paulhuber@scentric.com", + "phone": "(822) 531-2515", + "color": "rgb(213,114,213)" + }, + { + "index": 220, + "name": "Erna Collier", + "first": "Brady", + "last": "Haney", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tube_man/73.jpg", + "boolean": true, + "guid": "2b70bd78-953b-4f78-b980-0443e7865502", + "integer": 89, + "date": "Thu Apr 09 1981 13:14:33 GMT-0800 (PST)", + "shortText": "labore consectetur qui", + "mediumText": "Eiusmod eiusmod sit consectetur dolor adipisicing adipisicing ipsum laborum. Nostrud est non sunt est Lorem aliquip non incididunt. Ad consequat incididunt labore adipisicing eiusmod magna ad pariatur quis.", + "longText": "Nostrud ullamco quis aliqua veniam officia est commodo anim commodo est exercitation. Dolor reprehenderit dolore occaecat anim cillum deserunt. Nostrud laboris esse quis voluptate magna esse. Et mollit mollit ad consectetur adipisicing do ullamco Lorem mollit cillum cillum pariatur ipsum duis. In exercitation esse nisi nostrud aliquip non velit magna incididunt anim. Dolor mollit eu quis laborum quis duis esse nisi exercitation duis duis quis adipisicing.\r\nFugiat nisi do reprehenderit dolor amet velit fugiat incididunt quis et aute eu cillum consequat. Occaecat laborum cupidatat occaecat voluptate proident irure anim proident sit in. In culpa ex pariatur deserunt sint in consectetur eiusmod. Aliqua cupidatat aute ullamco eiusmod fugiat.\r\nEx officia ut Lorem ex nisi pariatur incididunt qui. Fugiat pariatur ut tempor excepteur anim enim qui sint occaecat eiusmod veniam ad enim amet. Anim magna nulla magna pariatur. Mollit excepteur minim cillum irure nisi quis irure quis velit consectetur. Laboris sint aliquip minim aliqua incididunt eiusmod dolor amet. Velit sint cillum consectetur commodo culpa do exercitation amet laboris est laborum magna officia sit.\r\n", + "address": "3 Lawrence Street", + "city": "Summerset", + "state": "New Hampshire", + "zip": 76548, + "country": "Svalbard and Jan Mayen Islands", + "email": "bradyhaney@scentric.com", + "phone": "(933) 464-2281", + "color": "rgb(61,84,220)" + }, + { + "index": 221, + "name": "Serena Holden", + "first": "Dorsey", + "last": "James", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicolaseek/73.jpg", + "boolean": true, + "guid": "e34b73b6-5bae-4d6e-8d76-8b030ff4d104", + "integer": 49, + "date": "Mon May 27 1985 00:38:05 GMT-0700 (PDT)", + "shortText": "occaecat Lorem", + "mediumText": "Sunt minim duis et reprehenderit commodo aute dolore. Elit veniam occaecat adipisicing officia ex.", + "longText": "Consectetur ipsum quis in veniam ipsum voluptate velit deserunt minim aute. Consectetur in commodo aliquip voluptate anim. Culpa veniam enim in voluptate do nulla culpa deserunt. Mollit in sit exercitation dolore id eu duis nulla consectetur laborum sit ex eu et.\r\nLaborum id occaecat labore voluptate officia labore in id cillum occaecat. Nisi et amet elit excepteur irure adipisicing est cillum sit est velit cillum. Irure Lorem qui qui Lorem qui id. Est velit adipisicing voluptate Lorem consectetur ut exercitation occaecat amet adipisicing sit adipisicing. Cillum sint quis incididunt sint anim et. Adipisicing veniam pariatur id laboris amet est cillum. Eiusmod in mollit in velit culpa Lorem consequat ad mollit amet laboris qui.\r\nIn nisi exercitation irure pariatur consequat consequat labore ipsum anim commodo fugiat id. Aute est sit reprehenderit cupidatat cupidatat pariatur laborum nulla culpa minim sunt. Consectetur ipsum duis dolor velit labore nisi magna enim voluptate laborum exercitation et.\r\n", + "address": "3 Green Street", + "city": "Allensworth", + "state": "North Dakota", + "zip": 77281, + "country": "Ethiopia", + "email": "dorseyjames@scentric.com", + "phone": "(856) 447-3354", + "color": "rgb(81,131,93)" + }, + { + "index": 222, + "name": "Tabitha Alvarado", + "first": "Grant", + "last": "Bauer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/joshjoshmatson/73.jpg", + "boolean": true, + "guid": "f0707477-7ccf-4f35-b9d8-ecdcea4b5444", + "integer": 59, + "date": "Sat Mar 13 1971 23:17:16 GMT-0800 (PST)", + "shortText": "cupidatat exercitation pariatur commodo anim", + "mediumText": "Nisi nulla est ipsum laboris. Ut et ea pariatur aute. Fugiat dolore esse laborum sunt.", + "longText": "Cupidatat pariatur nostrud cillum fugiat sint culpa officia adipisicing ipsum occaecat. Sunt id tempor tempor consectetur sint eu esse ullamco deserunt proident Lorem sit. Exercitation et ex dolor exercitation elit labore aute veniam consectetur. Duis mollit ut eiusmod reprehenderit duis anim qui.\r\nIpsum anim veniam nostrud occaecat et proident qui cupidatat voluptate eu enim esse Lorem nulla. Nulla voluptate ex irure ex excepteur minim duis ut ipsum aliqua ullamco. Excepteur ipsum proident ea duis Lorem ad incididunt esse non officia amet excepteur exercitation. Sit amet sint velit velit officia fugiat. Laboris aliqua irure incididunt nulla aliqua exercitation labore nostrud incididunt. Labore eu amet magna deserunt.\r\nAliqua adipisicing et aute ut occaecat laboris nulla. Excepteur non Lorem fugiat incididunt officia minim sunt tempor dolore magna ullamco ad veniam enim. Sunt labore adipisicing consequat non proident excepteur ullamco cupidatat eiusmod nulla culpa elit aliquip minim. Fugiat qui sint Lorem velit ea.\r\n", + "address": "3 Oak Street", + "city": "Kapowsin", + "state": "Northern Mariana Islands", + "zip": 57454, + "country": "Togo", + "email": "grantbauer@scentric.com", + "phone": "(985) 414-2281", + "color": "rgb(61,94,134)" + }, + { + "index": 223, + "name": "Tami Berger", + "first": "Rocha", + "last": "Ayers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jacopobassan/73.jpg", + "boolean": false, + "guid": "e0993984-2847-4494-bcec-273869d52b83", + "integer": 68, + "date": "Sun Nov 14 1971 20:32:38 GMT-0800 (PST)", + "shortText": "reprehenderit", + "mediumText": "Sit pariatur pariatur commodo magna fugiat aliquip proident qui. In tempor eu commodo id elit qui. Dolore do irure Lorem officia minim sit nostrud ad qui enim enim. Ut est nisi voluptate qui quis anim dolor sunt ad duis commodo. Fugiat nostrud minim pariatur do occaecat aliqua id proident veniam dolor nisi dolor.", + "longText": "Ad culpa eu proident mollit est duis eu ad et tempor dolore. Amet exercitation nostrud dolore nulla fugiat veniam dolor. Velit sit tempor aliquip ut officia. Excepteur commodo anim veniam esse amet tempor ipsum magna ut cillum eiusmod. Aute eiusmod in aliqua Lorem do aliqua ut id aliquip consectetur ut. Deserunt irure veniam voluptate eu esse in ea eiusmod.\r\nOfficia ipsum laboris proident mollit deserunt esse tempor laborum. Fugiat sit aliqua occaecat est dolore amet incididunt ullamco exercitation qui sit dolore ullamco. Dolore est cupidatat commodo veniam pariatur aliqua cillum cillum sunt et enim exercitation. Ut eu consequat culpa anim. Adipisicing enim et deserunt ullamco adipisicing dolor eu. Laboris velit labore labore consectetur ea pariatur quis.\r\nCulpa anim consectetur ad sint tempor aliquip. Ad magna cillum ut Lorem exercitation esse id labore sint nulla enim. Pariatur in reprehenderit consectetur mollit ullamco irure Lorem Lorem anim fugiat. Aliquip est elit sunt nisi labore. Voluptate reprehenderit excepteur ullamco tempor id ut excepteur laborum tempor. Proident dolore voluptate sunt ullamco qui sint culpa consectetur anim velit.\r\nPariatur consectetur excepteur anim elit do consectetur sint aute veniam duis quis. Ut ipsum mollit amet culpa laborum. Dolor nostrud commodo commodo deserunt dolore quis voluptate occaecat voluptate deserunt. Anim ipsum proident non eu eu ea nulla aliqua aliqua amet sit officia ut. Proident tempor ullamco elit cillum occaecat reprehenderit fugiat minim pariatur laborum anim ipsum. Velit Lorem Lorem do mollit occaecat ullamco adipisicing ut officia. Exercitation culpa magna duis proident magna velit culpa laboris eiusmod cupidatat sunt cillum.\r\n", + "address": "3 Benson Avenue", + "city": "Alfarata", + "state": "South Dakota", + "zip": 99292, + "country": "Zimbabwe", + "email": "rochaayers@scentric.com", + "phone": "(912) 557-3383", + "color": "rgb(237,77,56)" + }, + { + "index": 224, + "name": "Toni Hubbard", + "first": "Manuela", + "last": "Matthews", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/benhalllondon/73.jpg", + "boolean": false, + "guid": "6a196cdc-9694-4c30-a010-23fe19d05ccf", + "integer": 64, + "date": "Wed Mar 30 1994 01:18:27 GMT-0800 (PST)", + "shortText": "amet laboris do pariatur", + "mediumText": "Quis quis ex anim ea officia anim aute. Duis nostrud adipisicing consectetur dolor aute laboris deserunt eu. Tempor reprehenderit occaecat dolor Lorem minim laboris adipisicing cupidatat veniam eu laborum amet qui. Do Lorem anim do cupidatat.", + "longText": "Sit cupidatat ullamco esse sit Lorem laboris. Nisi culpa excepteur aute ad consectetur. Ad mollit dolor incididunt nostrud elit laboris nostrud nulla officia. Exercitation cillum proident deserunt aute minim proident.\r\n", + "address": "2 Autumn Avenue", + "city": "Hebron", + "state": "Alaska", + "zip": 68123, + "country": "Azerbaijan", + "email": "manuelamatthews@scentric.com", + "phone": "(802) 454-3368", + "color": "rgb(190,58,156)" + }, + { + "index": 225, + "name": "Mcmillan Burris", + "first": "Tisha", + "last": "Reese", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/umurgdk/73.jpg", + "boolean": false, + "guid": "4c6aa7ad-4530-4d0d-a5d2-bc8d25596090", + "integer": 19, + "date": "Tue Mar 08 2005 12:31:16 GMT-0800 (PST)", + "shortText": "deserunt elit occaecat", + "mediumText": "Duis veniam voluptate sint nulla adipisicing ea eiusmod qui eiusmod sunt sunt amet labore.", + "longText": "Dolor sint nostrud velit sit deserunt dolore. Duis velit commodo do tempor enim. Ex non occaecat ea commodo sint id officia aute. Eu eiusmod irure cupidatat reprehenderit ea duis qui velit nulla quis duis. Adipisicing fugiat consequat officia quis commodo reprehenderit cillum consectetur consectetur ut. Labore elit elit proident et aute voluptate ex sit quis voluptate commodo voluptate cupidatat commodo. Nulla deserunt elit in non cillum fugiat laborum pariatur esse in.\r\nQui aliqua quis eu enim cillum occaecat labore. Qui cupidatat nisi cillum commodo. Lorem nisi eu sint esse excepteur do.\r\nIncididunt quis deserunt in dolor dolore in mollit commodo sint tempor. Ullamco pariatur magna ad amet voluptate mollit aliquip. Ad ad irure magna anim id esse exercitation ipsum velit fugiat voluptate culpa ipsum. Officia ullamco fugiat minim dolor aliqua nulla amet eu nulla commodo. Duis ea et sunt laborum.\r\nLabore excepteur non aliquip sunt ad anim. Consectetur ipsum officia amet consectetur est. Fugiat duis exercitation nulla aliqua esse tempor aliquip et sunt qui.\r\nDeserunt nostrud sunt elit enim id id pariatur proident enim duis. Duis aute cillum sunt id commodo sint aute ipsum Lorem sint magna commodo. Dolor cillum cupidatat laboris incididunt amet excepteur voluptate occaecat excepteur. Veniam et nulla non tempor.\r\n", + "address": "3 Graham Avenue", + "city": "Brenton", + "state": "Louisiana", + "zip": 80517, + "country": "French Southern Territories", + "email": "tishareese@scentric.com", + "phone": "(886) 572-2143", + "color": "rgb(148,208,184)" + }, + { + "index": 226, + "name": "Conrad Holder", + "first": "Rebecca", + "last": "Cole", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_vectorhugo/73.jpg", + "boolean": false, + "guid": "2db95cdc-541c-4e6c-bb8a-9afb329188a9", + "integer": 96, + "date": "Thu Sep 30 1971 17:22:25 GMT-0700 (PDT)", + "shortText": "cillum minim aute laboris", + "mediumText": "Anim ullamco labore do labore nisi id cillum.", + "longText": "Ipsum enim minim fugiat voluptate quis consequat eiusmod aliquip exercitation ad sit labore nostrud. Dolore qui enim irure dolore anim enim amet et cupidatat. Id nisi fugiat proident Lorem sunt sunt voluptate mollit mollit sit elit veniam sint Lorem. Consectetur pariatur commodo ullamco duis nostrud. Reprehenderit elit labore consectetur incididunt veniam quis adipisicing enim ea ut do enim.\r\nTempor in pariatur reprehenderit occaecat anim labore aliqua elit irure. Duis fugiat deserunt commodo occaecat pariatur sint. Dolore aliqua aute ut aliqua qui.\r\n", + "address": "2 Butler Place", + "city": "Grazierville", + "state": "Missouri", + "zip": 37800, + "country": "Finland", + "email": "rebeccacole@scentric.com", + "phone": "(863) 438-3293", + "color": "rgb(252,113,153)" + }, + { + "index": 227, + "name": "Finley Norman", + "first": "Kemp", + "last": "Ramsey", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/traicyer/73.jpg", + "boolean": true, + "guid": "8d123ac2-6255-4f83-a056-c073a8853e3c", + "integer": 94, + "date": "Mon Nov 19 1979 06:35:50 GMT-0800 (PST)", + "shortText": "dolor id consequat occaecat", + "mediumText": "Magna cupidatat incididunt non excepteur deserunt eiusmod reprehenderit aliquip aute et. Culpa mollit laboris qui et veniam reprehenderit do eu sit id.", + "longText": "Mollit minim culpa ipsum aute ullamco. Tempor esse dolor exercitation in enim culpa ipsum sint eu laborum. Ea enim laboris veniam non duis quis. Laboris tempor culpa aliquip eiusmod tempor est ea mollit anim aute voluptate ea. Adipisicing incididunt irure cillum nisi sunt enim duis. Fugiat nostrud officia enim ea.\r\nNisi ullamco Lorem minim deserunt cillum esse officia labore anim commodo incididunt. Eu veniam consectetur ea commodo esse deserunt Lorem ex voluptate ad ad fugiat quis. Velit magna mollit eiusmod fugiat nulla ipsum cupidatat anim non eu nisi. Sint esse est ullamco eiusmod dolore et velit mollit pariatur fugiat sunt ipsum occaecat. Proident quis magna in occaecat aliqua nisi exercitation ea in.\r\n", + "address": "4 Fay Court", + "city": "Libertytown", + "state": "Kentucky", + "zip": 74614, + "country": "United Arab Emirates", + "email": "kempramsey@scentric.com", + "phone": "(983) 496-2931", + "color": "rgb(56,255,141)" + }, + { + "index": 228, + "name": "Tara Campos", + "first": "Roach", + "last": "Dodson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/brunodesign1206/73.jpg", + "boolean": true, + "guid": "777f0227-f8c4-47a4-b0d6-5b0b0703a74d", + "integer": 47, + "date": "Mon Aug 12 1974 17:16:53 GMT-0700 (PDT)", + "shortText": "aliquip nostrud", + "mediumText": "Culpa aute ut ea nisi excepteur reprehenderit consectetur veniam proident deserunt adipisicing excepteur tempor. Laboris adipisicing elit eu proident amet aliquip tempor elit in ut eiusmod proident ea. Aliquip sint quis sit nulla esse ut ullamco qui nostrud nisi sit. Velit cupidatat tempor sit esse. Anim ad officia dolore do mollit et excepteur cupidatat veniam.", + "longText": "Exercitation mollit et Lorem qui aliqua ex pariatur aliquip. Quis elit amet esse eiusmod labore. Excepteur sint sunt aute qui eiusmod ullamco commodo dolore duis ea eiusmod.\r\nConsequat irure minim mollit id amet pariatur qui. Exercitation aute nostrud veniam minim Lorem commodo velit. Nostrud sunt officia dolor aliquip veniam veniam cupidatat. Nisi ut nostrud occaecat cupidatat laborum amet ad reprehenderit voluptate nulla quis nostrud in. Mollit reprehenderit qui sit esse duis laboris sunt fugiat aute qui ex eiusmod non nisi. Dolore veniam ad anim veniam cillum nulla incididunt exercitation velit.\r\nNostrud tempor deserunt est minim aute anim dolore. Minim enim cillum voluptate officia tempor tempor excepteur duis non est elit velit do. Excepteur eiusmod cillum sunt deserunt reprehenderit labore eu aliquip commodo fugiat. Consequat minim exercitation eu fugiat occaecat aliquip elit elit dolore aliquip ea ea. Aliqua ex irure cillum labore ut mollit esse veniam sit.\r\nAliqua nisi non eu ad est enim reprehenderit culpa laborum. Mollit aute esse velit est labore quis irure. Nostrud tempor labore labore aliquip laboris excepteur ad. Lorem incididunt proident pariatur laboris do. Officia magna nostrud eiusmod velit commodo incididunt magna reprehenderit ullamco. Dolore culpa culpa cillum minim voluptate in.\r\n", + "address": "2 Agate Court", + "city": "Genoa", + "state": "American Samoa", + "zip": 48715, + "country": "Portugal", + "email": "roachdodson@scentric.com", + "phone": "(878) 581-2211", + "color": "rgb(224,94,95)" + }, + { + "index": 229, + "name": "Glass Navarro", + "first": "Potter", + "last": "Lowe", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/michalhron/73.jpg", + "boolean": false, + "guid": "181d7287-30f7-4285-bfa9-e21d28869bd0", + "integer": 86, + "date": "Wed Aug 11 1971 11:38:44 GMT-0700 (PDT)", + "shortText": "eu mollit sit", + "mediumText": "Aliquip nulla excepteur elit fugiat. Aliqua do enim eu dolor ipsum nostrud exercitation et veniam ad dolor. Culpa cillum labore aliquip sint do aliqua occaecat culpa ad officia eiusmod irure qui. Occaecat nostrud ad ullamco consequat.", + "longText": "Labore adipisicing pariatur nostrud in irure quis culpa culpa proident. Nulla et est exercitation id Lorem quis in. Culpa non veniam velit do dolore culpa commodo sunt consectetur ullamco laboris. Aliqua est fugiat reprehenderit occaecat qui. Et do Lorem veniam anim cillum do ullamco tempor elit amet.\r\nAliqua exercitation in aute excepteur aute elit nisi ex minim. Proident ex quis eiusmod cupidatat laboris esse consectetur dolor Lorem reprehenderit commodo labore nostrud consectetur. Ea duis tempor proident ad ea mollit adipisicing nisi exercitation voluptate irure ipsum irure velit. Tempor anim eiusmod sint aliquip cillum consectetur deserunt.\r\nAdipisicing laboris ex eiusmod elit ipsum cupidatat anim qui dolor fugiat quis nisi culpa. Sint consequat irure laborum in enim elit irure incididunt sit. Magna consequat quis deserunt ad mollit deserunt. Non id anim consectetur culpa ut do anim do sint veniam. Est amet ea minim minim labore Lorem.\r\n", + "address": "2 Allen Avenue", + "city": "Kilbourne", + "state": "Minnesota", + "zip": 75102, + "country": "Comoros", + "email": "potterlowe@scentric.com", + "phone": "(987) 576-3068", + "color": "rgb(171,255,82)" + }, + { + "index": 230, + "name": "Amparo Pope", + "first": "Maribel", + "last": "Burks", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/itskylemacey/73.jpg", + "boolean": true, + "guid": "f12a9fbc-2a4f-4fa5-8a07-f9241aa3cab1", + "integer": 91, + "date": "Sat Jun 12 2010 19:41:10 GMT-0700 (PDT)", + "shortText": "qui laborum ipsum est", + "mediumText": "Reprehenderit esse occaecat et incididunt ut eu cillum exercitation ut veniam irure. Sunt eu ullamco enim exercitation amet pariatur adipisicing nulla cillum.", + "longText": "Ipsum aliqua eu anim cupidatat tempor cillum tempor in officia anim. Culpa tempor adipisicing qui elit culpa eiusmod aliquip commodo. Dolore commodo consequat mollit ex nostrud aute incididunt officia anim incididunt reprehenderit. Labore Lorem labore minim et consectetur quis laboris incididunt pariatur esse nostrud. Dolore aute mollit esse esse.\r\nIncididunt sunt cillum nisi ea. Fugiat culpa excepteur id est magna sit proident labore commodo. Nostrud cupidatat consectetur nisi ipsum reprehenderit minim sint Lorem consequat cillum eiusmod aliqua pariatur Lorem. Proident magna est sit elit est eiusmod aliquip occaecat ullamco ea officia occaecat ut esse. Sunt tempor cupidatat enim ad reprehenderit incididunt voluptate aute dolor occaecat pariatur dolor.\r\n", + "address": "2 Gerritsen Avenue", + "city": "Westerville", + "state": "Hawaii", + "zip": 56057, + "country": "Central African Republic", + "email": "maribelburks@scentric.com", + "phone": "(843) 435-2675", + "color": "rgb(79,131,175)" + }, + { + "index": 231, + "name": "Dillard Johns", + "first": "Viola", + "last": "Pruitt", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mikaeljorhult/73.jpg", + "boolean": true, + "guid": "9b589ef4-79b4-4bc1-89ea-0b50bf8f5dad", + "integer": 74, + "date": "Thu Aug 21 1980 02:27:46 GMT-0700 (PDT)", + "shortText": "id nisi", + "mediumText": "Magna excepteur laboris enim magna quis ea sint. Velit ex nisi elit reprehenderit nostrud amet quis eu cillum exercitation. Ex elit adipisicing exercitation esse.", + "longText": "Sint nisi cillum ipsum laboris. Reprehenderit irure occaecat reprehenderit excepteur adipisicing exercitation incididunt sunt dolore. Deserunt elit reprehenderit tempor elit ex ea consequat eiusmod incididunt velit et consectetur officia quis. Id sunt enim quis ex nulla in ullamco voluptate anim esse nulla. Eu excepteur dolore deserunt consectetur esse et esse do cupidatat deserunt pariatur irure deserunt sunt.\r\nNon ut tempor Lorem fugiat cupidatat nostrud pariatur veniam fugiat sunt incididunt ut. Exercitation anim officia incididunt irure nulla sunt commodo eu non. Consectetur amet est laboris amet ipsum reprehenderit non exercitation non exercitation duis ut.\r\nEu laborum dolor amet sint deserunt mollit officia est. Velit minim id et deserunt ullamco sint elit tempor dolore consectetur. Cillum aute ut consequat aliqua laboris. Fugiat aute aliqua id ipsum laboris labore labore tempor mollit sunt sint. Sunt consectetur exercitation pariatur commodo occaecat voluptate velit dolore. Exercitation consectetur dolore reprehenderit aliqua eu consequat minim dolore ullamco nisi amet deserunt amet. Occaecat amet nulla incididunt ut cupidatat.\r\nPariatur irure sunt duis Lorem ad veniam ea duis. Anim irure amet commodo proident incididunt laborum elit in voluptate occaecat minim occaecat consequat. Dolore Lorem ex ipsum nulla deserunt dolore aute. Voluptate consectetur irure ea reprehenderit mollit eiusmod occaecat sunt ea adipisicing cupidatat. Proident laboris magna duis aliquip fugiat pariatur exercitation mollit laboris amet sint ea. Sit ex ex consequat sit.\r\nExcepteur amet in id pariatur ullamco excepteur excepteur proident in. Veniam non labore nostrud culpa excepteur sit enim ad duis non commodo nulla. Minim incididunt in ad reprehenderit. Culpa esse magna duis exercitation laboris. Adipisicing eiusmod consectetur culpa cupidatat nostrud sint veniam adipisicing.\r\n", + "address": "2 Grove Street", + "city": "Matthews", + "state": "Alabama", + "zip": 12918, + "country": "Gabon", + "email": "violapruitt@scentric.com", + "phone": "(908) 451-2708", + "color": "rgb(144,170,102)" + }, + { + "index": 232, + "name": "Jeanie Huffman", + "first": "Karyn", + "last": "Edwards", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ryoseptiian/73.jpg", + "boolean": true, + "guid": "7e4ee6b2-7816-43c3-9885-e74857955244", + "integer": 20, + "date": "Sat Apr 12 1975 06:27:04 GMT-0700 (PDT)", + "shortText": "ut sint consectetur", + "mediumText": "Cillum id mollit deserunt officia sint aliquip. Do duis reprehenderit voluptate cupidatat cupidatat Lorem quis fugiat incididunt ut occaecat mollit.", + "longText": "Fugiat sunt proident consequat culpa eiusmod consequat reprehenderit enim sunt. Sit ea ex ex qui labore in. Laborum sint occaecat proident eiusmod ex sit sint commodo officia aliqua culpa. Aliqua reprehenderit exercitation labore Lorem mollit fugiat.\r\nOfficia laborum reprehenderit amet laboris ex. Ullamco qui adipisicing ex laboris do minim proident veniam. Quis voluptate deserunt elit in culpa. Lorem id sint ut exercitation non qui.\r\nEu officia do irure veniam proident in veniam irure. Dolore sint do ad amet proident velit labore incididunt pariatur proident ea velit mollit adipisicing. Anim dolor in reprehenderit sunt ea nostrud est pariatur non do ad.\r\nConsequat amet reprehenderit cillum incididunt et ullamco consequat consequat proident irure. Est veniam tempor ea ad. Reprehenderit sunt tempor exercitation laborum labore anim ad duis consequat.\r\n", + "address": "2 Linden Boulevard", + "city": "Ripley", + "state": "North Carolina", + "zip": 45918, + "country": "Cambodia", + "email": "karynedwards@scentric.com", + "phone": "(877) 447-2061", + "color": "rgb(177,244,78)" + }, + { + "index": 233, + "name": "Alfreda Neal", + "first": "Dunlap", + "last": "Mcclure", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/olivierpineda/73.jpg", + "boolean": false, + "guid": "c5d9f660-404e-4dd8-a4e9-8ebd95a6d6eb", + "integer": 83, + "date": "Sun Dec 31 1978 03:35:38 GMT-0800 (PST)", + "shortText": "fugiat aliquip", + "mediumText": "Eu nulla fugiat dolor magna commodo veniam laboris sint minim Lorem pariatur do. Do elit esse magna voluptate aute nisi cillum. Voluptate culpa aliquip ea quis sunt cillum dolore cupidatat.", + "longText": "Lorem exercitation et mollit tempor Lorem consectetur irure anim. Irure officia elit tempor consequat irure non qui labore id consequat nisi cupidatat. Voluptate labore id adipisicing mollit consequat nulla mollit aute ut occaecat sint incididunt est irure. Tempor irure eiusmod commodo cillum. Officia quis reprehenderit quis elit mollit ea pariatur eu aliquip non aute. Incididunt amet consequat ad velit consequat dolore elit velit qui ea. In qui non adipisicing id anim eiusmod commodo qui Lorem deserunt culpa adipisicing.\r\n", + "address": "2 Bogart Street", + "city": "Shrewsbury", + "state": "Connecticut", + "zip": 80957, + "country": "New Zealand", + "email": "dunlapmcclure@scentric.com", + "phone": "(913) 592-3075", + "color": "rgb(208,154,61)" + }, + { + "index": 234, + "name": "Livingston Osborn", + "first": "Mathis", + "last": "Webster", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aaronalfred/73.jpg", + "boolean": true, + "guid": "c008efb7-14cd-4e64-96a7-2ea18524bdcd", + "integer": 54, + "date": "Sat Mar 01 1986 18:24:28 GMT-0800 (PST)", + "shortText": "ut eiusmod", + "mediumText": "Do mollit cupidatat nostrud esse ex velit esse adipisicing elit labore laboris enim anim. Magna dolore nulla cillum qui laborum et sint anim culpa non aute et. Tempor nisi eiusmod laboris ex aliquip commodo id. Eiusmod aliqua aliqua sunt non ipsum veniam aliqua consequat.", + "longText": "Elit do reprehenderit eiusmod minim quis cillum ad culpa. Cupidatat eu laborum amet duis consectetur culpa fugiat dolore aute. Lorem veniam exercitation cupidatat veniam et nulla. Veniam occaecat exercitation minim nisi dolor proident adipisicing sit non. Occaecat dolore ea minim in deserunt.\r\nSint aliqua magna Lorem nostrud nisi consequat mollit. Labore Lorem amet consectetur reprehenderit duis est ullamco velit eu officia ut labore esse id. Deserunt officia ea est enim nisi elit amet deserunt do labore duis anim. Aliquip non dolore cillum dolore dolor ex tempor velit aliqua enim.\r\nIncididunt consectetur commodo irure et ut adipisicing proident velit. Qui quis consequat id irure. Mollit amet proident irure incididunt deserunt magna.\r\nLaboris ut sint incididunt sit proident officia ex non. Consequat laborum Lorem aute voluptate est laborum quis Lorem nulla. Id velit est cillum elit adipisicing aliquip occaecat nulla nulla pariatur incididunt. In veniam occaecat occaecat ad amet culpa tempor. Non cupidatat pariatur officia et cillum adipisicing veniam elit sint. In cillum minim in occaecat adipisicing. Exercitation labore in ipsum veniam non veniam amet quis.\r\n", + "address": "4 Beverly Road", + "city": "Greer", + "state": "South Carolina", + "zip": 53490, + "country": "Lebanon", + "email": "mathiswebster@scentric.com", + "phone": "(862) 466-2481", + "color": "rgb(99,84,116)" + }, + { + "index": 235, + "name": "Stephenson Blanchard", + "first": "Kirkland", + "last": "Washington", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrebay007/73.jpg", + "boolean": false, + "guid": "8dc10004-46f6-432d-ad1a-b1e2ed707ea2", + "integer": 48, + "date": "Mon Feb 20 2012 00:23:49 GMT-0800 (PST)", + "shortText": "officia", + "mediumText": "Incididunt cupidatat non esse ut adipisicing mollit aliquip ipsum eiusmod ullamco id aute nostrud veniam. Labore ipsum sunt duis elit labore dolor incididunt et consequat enim veniam. Ullamco quis nulla culpa ad labore laborum reprehenderit enim aliqua sit ad duis laboris. Proident non voluptate amet pariatur veniam laborum culpa sint anim mollit.", + "longText": "Nostrud mollit aliquip consectetur voluptate cillum. Qui labore aute adipisicing exercitation officia sint ipsum pariatur consectetur magna ad ad proident. Aute commodo esse veniam deserunt elit. Quis magna occaecat culpa eiusmod ipsum elit occaecat culpa. Excepteur laborum tempor ad consequat consectetur quis tempor anim. Mollit ex magna mollit ad voluptate excepteur.\r\nAmet incididunt veniam sunt deserunt non dolor. Tempor duis laboris laboris amet ullamco labore culpa sit id veniam aliquip adipisicing sunt nisi. Laboris et irure veniam pariatur quis anim officia ad. Ullamco labore anim ipsum labore ex velit nisi fugiat. Ea aliquip sunt fugiat eiusmod ex ullamco id reprehenderit pariatur nulla non sunt ad ullamco. Aliqua enim occaecat tempor ex eu magna eu nulla ex exercitation aute.\r\nQui excepteur dolore aute sunt. Laborum ea do reprehenderit adipisicing ullamco sunt nulla deserunt labore. Adipisicing eiusmod consequat in velit proident voluptate cillum. Ipsum eu adipisicing dolore aute dolor fugiat id deserunt aute veniam. Labore irure sunt non aliqua ut est cupidatat eiusmod ipsum occaecat veniam amet ex fugiat. Consequat voluptate et dolor sint cupidatat anim eiusmod enim veniam.\r\nIncididunt quis non quis ea exercitation. Cupidatat sint duis est commodo sit nulla aliqua ut amet quis fugiat. Amet aliquip aliqua duis minim aute fugiat. Quis veniam sunt ipsum voluptate. Laborum fugiat officia reprehenderit aliqua ad do quis consectetur laboris in consectetur amet anim proident. Deserunt veniam ut pariatur sunt magna aute sit pariatur. Cupidatat dolor mollit aliqua est occaecat dolore laboris sint.\r\n", + "address": "3 Humboldt Street", + "city": "Bath", + "state": "Michigan", + "zip": 99644, + "country": "Armenia", + "email": "kirklandwashington@scentric.com", + "phone": "(927) 536-3348", + "color": "rgb(161,139,176)" + }, + { + "index": 236, + "name": "Mary Bolton", + "first": "Shawn", + "last": "Bean", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thisisgordon/73.jpg", + "boolean": true, + "guid": "9a1ae6b3-19d6-49d3-ade8-41d80ef9a7f9", + "integer": 89, + "date": "Tue Jan 23 1973 17:15:25 GMT-0800 (PST)", + "shortText": "sunt eu amet proident tempor", + "mediumText": "Commodo elit commodo sit sit consectetur excepteur ipsum id exercitation officia amet. Enim amet occaecat reprehenderit ipsum cillum tempor.", + "longText": "Eiusmod quis enim excepteur ipsum magna mollit adipisicing proident deserunt velit ea consequat. Cillum cillum commodo sit ipsum enim ullamco elit consequat non. Ullamco adipisicing occaecat ullamco duis enim velit voluptate eiusmod quis ipsum sunt eu.\r\nEiusmod consectetur id ea ut velit ad eu. Cillum adipisicing id nostrud qui aliquip excepteur anim. Non nulla dolor proident culpa. Adipisicing ea laborum minim occaecat cupidatat sint. Id commodo ipsum laboris ullamco esse excepteur. Duis deserunt consequat proident irure sit ad fugiat.\r\nEx ipsum amet minim cillum ut mollit minim ullamco. Dolor nostrud non dolor est tempor ad ipsum. Minim pariatur ut reprehenderit Lorem.\r\nUllamco eu tempor id fugiat officia in eu incididunt ut elit culpa. Amet eiusmod tempor eiusmod sunt. Nostrud eiusmod eiusmod exercitation sit voluptate dolore. Sint magna officia et consectetur aute nostrud qui. Officia est non non laborum aliqua eu nisi magna do id. Do amet sit culpa pariatur do sunt et eiusmod veniam. Laborum voluptate est ad est eiusmod do commodo aliqua proident id incididunt.\r\n", + "address": "2 Rapelye Street", + "city": "Steinhatchee", + "state": "Maine", + "zip": 24857, + "country": "Cayman Islands", + "email": "shawnbean@scentric.com", + "phone": "(881) 597-2110", + "color": "rgb(52,77,146)" + }, + { + "index": 237, + "name": "Jaime Horn", + "first": "Nina", + "last": "Larsen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rainfalls/73.jpg", + "boolean": true, + "guid": "2d358e80-f8a9-4f14-879c-3e0d6dc7d398", + "integer": 6, + "date": "Tue Jan 10 2006 08:17:15 GMT-0800 (PST)", + "shortText": "do pariatur irure laborum qui", + "mediumText": "Magna aliquip cupidatat laborum fugiat. Et consequat est magna minim veniam mollit nulla ipsum dolore anim adipisicing enim in. Sit veniam sint velit tempor dolor laboris aute deserunt laboris incididunt aute.", + "longText": "Irure fugiat consectetur velit dolor commodo voluptate aliquip irure incididunt veniam. Cillum ipsum cupidatat qui velit consequat. Dolor laboris voluptate irure exercitation aute fugiat. Eu reprehenderit eu Lorem ex. Sint non exercitation mollit non officia nostrud non pariatur cupidatat sit enim dolor in.\r\nId qui pariatur labore commodo ex irure amet. Ex eiusmod esse consequat consequat. Irure culpa occaecat id nostrud id laborum Lorem nulla nostrud nostrud. Velit nulla voluptate cupidatat laboris do. Nisi amet anim fugiat irure esse anim exercitation non. Incididunt in id sit Lorem anim consectetur tempor ex do. Lorem pariatur do consectetur non consectetur velit magna sit eiusmod fugiat irure veniam eiusmod.\r\nMinim consequat ad nostrud sint occaecat et ea non ad et. Nostrud Lorem laborum esse amet ad dolore dolore fugiat commodo consectetur. Fugiat sint et incididunt nulla et est laborum esse ad aliqua. Quis est cupidatat sit ad reprehenderit eu commodo. Id occaecat adipisicing excepteur proident proident aliquip duis ea nostrud consectetur. Ex amet velit ad ipsum minim commodo cillum aliqua magna aliquip eiusmod nisi anim.\r\nIrure reprehenderit non aute laboris ipsum nostrud adipisicing amet voluptate. Eiusmod laborum veniam aliqua laboris consectetur do esse et mollit laborum esse. Quis excepteur officia sunt eu eiusmod enim laboris in aute. Minim nisi ipsum labore laborum. Officia eiusmod nostrud qui consectetur.\r\n", + "address": "3 Grimes Road", + "city": "Stagecoach", + "state": "Kansas", + "zip": 54299, + "country": "Italy", + "email": "ninalarsen@scentric.com", + "phone": "(833) 427-3141", + "color": "rgb(238,80,95)" + }, + { + "index": 238, + "name": "Ewing Prince", + "first": "Burch", + "last": "Hinton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eldelentes/73.jpg", + "boolean": false, + "guid": "c51adfad-516d-4572-a27b-d5029bf01030", + "integer": 70, + "date": "Sun Aug 28 2005 15:03:02 GMT-0700 (PDT)", + "shortText": "labore labore", + "mediumText": "Deserunt elit sint laborum occaecat qui mollit. In anim ad ea dolor enim nisi ut veniam. Adipisicing nisi dolore quis excepteur labore sit commodo officia qui irure elit. Ipsum commodo consectetur reprehenderit magna excepteur reprehenderit laborum culpa ullamco Lorem eu tempor eiusmod non.", + "longText": "Aliqua enim eu do veniam excepteur consequat non cillum elit consequat ipsum ea esse. Elit sit et nulla laboris ad consectetur minim ut tempor consequat do. Enim aute pariatur nostrud aliqua nulla amet adipisicing.\r\nCulpa nulla dolore exercitation dolore nulla officia. Consequat ut mollit eu cillum qui nisi consequat deserunt tempor ut fugiat. Commodo reprehenderit dolore mollit ut. Et irure consequat qui ad ipsum enim cillum in in. Aute exercitation in sunt exercitation consequat aliquip culpa ipsum deserunt esse cupidatat id.\r\nQuis deserunt quis deserunt reprehenderit sint do. Qui cillum ut minim officia amet ullamco eu nulla eu laborum ipsum excepteur. Enim aliqua occaecat commodo non anim pariatur sunt aute minim eiusmod nisi eu est. Minim esse duis nisi exercitation id dolor. Duis ullamco proident exercitation proident duis laborum irure enim ut amet.\r\n", + "address": "3 Downing Street", + "city": "Dyckesville", + "state": "Iowa", + "zip": 40075, + "country": "Lesotho", + "email": "burchhinton@scentric.com", + "phone": "(876) 448-2187", + "color": "rgb(251,248,74)" + }, + { + "index": 239, + "name": "Sharlene Bryan", + "first": "Celina", + "last": "Jimenez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/robinclediere/73.jpg", + "boolean": true, + "guid": "fc6767db-fb4a-4de3-bcc2-5a503cd8bbe6", + "integer": 40, + "date": "Mon Oct 02 1972 11:23:02 GMT-0700 (PDT)", + "shortText": "id", + "mediumText": "Exercitation exercitation exercitation proident adipisicing quis. Non aliquip dolore nostrud amet exercitation officia do elit duis nisi. Proident sit sunt magna pariatur commodo in culpa exercitation nostrud culpa adipisicing.", + "longText": "Officia adipisicing aliquip duis amet enim officia fugiat non aute exercitation. Elit ut cillum incididunt exercitation veniam id aliqua nulla voluptate reprehenderit sunt deserunt officia adipisicing. Sint ullamco eiusmod occaecat velit cupidatat ullamco pariatur ut duis fugiat. Non ullamco non aliqua cupidatat occaecat ipsum ea ut. Tempor enim ut voluptate laborum laborum reprehenderit cillum ea voluptate tempor magna ullamco enim amet. Dolor cupidatat sint do mollit.\r\n", + "address": "4 Putnam Avenue", + "city": "Fairfield", + "state": "Vermont", + "zip": 49521, + "country": "Mongolia", + "email": "celinajimenez@scentric.com", + "phone": "(853) 562-3172", + "color": "rgb(187,177,206)" + }, + { + "index": 240, + "name": "Anastasia Marquez", + "first": "Mcdonald", + "last": "Goff", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/73.jpg", + "boolean": true, + "guid": "356dd512-ac27-409d-a8ae-9a518b9f0d09", + "integer": 71, + "date": "Sun Aug 11 2013 06:10:11 GMT-0700 (PDT)", + "shortText": "eu esse tempor", + "mediumText": "Excepteur esse voluptate ut officia nulla excepteur minim enim. Dolore tempor dolore ex sunt pariatur irure.", + "longText": "Irure consequat qui labore nulla veniam. Adipisicing magna eiusmod quis anim et nostrud occaecat fugiat pariatur id esse commodo et ad. Sunt adipisicing tempor Lorem tempor eiusmod ut fugiat laboris voluptate sunt. Cillum ipsum voluptate duis veniam consequat nostrud pariatur commodo aute quis. Sit aute ex quis voluptate minim incididunt veniam. Excepteur nulla qui proident id est. Id aliquip excepteur proident culpa sunt enim non ad.\r\nNon nulla proident adipisicing non nulla adipisicing magna laboris ad duis occaecat duis velit. Sunt eiusmod nulla laboris quis adipisicing adipisicing excepteur. Ea ea labore magna labore consectetur eiusmod laboris qui dolore aliquip aliquip. Reprehenderit Lorem voluptate sunt tempor non reprehenderit officia duis quis tempor.\r\nEt laboris incididunt excepteur laborum ad eu aliqua commodo pariatur. Esse in fugiat elit voluptate ad excepteur magna cillum ipsum ipsum et non fugiat ipsum. Adipisicing ut ut ex in qui fugiat incididunt exercitation excepteur consequat adipisicing.\r\nExcepteur mollit amet enim dolore ad laborum esse exercitation. Aute deserunt ullamco culpa nostrud dolore sunt nisi laboris esse Lorem culpa irure. Irure consectetur nulla Lorem laborum enim ut ut incididunt id pariatur. Est eiusmod velit ad magna deserunt excepteur sunt ex tempor elit aliquip amet. Exercitation laborum sit commodo nostrud velit pariatur Lorem cupidatat exercitation.\r\nEiusmod ex mollit aute sint aliqua nulla ea irure eiusmod dolore proident aute officia voluptate. Ipsum consequat sunt ea aliquip ea enim sint irure Lorem. Incididunt enim consequat mollit amet et occaecat qui est cupidatat ad. Cupidatat voluptate consequat cupidatat et amet in. Cupidatat id laboris duis nostrud et reprehenderit fugiat. Sit laborum non duis et.\r\n", + "address": "3 Corbin Place", + "city": "Nadine", + "state": "Nebraska", + "zip": 41484, + "country": "Germany", + "email": "mcdonaldgoff@scentric.com", + "phone": "(891) 532-3564", + "color": "rgb(165,152,170)" + }, + { + "index": 241, + "name": "Faith Hayes", + "first": "Lessie", + "last": "Garza", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hsinyo23/73.jpg", + "boolean": false, + "guid": "97574a4a-fc23-4e79-add5-5296baa4336a", + "integer": 36, + "date": "Mon Oct 29 1984 10:50:51 GMT-0800 (PST)", + "shortText": "enim consequat velit occaecat", + "mediumText": "Exercitation aute eu cupidatat labore laboris ut incididunt voluptate quis sint sit. Enim id incididunt officia aliqua adipisicing ipsum. Et duis laboris tempor velit fugiat.", + "longText": "Magna do nisi exercitation qui. Amet nostrud magna magna deserunt Lorem consectetur consectetur. Laborum exercitation magna occaecat ex commodo. Proident reprehenderit Lorem et fugiat deserunt eiusmod proident pariatur aute sint dolor. Nisi deserunt labore mollit labore eiusmod. Culpa ad aute deserunt occaecat fugiat. Ad qui labore exercitation do sint aliquip culpa ex nulla enim laboris voluptate ad.\r\nLaborum proident sit laborum excepteur. Eiusmod id in dolore sunt pariatur laboris esse. Consectetur in officia non ea aute id occaecat adipisicing nulla velit. Qui reprehenderit cupidatat quis quis elit aute tempor amet incididunt incididunt qui pariatur.\r\nConsequat veniam labore laborum cillum nostrud. Aute sit enim tempor occaecat magna ea reprehenderit consectetur sint consectetur cillum. Qui proident eiusmod quis quis duis. Ex ex laboris elit culpa laborum laboris dolore nisi id ipsum pariatur quis cupidatat. Velit id fugiat Lorem veniam. Elit pariatur culpa incididunt eiusmod anim ullamco dolore. Magna deserunt cillum non cupidatat nulla exercitation ullamco ipsum adipisicing consequat pariatur.\r\n", + "address": "2 Billings Place", + "city": "Fowlerville", + "state": "Florida", + "zip": 63875, + "country": "Thailand", + "email": "lessiegarza@scentric.com", + "phone": "(853) 436-2778", + "color": "rgb(129,67,86)" + }, + { + "index": 242, + "name": "Berg Ray", + "first": "Greer", + "last": "Turner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/axel/73.jpg", + "boolean": true, + "guid": "0fbc2172-5658-40d0-babd-9610530bf605", + "integer": 78, + "date": "Thu Apr 29 2004 02:33:23 GMT-0700 (PDT)", + "shortText": "reprehenderit labore quis voluptate magna", + "mediumText": "Veniam et magna fugiat ut ex pariatur deserunt non. Ullamco dolor esse esse ut laboris reprehenderit eiusmod amet enim. Proident sit cupidatat est consequat ex excepteur fugiat cupidatat aliquip. Veniam non sit dolor ea proident consequat elit nulla elit incididunt labore ullamco. Ut proident incididunt laboris esse.", + "longText": "Dolor tempor duis veniam excepteur nulla nostrud. Officia consectetur est adipisicing do duis quis laborum. Tempor proident proident qui consequat eu. Voluptate magna adipisicing non nulla non dolor cupidatat fugiat irure. Pariatur Lorem culpa ex sunt cupidatat. Non incididunt cupidatat mollit esse Lorem. Est et laborum enim et laborum officia non amet aliquip deserunt.\r\nMinim cupidatat eiusmod cupidatat ad amet incididunt deserunt duis velit excepteur ipsum culpa qui. Tempor eiusmod incididunt voluptate dolore id dolor dolor. Eu enim deserunt eu laborum sunt excepteur excepteur aliquip exercitation occaecat nulla magna. Est officia proident irure quis consectetur. Ut magna veniam aliquip laborum fugiat ex ea ut sint laboris sint. Quis exercitation sit nostrud proident sint et do cillum sunt duis excepteur anim aute non.\r\n", + "address": "2 Schermerhorn Street", + "city": "Century", + "state": "New Jersey", + "zip": 72260, + "country": "Seychelles", + "email": "greerturner@scentric.com", + "phone": "(962) 538-2574", + "color": "rgb(215,92,57)" + }, + { + "index": 243, + "name": "Gates Bush", + "first": "Cohen", + "last": "Sweet", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/traneblow/73.jpg", + "boolean": true, + "guid": "6dd5c482-2b39-4e90-9158-ad1ef6027185", + "integer": 69, + "date": "Tue Nov 02 1982 15:17:04 GMT-0800 (PST)", + "shortText": "anim culpa culpa", + "mediumText": "Commodo et fugiat adipisicing voluptate est. Occaecat laborum ad reprehenderit in nulla dolore. Quis aute excepteur fugiat aute laboris. Ex sint consectetur dolore magna exercitation velit reprehenderit labore irure proident aliquip cupidatat aute. Ad eiusmod anim id magna elit aliqua.", + "longText": "Proident amet commodo elit sunt aliqua et irure officia. Eu quis pariatur dolore mollit esse cupidatat ut do. Officia laborum laboris quis ullamco minim adipisicing proident ullamco occaecat elit amet. Ad magna ea est dolore. Nulla irure nostrud et commodo veniam ad veniam culpa culpa adipisicing velit qui enim nostrud. Nostrud labore labore proident voluptate do quis deserunt aute ad minim velit amet ad cillum.\r\nIncididunt in fugiat incididunt tempor reprehenderit commodo ipsum aute labore laboris duis. Deserunt fugiat fugiat ipsum minim dolore ex excepteur sit cillum duis sint velit aute est. Adipisicing occaecat ut esse ullamco sint enim eu magna tempor laboris. Pariatur aute nisi id dolore mollit do occaecat ad. Consequat proident eiusmod tempor veniam incididunt commodo culpa eiusmod minim enim duis aliquip. Dolore irure eiusmod laboris nostrud ipsum laborum Lorem. Amet proident enim exercitation id duis dolor officia sunt.\r\nIn ea fugiat pariatur mollit proident fugiat do labore id Lorem aute. Nostrud sit duis minim duis laborum laboris adipisicing cillum veniam adipisicing commodo exercitation ex in. Aliqua enim velit consequat do tempor enim laborum dolore sit. Non quis irure laborum sunt cupidatat exercitation culpa reprehenderit id excepteur ullamco magna dolor aute. Nostrud nisi amet pariatur esse dolor elit aliquip dolore esse do dolor officia laboris officia. Anim voluptate sint quis sit veniam non aliqua ipsum proident qui nostrud mollit. Consectetur sunt duis ex tempor laborum eiusmod velit commodo aute laborum.\r\nAliqua commodo commodo non do occaecat esse culpa minim fugiat in labore consequat reprehenderit proident. Laboris pariatur proident ut et veniam cillum Lorem consequat qui eiusmod. Enim veniam nisi enim aliquip exercitation cillum fugiat.\r\nProident dolor ipsum aliqua amet sit do labore aute commodo. Laboris fugiat id laboris occaecat. Qui dolor id aliqua elit ex non adipisicing culpa tempor duis et laboris officia. Eu dolore pariatur est voluptate incididunt ea proident duis non incididunt minim et nulla ex. Exercitation excepteur incididunt fugiat id anim deserunt consequat nisi veniam laboris officia consectetur fugiat. Eu excepteur esse anim reprehenderit dolor enim reprehenderit aliqua consectetur cillum quis. Nisi sint quis incididunt commodo duis sit deserunt dolor laborum dolore labore ex commodo cillum.\r\n", + "address": "4 Hunterfly Place", + "city": "Osage", + "state": "Wisconsin", + "zip": 10229, + "country": "Chad", + "email": "cohensweet@scentric.com", + "phone": "(961) 506-3669", + "color": "rgb(223,99,51)" + }, + { + "index": 244, + "name": "Rosella Sharpe", + "first": "Hilary", + "last": "Jacobs", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thimo_cz/73.jpg", + "boolean": false, + "guid": "b8a9b448-8f16-4879-88a7-b438a45e7dcc", + "integer": 36, + "date": "Mon Feb 09 1998 12:55:02 GMT-0800 (PST)", + "shortText": "labore consectetur", + "mediumText": "Ullamco deserunt sunt consectetur irure adipisicing nostrud incididunt incididunt cillum. Amet aute dolor labore pariatur aliquip reprehenderit sunt.", + "longText": "Nisi ad esse nulla reprehenderit elit. Occaecat amet qui consectetur quis occaecat reprehenderit ea ad ex fugiat nulla. Voluptate et velit ullamco aliquip adipisicing qui pariatur deserunt deserunt minim. Amet elit ullamco ea adipisicing aute enim non culpa quis officia exercitation pariatur.\r\nMollit qui ut nulla elit. Consectetur qui mollit adipisicing aute ad irure culpa reprehenderit proident labore. Lorem aliquip consequat tempor laborum duis id dolore aliqua. Ullamco culpa culpa adipisicing duis labore irure proident qui elit proident dolor dolor sit. Nisi nisi velit dolore ipsum Lorem cillum aute occaecat excepteur labore enim exercitation mollit non.\r\nCillum consectetur deserunt duis nulla pariatur laborum adipisicing. Nisi magna duis irure aute irure proident tempor aliquip quis sunt amet. Veniam excepteur laborum culpa nostrud id et consequat ut aliqua velit. In quis enim sunt minim esse est proident elit consequat. Ipsum id ad pariatur officia pariatur cupidatat qui sunt. Irure ut officia magna mollit et quis labore amet esse deserunt tempor Lorem duis. Duis exercitation officia ea est ipsum sunt.\r\nEiusmod Lorem officia velit elit cupidatat aliqua occaecat non aute ut nulla do pariatur. Mollit enim ad officia eiusmod sint qui ex non incididunt. Eiusmod irure voluptate aliquip nisi dolore adipisicing incididunt Lorem aute minim ea labore aute. Occaecat fugiat esse velit sit cupidatat non occaecat ex laborum qui magna enim. Laboris eu nisi nostrud incididunt est. Id dolore in adipisicing non et velit exercitation Lorem elit excepteur deserunt.\r\n", + "address": "2 Emerald Street", + "city": "Basye", + "state": "Washington", + "zip": 84048, + "country": "Uruguay", + "email": "hilaryjacobs@scentric.com", + "phone": "(850) 481-3931", + "color": "rgb(175,197,147)" + }, + { + "index": 245, + "name": "Ballard Mason", + "first": "Nell", + "last": "Harper", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/majksner/73.jpg", + "boolean": true, + "guid": "4367e70e-505b-4a00-b33c-8ad5dbef5274", + "integer": 22, + "date": "Tue Feb 21 1995 19:57:05 GMT-0800 (PST)", + "shortText": "labore incididunt", + "mediumText": "Sit culpa ipsum eu nulla quis id in nostrud tempor officia tempor voluptate enim. Anim ut ullamco reprehenderit eu. Enim veniam do labore eiusmod enim elit dolor.", + "longText": "Duis do esse cillum ea esse ad. Quis incididunt nulla commodo eiusmod. Magna ipsum reprehenderit sit dolor non esse culpa anim aliquip. Esse adipisicing nostrud pariatur consectetur aliqua reprehenderit ad. Cupidatat incididunt cupidatat sit proident consequat enim duis consequat mollit elit deserunt qui. Deserunt dolor do nisi quis laboris dolor irure esse excepteur. Ex consequat incididunt id et in esse officia laboris nostrud.\r\nDolor labore nulla nisi ex sit nisi qui sit aliqua dolore elit dolore incididunt. Laboris qui do duis ipsum pariatur nulla magna. Elit reprehenderit veniam reprehenderit laboris proident amet mollit sunt minim et deserunt sint nulla minim. Nisi sunt eu aute ea ut pariatur est magna voluptate tempor anim. Do id laboris Lorem magna commodo voluptate nostrud magna cupidatat proident irure nostrud laboris sunt.\r\nQui occaecat excepteur ea magna quis enim magna consectetur nostrud consequat non veniam tempor nostrud. Mollit et ex aute aute consectetur veniam aute ut sunt culpa eu. Ullamco amet voluptate adipisicing nulla consectetur in. Minim excepteur enim aliquip nisi velit duis ea. Consectetur minim fugiat nostrud reprehenderit minim et proident id pariatur Lorem proident ipsum eiusmod. Ea nulla enim ullamco aute do. Laborum consequat sint ipsum consectetur.\r\nIrure ullamco dolore aute occaecat excepteur proident dolor. Nulla ut sunt adipisicing dolor elit duis sit laboris commodo do est. Do cillum est voluptate tempor mollit officia cupidatat ad pariatur elit officia ullamco. Eu esse aute officia est duis commodo aliquip ipsum officia cupidatat do magna Lorem. Cillum incididunt adipisicing minim aliquip ea esse adipisicing laborum proident deserunt. Deserunt Lorem excepteur enim id nisi pariatur tempor eiusmod proident nisi.\r\n", + "address": "2 Boynton Place", + "city": "Gerber", + "state": "Oregon", + "zip": 35064, + "country": "Burkina Faso", + "email": "nellharper@scentric.com", + "phone": "(978) 583-3962", + "color": "rgb(114,234,175)" + }, + { + "index": 246, + "name": "Alexis Kramer", + "first": "Koch", + "last": "Carpenter", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/angelcreative/73.jpg", + "boolean": false, + "guid": "27db3441-a52c-4633-9e2e-c1b68bbab9ab", + "integer": 18, + "date": "Wed May 05 2010 06:16:29 GMT-0700 (PDT)", + "shortText": "amet fugiat ut", + "mediumText": "Ad cupidatat amet ullamco ullamco officia cillum sit id duis non non. Eiusmod pariatur ea ipsum et exercitation enim minim eu nostrud voluptate. Reprehenderit nostrud nisi aliquip elit ea culpa laborum irure aliqua deserunt labore ea. Minim occaecat id quis consectetur irure nostrud exercitation laborum. Nostrud est nostrud anim reprehenderit enim dolore irure laborum enim est deserunt incididunt laboris magna.", + "longText": "Magna ex exercitation dolor ex et sit enim fugiat ad sint velit officia sunt. Sint officia dolor fugiat minim id amet dolore commodo reprehenderit aute veniam. Eu non do irure proident consequat velit pariatur amet voluptate dolor exercitation. Deserunt sunt sunt sunt eiusmod qui culpa irure anim dolor aute consequat adipisicing. Enim velit est esse ea laboris Lorem do.\r\nLabore est aliqua exercitation minim et. Proident occaecat eu aliquip minim sit mollit Lorem. Lorem aute consectetur incididunt ullamco ut et labore laboris labore. Exercitation aute ullamco velit duis.\r\nUt velit tempor proident ut. Laboris cillum enim ut aliqua amet minim et do cupidatat elit commodo veniam aliquip culpa. Duis minim consectetur proident excepteur aliquip sint quis ex sunt laboris veniam deserunt commodo aute. Commodo ipsum laborum quis exercitation nostrud aute ad laboris. Anim sint sit et minim amet officia. Pariatur labore exercitation proident veniam duis sit exercitation cupidatat cillum Lorem ea duis non.\r\nEa veniam ad voluptate labore dolore esse in. Occaecat et est sint sint tempor non culpa veniam proident elit eiusmod proident adipisicing. Proident cupidatat et nulla amet nulla.\r\nEx est duis consequat proident est. Adipisicing enim elit labore eu in ipsum qui consectetur do veniam labore. Nostrud ullamco mollit cillum Lorem labore labore mollit non amet voluptate ullamco magna. Ex id quis eiusmod eiusmod Lorem est. Velit Lorem velit pariatur fugiat irure ad est cillum cupidatat tempor sit exercitation. Lorem ea cillum aliqua nisi veniam nostrud excepteur. Magna cillum aliquip anim irure dolor.\r\n", + "address": "2 Hudson Avenue", + "city": "Hiseville", + "state": "Illinois", + "zip": 75977, + "country": "Greenland", + "email": "kochcarpenter@scentric.com", + "phone": "(912) 523-3269", + "color": "rgb(254,230,133)" + }, + { + "index": 247, + "name": "Larson Mcguire", + "first": "Earnestine", + "last": "Curry", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/marcus3de/73.jpg", + "boolean": false, + "guid": "0e87dcfe-dfe9-4c49-9da7-37fac49566fb", + "integer": 69, + "date": "Wed Apr 27 1977 14:45:51 GMT-0700 (PDT)", + "shortText": "aute quis minim laborum", + "mediumText": "Fugiat deserunt ea do sint pariatur anim.", + "longText": "Ex ullamco ut irure quis dolore aliqua ex reprehenderit culpa non do. Amet mollit dolore esse anim velit. Dolore et laborum excepteur voluptate deserunt voluptate occaecat officia consequat veniam ad aliquip. Nisi commodo in Lorem consequat ut irure fugiat quis deserunt dolore.\r\nEiusmod tempor in reprehenderit ut ut do in labore minim consectetur laboris sunt ullamco. Eu ut fugiat enim magna elit proident. Velit laborum ipsum pariatur laborum elit pariatur quis.\r\n", + "address": "3 Blake Court", + "city": "Riceville", + "state": "West Virginia", + "zip": 44569, + "country": "Fiji", + "email": "earnestinecurry@scentric.com", + "phone": "(947) 457-2441", + "color": "rgb(192,84,251)" + }, + { + "index": 248, + "name": "Elisa Gilbert", + "first": "Opal", + "last": "Rush", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lizpradal/73.jpg", + "boolean": false, + "guid": "af31a9db-6478-45f9-b053-48ea4d2c7ad2", + "integer": 12, + "date": "Sun Aug 17 1986 13:15:07 GMT-0700 (PDT)", + "shortText": "et nulla incididunt in in", + "mediumText": "Occaecat cupidatat proident cupidatat officia exercitation veniam exercitation nisi.", + "longText": "Ex enim magna pariatur eiusmod aliqua ad id sit in culpa adipisicing sint ut anim. Ex duis consequat non voluptate exercitation qui nostrud dolore quis ipsum esse. Exercitation nisi tempor ut labore fugiat incididunt cupidatat non sunt esse. Anim mollit nisi ut veniam amet voluptate labore eiusmod adipisicing fugiat ullamco aute amet duis. Ea fugiat dolore ipsum dolore ex velit laborum aliquip eu mollit minim. Eu non dolor adipisicing sint elit labore eiusmod et aliqua.\r\nIpsum cupidatat laborum consequat excepteur quis fugiat ex veniam sint tempor ullamco sit ut aliquip. Magna ex exercitation duis proident anim ipsum esse commodo in dolor irure. Ullamco occaecat culpa elit aliquip do.\r\n", + "address": "2 Belmont Avenue", + "city": "Manitou", + "state": "Mississippi", + "zip": 31901, + "country": "Viet Nam", + "email": "opalrush@scentric.com", + "phone": "(944) 429-3751", + "color": "rgb(73,188,227)" + }, + { + "index": 249, + "name": "Richardson Pena", + "first": "Lauri", + "last": "Macias", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mironcatalin/73.jpg", + "boolean": true, + "guid": "d2190b02-e2b9-47da-9a5d-43ab822a4242", + "integer": 1, + "date": "Sat Apr 25 1981 19:27:16 GMT-0800 (PST)", + "shortText": "dolor culpa", + "mediumText": "Veniam excepteur elit esse ex mollit. Aliquip adipisicing consectetur occaecat aliquip consectetur nisi ut est ipsum tempor cillum eiusmod excepteur.", + "longText": "Sint labore cillum sit elit consequat est sunt voluptate. Irure velit enim anim elit ea culpa ut consequat aute magna dolore. Sit reprehenderit elit eiusmod in enim. Sint elit officia laborum qui do eiusmod voluptate sunt et consequat. Duis laboris consequat culpa excepteur sunt qui irure est cupidatat eiusmod dolor mollit. Eiusmod est irure quis ut ad aliqua consectetur fugiat consectetur.\r\nDeserunt voluptate laboris occaecat pariatur elit. Ad eiusmod pariatur incididunt cillum irure duis labore labore. Nostrud nostrud minim aliquip nostrud eiusmod sunt ipsum reprehenderit labore enim ea tempor. Nostrud laboris mollit enim eu labore deserunt.\r\nOfficia non reprehenderit laborum quis cupidatat sit. Consectetur dolore est non tempor Lorem sint eu ea cupidatat occaecat dolor. Culpa sunt aliquip id dolore mollit aliquip esse qui culpa in amet sit incididunt. Ullamco est laborum aliqua incididunt. Aliquip id mollit minim proident sit.\r\nCulpa nostrud culpa deserunt culpa Lorem laborum minim sit sit. Ullamco qui do sunt est duis. Voluptate magna deserunt ipsum esse laborum dolor cillum. Magna cillum laborum sit veniam.\r\nQuis enim deserunt et mollit adipisicing. Eu sunt in esse adipisicing eu consequat magna dolore commodo labore culpa elit. Consequat elit fugiat ullamco in non dolor. Eu irure adipisicing laborum nisi commodo ipsum consequat officia ipsum in dolore laboris culpa.\r\n", + "address": "2 Atkins Avenue", + "city": "Bynum", + "state": "Rhode Island", + "zip": 45405, + "country": "France, Metropolitan", + "email": "laurimacias@scentric.com", + "phone": "(889) 487-2711", + "color": "rgb(140,77,221)" + }, + { + "index": 250, + "name": "James Christensen", + "first": "Atkinson", + "last": "White", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/michaelbowden3/73.jpg", + "boolean": true, + "guid": "5b8652f2-a3c4-4f58-b4ae-df90d92002f2", + "integer": 99, + "date": "Tue Jan 30 1979 23:03:56 GMT-0800 (PST)", + "shortText": "veniam mollit ad nisi", + "mediumText": "Labore veniam anim aliqua duis deserunt dolor aliquip. Excepteur est non labore eiusmod id duis. Exercitation occaecat occaecat excepteur sit sint sit nisi labore ex tempor consequat duis.", + "longText": "Excepteur laborum velit eu irure dolor magna sit proident. Sint minim cillum commodo pariatur anim reprehenderit laborum occaecat reprehenderit pariatur ullamco. Cupidatat consectetur est incididunt enim exercitation.\r\nDeserunt tempor aliqua velit laboris qui dolore nulla culpa. Minim exercitation ut minim laborum anim aliquip minim eu dolore veniam. Ut anim do elit fugiat fugiat ad dolor ea sit velit qui dolor. Excepteur voluptate ea anim ullamco labore tempor aliqua sunt cillum occaecat cupidatat irure tempor. Consectetur fugiat elit ullamco nisi reprehenderit exercitation. Ipsum adipisicing ullamco laboris pariatur consectetur eu amet reprehenderit. Veniam aliqua sit aute pariatur sit.\r\nAdipisicing esse ad non laboris irure dolore Lorem adipisicing. Voluptate pariatur sit et eiusmod. Est do aute elit ipsum. Non velit irure magna amet sunt ex.\r\nVeniam sint labore velit ad eu velit deserunt occaecat elit exercitation dolor. Aute proident sit nisi incididunt laborum consectetur ea minim nisi anim mollit do ipsum. Consectetur ullamco nulla eu elit non ex pariatur magna labore. Nisi reprehenderit Lorem quis commodo sit elit sunt eu occaecat ad velit excepteur irure. Exercitation reprehenderit aute consectetur velit dolore incididunt elit quis anim dolore aliqua laboris ex.\r\nDo ut in mollit sunt irure id enim cillum nulla elit cupidatat. Duis nulla enim mollit in in incididunt est anim occaecat commodo ea magna. Tempor enim excepteur nostrud nostrud non nostrud non esse. In id incididunt labore pariatur veniam ipsum Lorem.\r\n", + "address": "4 Kay Court", + "city": "Veyo", + "state": "Georgia", + "zip": 60806, + "country": "Uganda", + "email": "atkinsonwhite@scentric.com", + "phone": "(912) 432-3782", + "color": "rgb(177,214,156)" + }, + { + "index": 251, + "name": "Berry Greene", + "first": "Carey", + "last": "Hawkins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bermonpainter/73.jpg", + "boolean": true, + "guid": "6f4e5523-3a13-4b9c-98c4-99a1f8a24e7e", + "integer": 50, + "date": "Tue Sep 23 1980 15:29:12 GMT-0700 (PDT)", + "shortText": "id pariatur eu ut dolor", + "mediumText": "Mollit aute aliquip veniam irure do enim commodo excepteur culpa occaecat commodo eiusmod in reprehenderit. Non reprehenderit sint officia aliqua. Nostrud fugiat minim pariatur dolore in minim ea ut cillum do pariatur mollit proident.", + "longText": "Ad amet sunt ea aliqua incididunt ea non tempor cillum et et tempor. Esse ullamco consectetur tempor fugiat fugiat fugiat. Ex elit consequat nisi quis ut anim cillum sit ipsum esse. Tempor ex adipisicing ea culpa aute do ipsum et. Ipsum eu fugiat velit dolore exercitation sunt Lorem minim dolore quis ut nulla fugiat. Ut consectetur commodo aute nulla reprehenderit voluptate dolor fugiat ullamco.\r\nQui excepteur fugiat incididunt Lorem exercitation dolore dolore magna qui. Eiusmod non adipisicing sit et nisi occaecat pariatur sint elit esse et aute laborum pariatur. Commodo sit ut esse irure incididunt non veniam labore occaecat commodo aliquip.\r\nCommodo incididunt ex deserunt exercitation reprehenderit. Exercitation consequat amet cillum incididunt enim aute nostrud. Sit esse reprehenderit nulla Lorem magna in.\r\nTempor fugiat ipsum sint excepteur enim magna fugiat irure fugiat ad nulla anim minim. Exercitation et veniam exercitation aute nulla do quis reprehenderit sint nostrud duis Lorem qui enim. Cillum pariatur aliqua et ex irure exercitation elit id minim nostrud in. Eiusmod do fugiat veniam cupidatat deserunt amet velit enim adipisicing.\r\nCupidatat est et labore fugiat eu elit consectetur et culpa voluptate. Exercitation dolor excepteur veniam eiusmod ullamco laboris et deserunt velit proident aliquip. Adipisicing Lorem do amet sunt enim. Pariatur labore qui aliquip elit excepteur culpa nulla velit ea laborum consequat commodo ipsum proident. Est est reprehenderit incididunt sint officia ex quis dolor enim et veniam.\r\n", + "address": "2 Tillary Street", + "city": "Fivepointville", + "state": "New Mexico", + "zip": 85127, + "country": "Antarctica", + "email": "careyhawkins@scentric.com", + "phone": "(868) 519-2817", + "color": "rgb(74,226,202)" + }, + { + "index": 252, + "name": "Melva Frederick", + "first": "Haley", + "last": "Morris", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/parasenak/73.jpg", + "boolean": true, + "guid": "0280cd72-ee64-4c9c-aa16-67f76f572d10", + "integer": 13, + "date": "Thu Aug 27 1992 14:36:33 GMT-0700 (PDT)", + "shortText": "magna incididunt duis adipisicing consequat", + "mediumText": "Ea exercitation voluptate mollit consequat voluptate eu minim. Quis aute ullamco labore reprehenderit non elit laboris aute sunt mollit mollit sunt. Do velit ad enim nulla reprehenderit laboris mollit.", + "longText": "Ullamco eu cupidatat eiusmod aute. Ex non aute ea fugiat duis qui velit. Culpa est duis consequat pariatur ad dolor exercitation. Elit nostrud cillum officia esse incididunt. Excepteur et in ex nulla eiusmod anim aliqua qui Lorem do amet. Anim voluptate sint culpa aute esse exercitation ex proident ullamco elit deserunt duis. Qui culpa tempor exercitation anim ipsum.\r\nReprehenderit cupidatat est pariatur adipisicing ad laboris cillum aute laboris adipisicing exercitation fugiat. Nisi reprehenderit fugiat nulla et proident ut enim excepteur commodo. Laboris laborum quis fugiat consequat et do. Minim adipisicing reprehenderit tempor laborum voluptate occaecat incididunt in aliqua ipsum reprehenderit est duis deserunt. Mollit cillum cupidatat Lorem incididunt duis laborum aute incididunt do. Nisi ea amet excepteur sit aliqua nulla. Sunt fugiat consequat commodo nostrud deserunt sunt nostrud ad esse dolor.\r\n", + "address": "2 Anthony Street", + "city": "Vivian", + "state": "Arizona", + "zip": 87173, + "country": "Kiribati", + "email": "haleymorris@scentric.com", + "phone": "(914) 569-3745", + "color": "rgb(77,218,207)" + }, + { + "index": 253, + "name": "Moses Leach", + "first": "Margret", + "last": "Baird", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/duyvk/73.jpg", + "boolean": false, + "guid": "2da52347-1212-4146-ad5b-1d770195f05c", + "integer": 57, + "date": "Sat May 31 1980 05:14:11 GMT-0700 (PDT)", + "shortText": "veniam voluptate minim elit amet", + "mediumText": "Voluptate in elit laborum commodo quis do proident pariatur aliqua velit exercitation cupidatat consequat. Sint quis ex aliqua velit commodo non cillum amet magna velit laborum amet reprehenderit ipsum.", + "longText": "Mollit nostrud cillum duis do ipsum duis cillum sint veniam ipsum. Qui ad ex ad id do labore enim proident est aute. Lorem quis pariatur pariatur id dolore id. Nulla esse ullamco eu enim eu Lorem et adipisicing est nisi eiusmod proident. Nostrud deserunt duis qui ad ad. Adipisicing esse aute amet consectetur aliquip incididunt laboris id est quis.\r\nEsse sint cillum commodo deserunt elit anim excepteur elit nostrud exercitation consequat ad. Aliqua consequat ea minim sunt dolor nulla elit sunt. Ut id do culpa amet adipisicing aliqua ipsum. Reprehenderit velit ad aliquip ullamco mollit elit ea. Deserunt quis labore aliquip culpa id cupidatat irure duis aliqua nostrud tempor.\r\n", + "address": "2 Orange Street", + "city": "Rosine", + "state": "Texas", + "zip": 86725, + "country": "Ecuador", + "email": "margretbaird@scentric.com", + "phone": "(991) 577-2455", + "color": "rgb(212,247,87)" + }, + { + "index": 254, + "name": "Mindy Mendoza", + "first": "Valdez", + "last": "Mack", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/abdullindenis/73.jpg", + "boolean": true, + "guid": "c19cb89a-c62c-4a3b-a815-dc686df99a69", + "integer": 97, + "date": "Sun Sep 28 2008 12:27:09 GMT-0700 (PDT)", + "shortText": "aliqua laborum", + "mediumText": "Ea commodo et minim id consectetur ipsum ad sit dolor. Laborum laborum in irure ex cillum sunt officia. Ullamco quis cupidatat labore occaecat amet elit consequat aute aliquip esse.", + "longText": "Cillum eu mollit ex Lorem est duis sint incididunt est ullamco. Pariatur amet sit sunt et sint officia dolor elit aliqua laboris officia. Sunt duis non sint ea ut adipisicing ut Lorem ut velit do ad culpa mollit. Irure magna elit dolore do officia mollit commodo id aute. Culpa nostrud esse officia exercitation.\r\nAliqua aliqua aute reprehenderit aute cupidatat veniam. Aliquip sint veniam deserunt amet. Quis adipisicing tempor id officia non. Laborum tempor cupidatat reprehenderit ut reprehenderit quis proident veniam ipsum. Mollit voluptate officia exercitation proident enim nisi eiusmod veniam do id sint eu.\r\n", + "address": "3 Woodside Avenue", + "city": "Skyland", + "state": "District Of Columbia", + "zip": 24057, + "country": "Bulgaria", + "email": "valdezmack@scentric.com", + "phone": "(831) 594-3993", + "color": "rgb(223,79,247)" + }, + { + "index": 255, + "name": "Charles Sosa", + "first": "Ashley", + "last": "Adams", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/umutahmet29/73.jpg", + "boolean": true, + "guid": "26a576e9-cccf-480d-8ed3-bb6f7da211ef", + "integer": 89, + "date": "Thu Apr 03 1975 03:38:57 GMT-0700 (PDT)", + "shortText": "anim adipisicing", + "mediumText": "Do minim excepteur aliquip id sit non laboris sint reprehenderit. Consectetur eu pariatur et commodo velit Lorem labore consequat quis reprehenderit commodo nisi. Adipisicing deserunt consectetur non reprehenderit deserunt elit esse elit culpa sunt.", + "longText": "Et ea anim tempor labore magna tempor est deserunt eu ullamco ipsum elit. Dolore nulla ipsum do exercitation. Sit fugiat pariatur ullamco sit tempor amet reprehenderit consectetur magna.\r\nCommodo do exercitation amet deserunt eu ea mollit. Sint labore sint occaecat reprehenderit cillum sint qui pariatur et deserunt adipisicing. Mollit excepteur qui minim culpa tempor ea. Qui esse labore dolore occaecat. Cillum duis dolor id cupidatat veniam non pariatur voluptate deserunt laboris. Quis proident occaecat veniam nulla occaecat proident occaecat ullamco. Aliqua laborum aliqua enim mollit quis.\r\n", + "address": "3 Kensington Street", + "city": "Dana", + "state": "Virgin Islands", + "zip": 96003, + "country": "American Samoa", + "email": "ashleyadams@scentric.com", + "phone": "(903) 572-3575", + "color": "rgb(125,107,131)" + }, + { + "index": 256, + "name": "Turner Franco", + "first": "Norman", + "last": "George", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pinceladasdaweb/73.jpg", + "boolean": true, + "guid": "ab082048-531a-4b8d-8801-29979233e2c1", + "integer": 41, + "date": "Sun Nov 19 1989 19:54:28 GMT-0800 (PST)", + "shortText": "consequat mollit qui aute laboris", + "mediumText": "Sint in reprehenderit commodo ex cillum ipsum est Lorem dolore amet. Eu consequat nisi nostrud est velit et ex cupidatat quis sint duis do. Irure eiusmod amet esse occaecat proident occaecat sit laborum incididunt adipisicing amet enim. Ut ex ut sunt eu eu eiusmod duis do dolor occaecat commodo deserunt exercitation.", + "longText": "Aliqua sit tempor et consequat irure elit incididunt et id sint ex ad ipsum aliquip. Aliqua fugiat sint sint reprehenderit proident pariatur nostrud. Excepteur in do non minim sunt exercitation magna et sint quis aliqua eiusmod Lorem. Nostrud exercitation proident in velit aliqua dolore nisi irure veniam quis adipisicing et excepteur. Duis dolore dolor non et reprehenderit cillum commodo. Deserunt officia labore nostrud anim id fugiat anim ex voluptate dolore esse do commodo sit.\r\nEsse ut sunt commodo sint exercitation consequat ex ea exercitation reprehenderit. Nulla in laboris qui eiusmod adipisicing ex occaecat qui qui culpa aliquip magna quis. Fugiat reprehenderit exercitation ipsum reprehenderit et Lorem cillum. Lorem et dolor minim est et et.\r\nNisi ullamco ea minim ad nulla deserunt eu aute culpa ipsum ut voluptate. Ea cupidatat eiusmod est cillum amet velit aliqua esse sunt cupidatat eu aliqua reprehenderit. Voluptate voluptate proident duis ipsum minim qui. Id ex esse excepteur reprehenderit. Eiusmod adipisicing minim quis laboris aute nostrud irure officia velit fugiat. Ad minim tempor enim commodo exercitation elit cillum proident nulla cupidatat aliqua.\r\nLaboris amet aliqua nisi ut sint ex minim ullamco voluptate in. Sunt consequat ea proident occaecat aliquip est quis officia. Cillum Lorem laboris nostrud aliquip nulla laborum dolore quis aliqua nulla. Anim sint eiusmod ea in Lorem magna aliquip cillum velit.\r\nCommodo sunt nostrud deserunt id mollit do aliqua ullamco incididunt et et sunt sunt ad. Reprehenderit consequat consectetur aliquip non in. Eiusmod dolore id labore voluptate do aute ut et amet tempor tempor. Do irure laborum reprehenderit elit eiusmod cupidatat id sunt. Nisi cupidatat cillum eu sint duis et proident aliquip commodo id minim ullamco. Magna laborum exercitation elit minim dolore irure eu velit commodo Lorem.\r\n", + "address": "2 Fanchon Place", + "city": "Siglerville", + "state": "Puerto Rico", + "zip": 95024, + "country": "Angola", + "email": "normangeorge@scentric.com", + "phone": "(909) 404-3929", + "color": "rgb(236,187,197)" + }, + { + "index": 257, + "name": "Mandy Mann", + "first": "Mccoy", + "last": "Daniels", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/chris_gooley/73.jpg", + "boolean": true, + "guid": "119c0379-dc8c-4fdf-a4ca-4dd7e8367fcd", + "integer": 8, + "date": "Sat Jul 18 1970 18:24:18 GMT-0700 (PDT)", + "shortText": "pariatur nulla", + "mediumText": "Sint mollit amet elit consectetur culpa. Exercitation minim laboris culpa reprehenderit est ut deserunt in est eiusmod nostrud nostrud esse. Labore laboris incididunt sit voluptate id ut. In incididunt mollit reprehenderit ea dolor commodo anim aliquip.", + "longText": "In cupidatat enim aliquip velit nisi. Elit deserunt ad excepteur deserunt consectetur nisi proident ea exercitation laboris tempor sunt. Lorem sint incididunt proident mollit est et.\r\n", + "address": "2 Lamont Court", + "city": "Rew", + "state": "Maryland", + "zip": 15110, + "country": "Bhutan", + "email": "mccoydaniels@scentric.com", + "phone": "(912) 520-2618", + "color": "rgb(135,249,131)" + }, + { + "index": 258, + "name": "Arlene Dominguez", + "first": "Felecia", + "last": "Hines", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jodyferry/73.jpg", + "boolean": true, + "guid": "280bf6b0-99d1-4792-acc8-8dde2e0f0deb", + "integer": 34, + "date": "Sat Feb 15 1992 18:16:30 GMT-0800 (PST)", + "shortText": "do non", + "mediumText": "Qui velit nulla adipisicing mollit. Officia adipisicing laboris veniam dolor enim eu laboris eu nulla tempor. Id id velit magna anim sint tempor. Voluptate nostrud anim elit laborum ut labore anim reprehenderit. Dolore ipsum do proident quis nostrud fugiat.", + "longText": "Quis veniam reprehenderit nulla quis aute deserunt cillum mollit commodo voluptate consectetur. Officia nostrud nulla tempor nulla. Dolor ipsum eu magna cillum amet velit enim amet voluptate id Lorem velit qui.\r\nProident ex amet voluptate cupidatat laborum. Laboris sint reprehenderit in minim exercitation dolor cupidatat ut proident. Aute consectetur id sunt aute pariatur velit excepteur reprehenderit adipisicing pariatur labore ea nulla mollit. Anim nulla aliqua quis minim exercitation amet sunt nulla commodo est nostrud non tempor veniam. Mollit aliquip officia consequat ex minim voluptate cillum esse. Eu sint adipisicing proident eiusmod adipisicing non. Ut excepteur mollit cupidatat anim elit sint aute magna ullamco Lorem duis dolor ullamco occaecat.\r\nDeserunt esse reprehenderit ullamco cillum velit mollit. Duis aliquip aliquip id incididunt officia magna nisi deserunt laboris magna. Enim exercitation mollit do elit voluptate minim. Sint aute incididunt Lorem nulla.\r\nConsectetur consequat nostrud et voluptate est sint ullamco adipisicing laboris. Do cillum velit enim quis reprehenderit tempor. Enim commodo duis deserunt ex et in. Voluptate Lorem qui amet anim nulla enim. Nisi voluptate do ad ea minim laborum ullamco aute amet velit officia ad et. Consequat dolore pariatur nostrud nisi ut et consequat fugiat. Occaecat aute ea officia incididunt.\r\nConsequat mollit laborum reprehenderit sit minim sunt et. Elit mollit magna in mollit cupidatat enim magna exercitation elit pariatur quis. Amet cupidatat in reprehenderit elit consectetur cillum ea aute ad exercitation quis. Velit enim officia do pariatur ex eiusmod.\r\n", + "address": "3 Howard Alley", + "city": "Corinne", + "state": "Massachusetts", + "zip": 62986, + "country": "Dominica", + "email": "feleciahines@scentric.com", + "phone": "(800) 422-3688", + "color": "rgb(143,174,64)" + }, + { + "index": 259, + "name": "Hollie Boyer", + "first": "Steele", + "last": "Schwartz", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/reetajayendra/73.jpg", + "boolean": true, + "guid": "45ab7abb-8d65-4596-9843-554f49ed1ab3", + "integer": 87, + "date": "Sun Jun 06 1971 17:15:13 GMT-0700 (PDT)", + "shortText": "veniam exercitation do est laborum", + "mediumText": "Irure sunt voluptate esse minim dolor adipisicing fugiat occaecat in cupidatat do laborum. Sunt consequat nulla pariatur sit labore velit cillum cillum quis id laboris ipsum.", + "longText": "Adipisicing culpa excepteur excepteur labore. Duis esse occaecat pariatur velit qui fugiat occaecat magna et in duis. Pariatur consectetur dolore culpa esse anim cillum sint ad non adipisicing labore duis. Nisi eiusmod laboris adipisicing ea veniam cupidatat duis ad ut incididunt deserunt cupidatat. Incididunt aliqua cillum mollit dolor amet laboris dolor. Ea laborum qui Lorem duis ipsum deserunt dolore velit adipisicing minim veniam nostrud et. Irure officia Lorem labore irure ullamco.\r\nAdipisicing ullamco exercitation labore in ut. Sunt ex aliquip voluptate dolor qui ipsum est cillum magna. Dolore magna proident officia exercitation. Velit occaecat laborum laboris veniam excepteur nisi duis aliquip dolore. Consequat pariatur elit pariatur eiusmod. Minim occaecat aliquip exercitation sunt nisi dolor elit. Anim esse fugiat commodo minim.\r\nLorem incididunt aute exercitation enim qui aute. Dolore minim do proident laborum sit nulla ullamco excepteur quis sit consectetur dolore nisi. Voluptate Lorem aliqua enim aliqua mollit tempor et laborum ut aute dolor enim. Ipsum laborum anim deserunt aliquip occaecat nisi fugiat esse non cupidatat excepteur ut. Laboris velit Lorem quis aute nostrud elit dolor ullamco eiusmod exercitation. Exercitation eu ullamco cillum Lorem Lorem irure aliqua cillum anim. Adipisicing enim dolore id non enim reprehenderit voluptate velit voluptate Lorem officia.\r\n", + "address": "3 Thames Street", + "city": "Denio", + "state": "Oklahoma", + "zip": 28577, + "country": "Egypt", + "email": "steeleschwartz@scentric.com", + "phone": "(951) 401-2034", + "color": "rgb(203,161,146)" + }, + { + "index": 260, + "name": "Maxwell Levine", + "first": "Rutledge", + "last": "Vang", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/namankreative/73.jpg", + "boolean": false, + "guid": "ae81b7e2-6532-41e4-b7a5-0336231f8d86", + "integer": 22, + "date": "Tue Feb 28 1989 01:26:44 GMT-0800 (PST)", + "shortText": "id sunt eiusmod", + "mediumText": "Sunt nulla aliquip ex ullamco magna mollit laborum ea cillum. Ea ad voluptate excepteur dolor tempor nulla pariatur pariatur.", + "longText": "Dolor quis magna dolor id irure laborum cillum irure. Minim ea ipsum ipsum aute officia. Commodo adipisicing aliqua voluptate eiusmod ipsum incididunt quis dolor culpa velit. Id quis duis tempor ipsum cillum do velit adipisicing do excepteur culpa magna laboris. Voluptate enim do id laborum veniam. Excepteur do adipisicing eiusmod ea laboris laborum. Nostrud sunt fugiat ut velit ex magna nisi non magna sint pariatur eiusmod minim.\r\nElit dolore nulla ipsum ullamco deserunt deserunt amet incididunt. Reprehenderit eiusmod adipisicing commodo duis eu id ad esse dolor consequat cupidatat elit. Aliquip eu fugiat consequat non sit nisi quis est id. Proident amet culpa sunt irure nostrud do ad aliqua sunt. Ut amet eiusmod ea eu aute cupidatat minim laboris qui consequat deserunt consectetur quis reprehenderit. Occaecat id proident in amet adipisicing elit tempor esse veniam elit.\r\nAdipisicing qui fugiat nostrud et magna do eu commodo minim excepteur non qui. Magna do do fugiat sint irure elit tempor deserunt. Ullamco aliqua ullamco nostrud qui incididunt cupidatat. Nisi reprehenderit in cupidatat velit et tempor. Lorem ut Lorem elit quis deserunt ut. Aliquip do Lorem eu ipsum amet eu laborum pariatur aliquip minim. Id id eu exercitation consequat.\r\n", + "address": "4 Scholes Street", + "city": "Rodanthe", + "state": "Ohio", + "zip": 39404, + "country": "Chile", + "email": "rutledgevang@scentric.com", + "phone": "(827) 440-2145", + "color": "rgb(207,158,249)" + }, + { + "index": 261, + "name": "Jimenez Mullins", + "first": "Hines", + "last": "Cooley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/paulfarino/73.jpg", + "boolean": true, + "guid": "c3fd3b86-c437-427d-9f1d-0dd5cc03af2a", + "integer": 31, + "date": "Thu Jul 22 1999 00:58:27 GMT-0700 (PDT)", + "shortText": "nisi", + "mediumText": "Eiusmod enim irure cupidatat consectetur aliquip ut labore fugiat exercitation Lorem et irure.", + "longText": "Reprehenderit duis cupidatat duis commodo enim pariatur ut ea ex elit ut adipisicing consectetur. Fugiat fugiat veniam sit esse laborum commodo laboris ipsum magna pariatur. Ipsum laborum proident mollit exercitation labore. Laborum voluptate pariatur eiusmod ad excepteur minim tempor non adipisicing consectetur proident amet.\r\nAute occaecat excepteur voluptate reprehenderit ea. Officia consequat proident et quis aliqua. Dolor et et cupidatat sit consectetur. Aute sit cillum excepteur reprehenderit enim sint voluptate occaecat.\r\n", + "address": "2 Clay Street", + "city": "Lisco", + "state": "Nevada", + "zip": 95904, + "country": "Norfolk Island", + "email": "hinescooley@scentric.com", + "phone": "(871) 552-3958", + "color": "rgb(236,51,80)" + }, + { + "index": 262, + "name": "Lesley Ashley", + "first": "Williamson", + "last": "Glass", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/overcloacked/73.jpg", + "boolean": true, + "guid": "a3928300-14e0-42c0-9f8b-600a529a789b", + "integer": 17, + "date": "Wed May 25 2005 15:38:13 GMT-0700 (PDT)", + "shortText": "labore esse pariatur nulla excepteur", + "mediumText": "Eiusmod elit eiusmod deserunt enim irure Lorem sint culpa ea. Esse proident in dolor sit qui pariatur Lorem. Culpa consequat minim ullamco sit culpa voluptate occaecat consequat. Ex ex non voluptate excepteur irure ut consectetur tempor.", + "longText": "Ullamco ex id nostrud esse. Exercitation adipisicing eu est ipsum commodo. Aute aliqua exercitation eiusmod ex nulla. Enim cillum nisi tempor id. Irure proident ipsum commodo reprehenderit tempor eu ut officia labore tempor sit tempor.\r\nFugiat ut sit tempor ut aliquip ea irure. Ullamco irure nulla reprehenderit id amet fugiat. Anim Lorem ullamco ea elit esse nisi id elit occaecat. Elit voluptate aute dolore anim aliquip veniam laborum. Duis esse aliquip aute pariatur fugiat veniam velit anim irure ipsum laboris. Duis nostrud occaecat ipsum eu non mollit. Fugiat exercitation sunt ullamco sunt mollit.\r\nLabore eiusmod mollit voluptate sunt duis id enim excepteur eiusmod elit quis voluptate enim aliqua. Minim nostrud excepteur voluptate ipsum id aliqua esse pariatur consequat. Dolore aliqua Lorem veniam deserunt pariatur tempor do nisi veniam nulla voluptate. Ut velit consectetur deserunt eiusmod cupidatat. Non culpa pariatur enim eu et ut irure labore. Ut nisi aute voluptate excepteur sint culpa ad id adipisicing ut enim.\r\nQui do consectetur laborum laborum ipsum eu ex do fugiat duis est irure sunt sunt. Ullamco in velit minim veniam ea do veniam anim adipisicing in sunt occaecat in aliquip. Aliquip nisi elit fugiat cupidatat enim mollit ex mollit. Aute laborum consequat anim deserunt. Cillum est sint dolor irure laboris ad eiusmod. Lorem aliquip in est et deserunt nostrud est consequat duis ad minim. Magna qui est ullamco sit cillum cupidatat eu amet mollit commodo esse.\r\n", + "address": "4 Village Court", + "city": "Southmont", + "state": "Montana", + "zip": 63679, + "country": "Japan", + "email": "williamsonglass@scentric.com", + "phone": "(915) 505-2620", + "color": "rgb(119,251,208)" + }, + { + "index": 263, + "name": "Robertson Mcintosh", + "first": "Constance", + "last": "Sexton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maysundays/73.jpg", + "boolean": false, + "guid": "0dd239a2-9d56-4eec-a3e1-94411aacdc3f", + "integer": 71, + "date": "Sat Aug 01 1970 03:44:02 GMT-0700 (PDT)", + "shortText": "excepteur ut labore", + "mediumText": "Incididunt proident mollit elit velit sit in ipsum dolor duis ex labore aliqua culpa. Cupidatat amet ea proident ad duis. Id occaecat aliquip quis fugiat dolor aliqua consectetur.", + "longText": "Sunt ullamco culpa quis cillum mollit. Exercitation amet magna magna velit pariatur aliquip laborum ad est cupidatat. Nostrud elit irure ullamco occaecat id. Anim elit laborum ad pariatur occaecat minim tempor ullamco. Deserunt exercitation elit commodo sint reprehenderit sit proident ut labore. Eu eu officia nulla labore aliquip ut ex.\r\nVeniam non tempor laborum ea dolor nostrud laboris cupidatat deserunt sit est. Reprehenderit aliquip sint nostrud eu pariatur laborum ea. Aute id laboris esse in in amet excepteur ea laborum. Cupidatat commodo minim nostrud in aute in aute culpa eiusmod.\r\nAmet dolore commodo aute commodo commodo non voluptate officia elit amet est sint sit. Nulla est occaecat elit magna elit esse mollit cillum anim exercitation. Adipisicing non occaecat nisi irure duis aliquip occaecat culpa consectetur ex mollit aute nostrud. Et mollit nisi ad culpa dolor tempor nisi Lorem culpa aliqua. Sunt ut minim dolore voluptate sit. Minim enim ex elit excepteur voluptate.\r\nProident proident esse commodo qui laboris. Enim laboris cillum fugiat exercitation elit. Nostrud ea labore sit culpa. Reprehenderit amet minim mollit ea nulla duis duis veniam est tempor enim ut proident. Tempor consectetur culpa occaecat exercitation id ea nulla ea. Duis culpa ea labore sint culpa consectetur eu proident esse.\r\nLaborum nulla excepteur commodo sint irure veniam nisi. Duis ex ad anim et anim voluptate commodo eiusmod ea magna ut do magna ut. Mollit anim nulla ullamco et aute excepteur qui aute. Exercitation aliquip proident labore tempor consequat aute officia esse ut dolor eu mollit. Veniam occaecat amet velit in irure Lorem excepteur aliquip sunt sit. Dolor nulla sit ad anim officia cillum minim ipsum ad dolor qui sint. Incididunt velit qui ea fugiat.\r\n", + "address": "3 Driggs Avenue", + "city": "Goldfield", + "state": "California", + "zip": 10392, + "country": "Saudi Arabia", + "email": "constancesexton@scentric.com", + "phone": "(923) 433-2666", + "color": "rgb(246,200,148)" + }, + { + "index": 264, + "name": "Audra Ortega", + "first": "Anne", + "last": "Crawford", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_iamnyasha/73.jpg", + "boolean": false, + "guid": "a1000f3b-0edd-4f94-8864-4f0567d089ef", + "integer": 74, + "date": "Thu Oct 19 1978 15:43:40 GMT-0700 (PDT)", + "shortText": "et voluptate", + "mediumText": "Quis nulla minim do deserunt commodo laborum laboris veniam sint pariatur voluptate ullamco eu. Laboris adipisicing ex dolore voluptate ea occaecat duis enim nulla eiusmod.", + "longText": "Voluptate velit duis reprehenderit est tempor dolor dolor deserunt ullamco. Sit proident eiusmod consectetur occaecat dolore in laborum in aliqua id sint. Aute aliqua eu est aliqua officia aliqua minim do sint ullamco voluptate tempor velit ex. Adipisicing mollit velit non cillum exercitation sunt sunt ipsum ex irure laboris ut. Fugiat aliquip aliquip ad deserunt minim minim nisi dolore ea et. Dolore magna fugiat commodo veniam commodo do deserunt. Irure sint reprehenderit nulla sunt est nostrud id do excepteur mollit nostrud ea.\r\nId pariatur nisi eu deserunt nisi minim in deserunt deserunt ex. Adipisicing excepteur officia sint exercitation mollit deserunt non velit ex fugiat laboris id. Sit eiusmod excepteur occaecat id dolore laborum fugiat ea. Commodo velit non incididunt enim aliquip magna irure. Nulla aute ipsum veniam fugiat duis cupidatat et exercitation laboris Lorem culpa. Do reprehenderit ullamco occaecat id veniam sunt non nulla excepteur exercitation.\r\n", + "address": "2 Wallabout Street", + "city": "Waikele", + "state": "Marshall Islands", + "zip": 86465, + "country": "Micronesia", + "email": "annecrawford@scentric.com", + "phone": "(986) 502-2226", + "color": "rgb(235,169,166)" + }, + { + "index": 265, + "name": "Francis Carver", + "first": "Gallagher", + "last": "Britt", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/culttm/73.jpg", + "boolean": false, + "guid": "0556fe07-8214-442d-9f9c-08231097de52", + "integer": 6, + "date": "Sun Nov 28 2010 03:23:33 GMT-0800 (PST)", + "shortText": "sint ex in aliquip excepteur", + "mediumText": "Laboris anim ad nulla tempor dolor quis tempor ipsum incididunt eiusmod aute. Ea irure ea laboris irure do et aliquip dolor exercitation excepteur. Exercitation sunt dolor excepteur sunt id quis velit esse non dolore ut nostrud officia.", + "longText": "Ad ipsum minim tempor velit Lorem irure cupidatat. Minim laborum laboris esse sunt voluptate amet amet nostrud sint esse. Irure incididunt et reprehenderit magna. Mollit esse non Lorem excepteur ad. In labore ad minim id commodo tempor non irure nisi.\r\nLaboris ut veniam cillum eiusmod ad ut reprehenderit. Ad pariatur ad ea culpa. Ad est irure enim ex Lorem nulla irure do adipisicing nulla non aute. Fugiat irure quis veniam consequat ea ullamco reprehenderit ipsum.\r\nTempor cillum culpa in sint enim sit irure consequat Lorem labore deserunt. Magna magna est sunt magna mollit laboris minim irure incididunt deserunt. Est pariatur adipisicing reprehenderit mollit ea aute dolor deserunt aute ut proident eiusmod.\r\nIrure in adipisicing culpa pariatur qui aliquip amet id. Veniam deserunt labore mollit in quis. Quis nostrud dolor ullamco ut reprehenderit nisi.\r\nCillum veniam laboris ut nulla commodo est nulla reprehenderit cupidatat. Voluptate adipisicing aute magna dolore consequat dolor enim veniam Lorem incididunt pariatur amet. Qui anim pariatur et voluptate labore incididunt. Amet duis velit eu in proident ipsum culpa et nulla eu Lorem aliquip ut. Lorem fugiat aute veniam Lorem ea sit. Nisi pariatur qui excepteur ad ullamco ea non culpa non incididunt sint ex. Et nulla velit elit adipisicing sit non irure et.\r\n", + "address": "2 Oakland Place", + "city": "Brookfield", + "state": "Indiana", + "zip": 53481, + "country": "Liberia", + "email": "gallagherbritt@scentric.com", + "phone": "(835) 444-3138", + "color": "rgb(204,219,96)" + }, + { + "index": 266, + "name": "Fischer Simmons", + "first": "Gertrude", + "last": "Stephens", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pollobrav0/73.jpg", + "boolean": false, + "guid": "829192ff-f636-4781-b023-9f3085717193", + "integer": 31, + "date": "Thu Nov 01 2007 09:01:49 GMT-0700 (PDT)", + "shortText": "et cupidatat ad", + "mediumText": "Ad esse officia proident adipisicing sunt excepteur. Culpa ad sint dolor aute aute est. Proident aliqua fugiat officia mollit. Minim sunt consequat irure ut tempor laborum dolor cupidatat est aliqua consequat et.", + "longText": "Officia non fugiat tempor ad enim dolor. In irure commodo culpa ut Lorem aliqua laborum. Qui in cupidatat consequat eiusmod Lorem occaecat consectetur fugiat quis sit pariatur proident. Lorem sint reprehenderit pariatur eiusmod veniam reprehenderit incididunt. Cupidatat reprehenderit in sit consectetur sint. Et excepteur sit do aliquip ea veniam eu reprehenderit deserunt non sunt magna mollit anim.\r\nAmet cupidatat culpa dolore elit minim adipisicing veniam laboris. Reprehenderit exercitation et et velit qui ea nostrud. Exercitation esse nostrud cupidatat dolor dolor fugiat cupidatat eu magna commodo velit ex.\r\nMagna sint voluptate veniam in occaecat aliquip duis nisi. Aliqua elit veniam ea nostrud nisi id cillum esse ullamco eiusmod reprehenderit culpa. Lorem velit id culpa aliquip voluptate dolore nulla officia dolore mollit in aliquip velit elit.\r\n", + "address": "4 Stoddard Place", + "city": "Whitmer", + "state": "Tennessee", + "zip": 27389, + "country": "Korea (South)", + "email": "gertrudestephens@scentric.com", + "phone": "(940) 497-2705", + "color": "rgb(171,153,217)" + }, + { + "index": 267, + "name": "Boyd Blake", + "first": "Delaney", + "last": "Anderson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/carlosblanco_eu/73.jpg", + "boolean": false, + "guid": "031a10d0-2fe9-4ef3-af8e-f7b7c611cb73", + "integer": 33, + "date": "Mon Aug 10 1970 14:35:08 GMT-0700 (PDT)", + "shortText": "adipisicing fugiat qui dolore aute", + "mediumText": "Sit sunt pariatur incididunt est aute consectetur quis laboris nisi cillum deserunt in dolore. Sit fugiat labore enim consequat amet elit aliquip adipisicing. In excepteur laboris irure dolor laborum esse id. Minim nulla adipisicing in eiusmod enim dolor pariatur mollit velit amet proident mollit sunt.", + "longText": "Nisi laboris culpa in sit veniam anim nisi pariatur pariatur adipisicing non occaecat reprehenderit ut. Laborum nulla occaecat laboris qui aliqua laborum excepteur excepteur commodo. Fugiat anim proident proident exercitation esse nulla aute. Adipisicing in laborum fugiat eu tempor ullamco qui qui Lorem cupidatat sint ipsum aliqua. Labore commodo amet consequat officia incididunt cillum proident deserunt sint excepteur. Enim nostrud occaecat ipsum sint adipisicing quis sunt pariatur et sunt eu. Veniam nulla cupidatat officia culpa.\r\n", + "address": "3 Branton Street", + "city": "Ada", + "state": "Palau", + "zip": 48926, + "country": "Pakistan", + "email": "delaneyanderson@scentric.com", + "phone": "(879) 508-2698", + "color": "rgb(181,108,214)" + }, + { + "index": 268, + "name": "Foreman Jennings", + "first": "Nieves", + "last": "Browning", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/giakodes/73.jpg", + "boolean": false, + "guid": "f3328487-a346-46cd-986a-180b1336ce46", + "integer": 34, + "date": "Thu Aug 18 1977 11:28:15 GMT-0700 (PDT)", + "shortText": "culpa laborum nostrud proident qui", + "mediumText": "Tempor sunt anim occaecat in irure occaecat enim cupidatat voluptate ex laboris enim. Exercitation fugiat ad eu culpa est pariatur ea laboris aliquip laboris exercitation proident consectetur. Enim officia laboris elit quis. Occaecat fugiat tempor ea labore exercitation irure sint elit sint elit reprehenderit. Cupidatat anim sit eu nulla exercitation Lorem ipsum veniam.", + "longText": "Esse aute reprehenderit enim officia culpa. Reprehenderit duis mollit voluptate exercitation officia Lorem laborum laborum irure pariatur. Exercitation ex laboris magna excepteur qui labore culpa. Ut esse incididunt aliqua incididunt dolor deserunt esse. Et magna magna quis ipsum cupidatat voluptate incididunt aute sint consectetur officia.\r\nConsequat elit nostrud laborum veniam. Pariatur id consectetur duis et id adipisicing velit et ipsum pariatur proident nostrud reprehenderit. Culpa ad amet eiusmod quis reprehenderit aute eiusmod.\r\nPariatur nulla veniam amet sit fugiat ipsum velit fugiat consequat eu irure est labore. Ut veniam excepteur excepteur nisi fugiat. Ipsum enim excepteur pariatur est laboris deserunt aliqua velit fugiat. Irure ut duis laboris culpa quis ad deserunt sunt fugiat adipisicing. Aute est consectetur ad minim deserunt do.\r\n", + "address": "3 Berriman Street", + "city": "Chaparrito", + "state": "Virginia", + "zip": 46246, + "country": "Guyana", + "email": "nievesbrowning@scentric.com", + "phone": "(876) 426-2122", + "color": "rgb(247,203,76)" + }, + { + "index": 269, + "name": "Corine Woodard", + "first": "Santana", + "last": "Everett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/komplexb/73.jpg", + "boolean": true, + "guid": "92e47eb5-8a17-4884-9c8b-2789bc456ed9", + "integer": 84, + "date": "Tue Dec 26 1978 20:05:16 GMT-0800 (PST)", + "shortText": "Lorem aute", + "mediumText": "Qui irure duis reprehenderit duis. Ut consectetur mollit sint sint occaecat id nulla sint aute consectetur anim laborum aliquip commodo.", + "longText": "Ea officia culpa cupidatat enim fugiat mollit in quis excepteur culpa. Tempor et nulla irure nostrud qui adipisicing nulla consequat dolor veniam. Ex qui et duis anim irure laboris.\r\nDo commodo aute ipsum ullamco. Velit pariatur est sit laboris reprehenderit nisi voluptate consequat voluptate laborum sunt dolor velit. Occaecat cillum ex ad anim sint. Voluptate cupidatat magna labore veniam. Cupidatat ea nostrud est ipsum in. Deserunt sint adipisicing incididunt sint labore duis minim velit tempor. Lorem sint anim sunt sunt ipsum esse ea reprehenderit elit dolore aute sint.\r\nMagna commodo cupidatat nisi aute. Qui consequat culpa enim elit minim exercitation qui amet in cillum officia. Amet amet nulla aute elit sit irure pariatur proident est sint labore.\r\nProident dolore ut mollit enim veniam aliqua minim ex voluptate Lorem ullamco amet enim. Officia laborum enim sit aute incididunt nisi nulla magna Lorem officia aute mollit. Ullamco commodo incididunt excepteur sunt. Tempor veniam commodo minim dolore eu dolore est deserunt veniam ullamco.\r\nMagna dolor voluptate sint dolor tempor anim dolore quis aute magna reprehenderit ad. Incididunt fugiat aliqua culpa ullamco quis duis pariatur ullamco consequat voluptate enim velit. Duis aute qui qui voluptate elit ut amet elit anim. Excepteur esse proident laborum occaecat.\r\n", + "address": "4 Melrose Street", + "city": "Chelsea", + "state": "Wyoming", + "zip": 81598, + "country": "Poland", + "email": "santanaeverett@scentric.com", + "phone": "(993) 537-2899", + "color": "rgb(144,158,112)" + }, + { + "index": 270, + "name": "Maria Stokes", + "first": "Chambers", + "last": "Riggs", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/migl40d/73.jpg", + "boolean": true, + "guid": "cacd37bf-31ec-400b-bc9e-7ecb3a35d9be", + "integer": 9, + "date": "Thu Feb 06 2003 08:01:13 GMT-0800 (PST)", + "shortText": "veniam magna enim ullamco", + "mediumText": "Eiusmod culpa laboris est consequat in proident eiusmod occaecat consequat sit et mollit. Dolor aliquip anim ex laboris id non occaecat nisi amet eu anim ipsum proident eiusmod. Consequat esse Lorem quis aliquip duis quis minim quis duis. Occaecat commodo nulla minim ipsum do velit laborum consectetur id.", + "longText": "Dolor anim velit labore duis sunt nostrud duis sint ex irure. Voluptate laboris ipsum deserunt nisi voluptate dolor magna. Voluptate veniam amet reprehenderit laborum amet incididunt elit voluptate minim pariatur incididunt aute. Nulla excepteur eiusmod ad amet magna velit eu ea sit do Lorem ex nulla qui. Officia labore ut sint nostrud quis consectetur labore. Et quis voluptate non duis adipisicing quis sunt veniam incididunt velit consectetur.\r\nAdipisicing sit non consequat qui consequat commodo pariatur tempor consectetur. Adipisicing dolore aliquip ipsum nulla in incididunt mollit nulla. Pariatur non cillum do voluptate aliqua non aliquip esse qui voluptate aliquip magna esse. Dolor aliquip esse deserunt velit adipisicing adipisicing. Veniam in dolore do mollit ad exercitation commodo veniam eu. Magna non nulla proident occaecat.\r\nOccaecat magna magna ex culpa. Aliquip commodo laboris amet anim cillum elit officia esse id. Dolor mollit adipisicing velit excepteur anim commodo aute proident sunt. Irure reprehenderit ullamco amet id minim commodo tempor aute exercitation laboris amet incididunt et. Nostrud laborum mollit aliquip non eiusmod sint exercitation eiusmod labore cillum duis enim aute occaecat. Amet aute ea eiusmod dolore. Magna sit veniam nisi ullamco culpa.\r\n", + "address": "4 Jamaica Avenue", + "city": "Lupton", + "state": "Colorado", + "zip": 55948, + "country": "Canada", + "email": "chambersriggs@scentric.com", + "phone": "(825) 422-3231", + "color": "rgb(211,239,230)" + }, + { + "index": 271, + "name": "Montoya Battle", + "first": "Susanne", + "last": "Stein", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/erwinhines/73.jpg", + "boolean": false, + "guid": "386137ac-8367-4191-bca0-0385b64defbc", + "integer": 1, + "date": "Tue Feb 18 1986 07:03:21 GMT-0800 (PST)", + "shortText": "aliqua amet", + "mediumText": "Enim aliqua minim ipsum amet incididunt labore nulla labore enim. Esse eu ea occaecat consectetur labore exercitation do ut consequat est dolor Lorem. Do dolor nostrud nostrud labore.", + "longText": "Officia qui tempor cupidatat nostrud sunt cillum qui commodo pariatur non. Aliqua consectetur commodo ad consequat in est nisi. Cupidatat in eiusmod deserunt veniam. Sunt incididunt enim ex sunt aliqua excepteur non quis deserunt magna eiusmod anim. Enim ex proident laborum excepteur ea anim sint. Consectetur anim esse et id ut incididunt sunt officia consectetur sunt anim do ea ipsum. Magna Lorem ullamco ad eu amet deserunt consectetur.\r\nEa consectetur aute laborum commodo irure excepteur ipsum cupidatat reprehenderit duis. Deserunt exercitation labore quis adipisicing amet reprehenderit ad minim esse eu esse. Qui adipisicing aliquip sunt laborum duis occaecat.\r\nPariatur eiusmod nostrud nostrud excepteur non ex anim non do voluptate. Nulla ut deserunt deserunt in aliqua duis laborum ex. Eiusmod eiusmod nostrud esse eiusmod deserunt ullamco adipisicing aute non nulla. Eiusmod eiusmod consequat proident culpa ullamco laborum.\r\nDo non veniam aliquip officia. Amet dolor excepteur qui exercitation voluptate laboris culpa laboris Lorem ullamco fugiat mollit exercitation excepteur. Esse occaecat magna reprehenderit in eiusmod magna fugiat sit occaecat consectetur velit consequat veniam aliquip. Excepteur aliquip ipsum duis sunt enim aliqua elit exercitation eu in cillum deserunt. Qui fugiat exercitation eu elit minim officia minim ex enim adipisicing incididunt ut.\r\n", + "address": "3 Porter Avenue", + "city": "Bentley", + "state": "Utah", + "zip": 67531, + "country": "US Minor Outlying Islands", + "email": "susannestein@scentric.com", + "phone": "(972) 556-2548", + "color": "rgb(176,88,163)" + }, + { + "index": 272, + "name": "Antoinette Cooper", + "first": "Stout", + "last": "Ferrell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/chelseabeachem/73.jpg", + "boolean": false, + "guid": "b2443100-77a3-48fc-825f-671f2f386da1", + "integer": 35, + "date": "Tue Sep 09 2008 23:36:55 GMT-0700 (PDT)", + "shortText": "tempor mollit", + "mediumText": "Eiusmod aliqua irure velit nostrud dolor nostrud.", + "longText": "Amet voluptate dolor sunt culpa eiusmod ipsum Lorem officia eiusmod est nulla. Ut minim veniam veniam sunt excepteur. Fugiat ut amet deserunt ex voluptate ex. Aute deserunt adipisicing ipsum eiusmod eiusmod duis eiusmod laborum voluptate ut commodo.\r\n", + "address": "2 Cortelyou Road", + "city": "Websterville", + "state": "Idaho", + "zip": 50360, + "country": "East Timor", + "email": "stoutferrell@scentric.com", + "phone": "(884) 588-3785", + "color": "rgb(207,67,59)" + }, + { + "index": 273, + "name": "Chavez Rhodes", + "first": "Jennifer", + "last": "Solomon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bouyghajden/73.jpg", + "boolean": true, + "guid": "cf0294a4-b641-4b2a-94ce-7db7921d670c", + "integer": 62, + "date": "Fri Oct 04 1996 10:43:24 GMT-0700 (PDT)", + "shortText": "nostrud id eiusmod", + "mediumText": "Qui dolore nisi ut eu ea duis elit ipsum aliquip aliqua. Sunt cupidatat ut reprehenderit sit nulla laborum consectetur fugiat magna elit esse nulla.", + "longText": "Sit irure nulla excepteur ad velit excepteur exercitation enim eu fugiat deserunt duis. Amet veniam adipisicing aliquip tempor irure. Mollit non culpa amet tempor magna sint esse ad proident. Duis cupidatat nostrud esse veniam pariatur voluptate cupidatat dolor ullamco occaecat magna aliquip sunt esse.\r\nNostrud deserunt proident velit tempor esse exercitation ex ipsum velit proident aute ullamco amet velit. Occaecat veniam sit ipsum do dolore nisi aute occaecat. Amet pariatur occaecat aliqua sint velit aliquip non consequat eiusmod occaecat qui aliquip enim exercitation. Id labore duis quis voluptate nulla aute occaecat. Sunt amet dolore ad minim laborum sit officia amet eu dolore Lorem quis adipisicing esse. Non quis consequat anim nostrud id in in. Sit et esse nostrud quis eu aute excepteur qui.\r\nIrure non sint sint Lorem occaecat quis aliquip exercitation adipisicing amet tempor Lorem sint consequat. Commodo tempor consectetur commodo labore et veniam sunt. Cupidatat commodo anim reprehenderit qui culpa aliqua aliquip enim dolor.\r\nDolore do nisi est exercitation nisi irure et et Lorem sint ullamco non enim duis. Sint nostrud ipsum veniam anim et dolor id amet id fugiat consequat non. Sunt laboris culpa ut deserunt ut ut irure fugiat dolore eiusmod fugiat quis.\r\nDeserunt qui veniam nostrud in nostrud adipisicing sunt veniam consequat consectetur duis esse magna ipsum. Deserunt anim dolore ullamco aute fugiat mollit adipisicing sit exercitation Lorem. Incididunt Lorem duis qui enim adipisicing sint anim. Ex velit ullamco commodo pariatur amet. Sit et voluptate occaecat mollit fugiat pariatur id elit.\r\n", + "address": "3 Ruby Street", + "city": "Goochland", + "state": "Arkansas", + "zip": 63056, + "country": "Denmark", + "email": "jennifersolomon@scentric.com", + "phone": "(852) 542-2938", + "color": "rgb(234,125,93)" + }, + { + "index": 274, + "name": "Sanchez Summers", + "first": "Osborne", + "last": "Buckley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/butusai/73.jpg", + "boolean": false, + "guid": "6afd5e1c-3a29-4134-b7a5-7196eb7798a4", + "integer": 76, + "date": "Sat Oct 07 1995 23:24:37 GMT-0700 (PDT)", + "shortText": "enim do voluptate quis sit", + "mediumText": "Quis amet id irure elit eu ad duis id veniam. Qui in mollit in consectetur reprehenderit ex est. Id non tempor minim aliqua commodo dolore do mollit Lorem eu non amet est.", + "longText": "Eiusmod non velit eiusmod adipisicing ut velit est adipisicing in. Eiusmod dolore et non dolore esse velit id anim proident nisi commodo. Amet fugiat magna cupidatat est esse duis et.\r\n", + "address": "3 Seigel Street", + "city": "Thatcher", + "state": "Delaware", + "zip": 98441, + "country": "Yemen", + "email": "osbornebuckley@scentric.com", + "phone": "(930) 530-3501", + "color": "rgb(53,175,123)" + }, + { + "index": 275, + "name": "Melinda Herrera", + "first": "Paula", + "last": "Clemons", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ainsleywagon/73.jpg", + "boolean": true, + "guid": "1d0ee711-59d7-4c1f-9420-3fab9a5b62f6", + "integer": 0, + "date": "Sun Aug 23 1970 02:12:34 GMT-0700 (PDT)", + "shortText": "proident laborum dolor magna laboris", + "mediumText": "Minim duis magna cillum dolore excepteur eiusmod eiusmod officia est laboris veniam. Officia amet occaecat esse non dolor. Esse quis labore ad occaecat adipisicing consequat nisi in et sunt excepteur aute consequat.", + "longText": "Mollit magna nulla exercitation commodo excepteur amet. Duis fugiat Lorem mollit adipisicing anim adipisicing adipisicing anim fugiat nulla anim. Eu adipisicing irure Lorem qui enim nisi velit exercitation duis. Aliquip ea labore commodo et nostrud. Aute sit consequat reprehenderit nulla aliquip ipsum esse esse qui exercitation pariatur cupidatat quis cillum. Do esse in ad id est id laboris incididunt.\r\nQui non quis ipsum qui fugiat pariatur. Dolore incididunt sunt eiusmod laboris nisi nulla. Qui fugiat irure consequat culpa ad non do labore commodo ut est velit nostrud. Cillum dolor aliquip elit est enim tempor consectetur. Id nostrud duis et irure nostrud do enim laboris fugiat fugiat eu eiusmod nisi.\r\nCommodo pariatur in officia cupidatat consequat eiusmod ad Lorem dolore enim aliquip elit. Ex in commodo enim sunt eiusmod. Labore consequat culpa quis voluptate aliqua. Fugiat reprehenderit cupidatat esse eiusmod duis consequat. Quis est veniam reprehenderit consectetur cupidatat aliquip in amet dolor.\r\nMagna est esse excepteur sint enim Lorem nisi deserunt pariatur non. Dolor enim officia dolore deserunt consequat quis ea adipisicing cillum aliqua anim laboris irure. In do consectetur est culpa. Sunt occaecat voluptate pariatur dolor id velit magna do veniam duis excepteur ut ad voluptate. Ut excepteur laboris ea ut.\r\nEu eiusmod excepteur reprehenderit duis ipsum commodo ullamco cillum officia incididunt esse eu nulla reprehenderit. Aliquip elit consequat dolor labore. Laborum proident ullamco excepteur dolor esse occaecat et aliqua. Commodo ad exercitation minim ad occaecat ullamco. Veniam id dolor aliquip cupidatat. Voluptate voluptate aliqua nulla aliquip adipisicing fugiat aute laboris quis amet officia magna Lorem labore.\r\n", + "address": "3 Beadel Street", + "city": "Thornport", + "state": "Federated States Of Micronesia", + "zip": 81284, + "country": "Laos", + "email": "paulaclemons@scentric.com", + "phone": "(807) 420-2457", + "color": "rgb(173,67,66)" + }, + { + "index": 276, + "name": "Mara Ortiz", + "first": "Pace", + "last": "Hunter", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/chadbercea/73.jpg", + "boolean": false, + "guid": "65b9988b-b552-44e7-8e59-7a490e0aa83b", + "integer": 45, + "date": "Wed Oct 25 2006 06:16:29 GMT-0700 (PDT)", + "shortText": "dolor ipsum", + "mediumText": "Dolore laborum non magna voluptate cillum irure ipsum ad eu aute. Proident mollit nostrud laboris ad sunt laboris aliquip quis aute duis id mollit. Commodo qui anim adipisicing anim. Eu deserunt dolor Lorem elit quis laboris nulla enim.", + "longText": "Sunt adipisicing ea dolore ea id veniam eiusmod consequat cupidatat nulla ullamco magna mollit. Excepteur qui do aliquip consequat incididunt fugiat nostrud pariatur eiusmod nostrud quis reprehenderit officia adipisicing. Consequat mollit esse eiusmod culpa qui in officia irure in enim veniam.\r\n", + "address": "2 Broome Street", + "city": "Hobucken", + "state": "Guam", + "zip": 15780, + "country": "Sierra Leone", + "email": "pacehunter@scentric.com", + "phone": "(929) 573-3129", + "color": "rgb(228,124,211)" + }, + { + "index": 277, + "name": "Hannah Mercado", + "first": "Velazquez", + "last": "Snider", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/devinhalladay/73.jpg", + "boolean": true, + "guid": "13ecf233-dc36-43ed-8b27-00fa6f367502", + "integer": 53, + "date": "Tue Dec 26 1995 12:29:11 GMT-0800 (PST)", + "shortText": "nulla cillum dolore amet", + "mediumText": "Sunt cillum deserunt ipsum est ea occaecat deserunt ex cillum ut magna do laboris minim.", + "longText": "Nostrud non aute culpa eu consectetur nisi incididunt deserunt deserunt laborum duis ad consequat. Ad tempor mollit duis deserunt anim voluptate reprehenderit proident non dolore anim dolor. Reprehenderit excepteur mollit culpa Lorem dolore. Exercitation incididunt id non esse magna qui nostrud ad.\r\n", + "address": "2 Thatford Avenue", + "city": "Rosburg", + "state": "Pennsylvania", + "zip": 18264, + "country": "Nigeria", + "email": "velazquezsnider@scentric.com", + "phone": "(948) 461-3658", + "color": "rgb(146,114,59)" + }, + { + "index": 278, + "name": "King Murray", + "first": "Lawrence", + "last": "Floyd", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mateaodviteza/73.jpg", + "boolean": false, + "guid": "48e5fed4-514a-4e9e-8842-57a2e92a654c", + "integer": 33, + "date": "Fri Aug 10 2012 11:19:30 GMT-0700 (PDT)", + "shortText": "consequat", + "mediumText": "Proident nisi exercitation amet reprehenderit cupidatat ad exercitation eu ad nostrud ex sunt.", + "longText": "Elit anim consequat minim officia reprehenderit ex voluptate incididunt Lorem. Incididunt qui incididunt Lorem do pariatur. Id aute anim elit amet labore non eiusmod sint culpa sunt ullamco irure. Adipisicing officia ea ad aliqua. Proident officia occaecat velit est amet pariatur duis esse cillum quis. Et mollit culpa ipsum ad do adipisicing sint amet.\r\nCulpa aliqua do sunt veniam laboris adipisicing pariatur mollit anim. Fugiat cupidatat labore eu eu do ea. Voluptate quis dolore ex quis culpa. Nostrud ea enim elit reprehenderit. Sint veniam commodo officia et quis laboris labore culpa quis ullamco ullamco. Labore occaecat nulla et incididunt consectetur.\r\nSit sit commodo amet cupidatat velit velit qui sint culpa magna magna proident. Adipisicing deserunt anim ullamco eiusmod aliqua laboris aliquip incididunt. Ipsum nisi velit nulla ex elit sit nostrud qui. Magna irure laboris quis Lorem enim culpa. Enim velit enim culpa nisi adipisicing officia voluptate cupidatat qui et. Sit deserunt incididunt ullamco deserunt non aliquip ut laborum Lorem dolor ullamco.\r\nAute esse dolore nisi ut sit fugiat dolore aute aliqua. Aliqua est voluptate enim dolor ullamco quis nisi qui esse nisi tempor do. Do deserunt veniam aliquip qui veniam ex nostrud incididunt culpa in magna non.\r\n", + "address": "3 Hunts Lane", + "city": "Ola", + "state": "New Hampshire", + "zip": 33769, + "country": "Netherlands", + "email": "lawrencefloyd@scentric.com", + "phone": "(813) 569-3499", + "color": "rgb(116,205,80)" + }, + { + "index": 279, + "name": "Camille Massey", + "first": "Short", + "last": "Hensley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vickyshits/73.jpg", + "boolean": false, + "guid": "08757590-e154-4bf1-b5a4-3a8763c63417", + "integer": 8, + "date": "Tue Dec 26 1989 15:35:16 GMT-0800 (PST)", + "shortText": "officia", + "mediumText": "Sint excepteur adipisicing veniam consectetur incididunt nostrud duis nulla velit laborum. Eu incididunt qui duis deserunt veniam. Culpa mollit nostrud magna dolor reprehenderit esse in consequat irure ad.", + "longText": "Occaecat magna ex ex qui exercitation adipisicing ea aliqua laboris est est adipisicing Lorem dolore. Sunt cillum labore ea amet eiusmod sunt qui. Duis deserunt do irure sit quis voluptate eu duis eiusmod. Ad incididunt anim fugiat esse ipsum aliquip ut cillum tempor eiusmod.\r\nEt Lorem amet cillum ipsum laboris sit deserunt esse duis sit dolore dolor commodo. Labore nulla cillum ad minim proident reprehenderit eu in duis consectetur amet. Aliquip velit nisi culpa ipsum qui sint ut elit id pariatur Lorem anim labore.\r\n", + "address": "2 Greene Avenue", + "city": "Dragoon", + "state": "North Dakota", + "zip": 18599, + "country": "Morocco", + "email": "shorthensley@scentric.com", + "phone": "(959) 437-3887", + "color": "rgb(61,124,231)" + }, + { + "index": 280, + "name": "Etta Nicholson", + "first": "Sadie", + "last": "Johnson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kamal_chaneman/73.jpg", + "boolean": true, + "guid": "445d79d7-84ef-49ef-aaac-2e47925151d7", + "integer": 36, + "date": "Wed Jan 05 2011 12:47:59 GMT-0800 (PST)", + "shortText": "aliquip quis incididunt esse commodo", + "mediumText": "Aliquip ut reprehenderit laboris veniam ad laboris excepteur. Et ut qui fugiat consequat qui aliquip aute incididunt magna non.", + "longText": "Sint anim magna Lorem incididunt tempor esse voluptate commodo qui velit velit aliqua adipisicing. Officia enim excepteur proident non nostrud est quis non quis anim ut irure nulla. Culpa officia velit et magna non sunt culpa laboris nulla enim. Et dolor laborum amet quis occaecat irure. Labore proident ea nulla aute anim do.\r\n", + "address": "4 Chestnut Avenue", + "city": "Boling", + "state": "Northern Mariana Islands", + "zip": 79666, + "country": "Czech Republic", + "email": "sadiejohnson@scentric.com", + "phone": "(929) 469-3200", + "color": "rgb(61,210,234)" + }, + { + "index": 281, + "name": "Roxanne Munoz", + "first": "Marguerite", + "last": "Rodriguez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_yardenoon/73.jpg", + "boolean": false, + "guid": "b7b8e91a-c476-45fb-b728-78461ff01383", + "integer": 59, + "date": "Tue Nov 11 1997 21:52:13 GMT-0800 (PST)", + "shortText": "amet adipisicing dolore Lorem consequat", + "mediumText": "Laborum fugiat anim pariatur minim fugiat sit pariatur exercitation proident. Incididunt ea duis nisi et. Do eu consectetur cillum veniam laboris consequat sunt labore exercitation laborum ipsum do duis sint. Pariatur id tempor cupidatat cillum ad eiusmod. Aliqua dolore enim magna officia tempor consequat Lorem excepteur culpa excepteur.", + "longText": "Occaecat ullamco nisi occaecat consequat consectetur aute in amet. Duis exercitation et ea aliqua elit ipsum ea ipsum laboris aliqua Lorem labore minim pariatur. Amet aliqua nostrud officia ex commodo mollit ex mollit consectetur esse elit sint. Est pariatur irure occaecat aute labore cillum nisi id.\r\nFugiat cupidatat veniam in adipisicing sint sunt cillum consequat in. Quis excepteur ad mollit occaecat et anim voluptate cupidatat. Sunt sit nisi amet excepteur voluptate. Cupidatat do ea fugiat sint minim elit nostrud. Culpa dolore in fugiat pariatur excepteur minim ad incididunt Lorem anim consequat consectetur. Duis est nulla sit eu nulla culpa proident et nostrud nostrud quis laborum dolore. Aute tempor et culpa amet.\r\n", + "address": "3 Box Street", + "city": "Caledonia", + "state": "South Dakota", + "zip": 29414, + "country": "Cape Verde", + "email": "margueriterodriguez@scentric.com", + "phone": "(975) 555-3617", + "color": "rgb(217,168,93)" + }, + { + "index": 282, + "name": "Chandler Mclean", + "first": "Olsen", + "last": "Rollins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/daniloc/73.jpg", + "boolean": true, + "guid": "18eb19e2-f53c-42f3-b3c0-f92ba5058e72", + "integer": 86, + "date": "Mon Nov 05 2012 21:48:32 GMT-0800 (PST)", + "shortText": "sunt", + "mediumText": "Sit magna labore veniam eu dolor.", + "longText": "Laboris pariatur qui esse proident aute in in quis aliquip tempor est Lorem elit nulla. Irure est id cillum in dolore qui mollit ullamco occaecat aute cupidatat culpa. Voluptate est nostrud eu laborum veniam eiusmod culpa eiusmod minim voluptate. Cupidatat cillum eiusmod aute nostrud exercitation est do anim in. Aliquip elit ullamco voluptate incididunt. In minim laboris nostrud nisi est officia proident consequat consequat velit enim ut eiusmod.\r\nSunt ex sunt ipsum dolor proident mollit cillum. In proident eiusmod nostrud cillum occaecat excepteur enim incididunt pariatur incididunt velit deserunt. Ullamco voluptate quis Lorem id qui sit occaecat qui deserunt qui aute eiusmod.\r\nCupidatat eiusmod eiusmod non officia nisi aliquip nulla eiusmod deserunt voluptate qui voluptate magna ad. Duis sit pariatur sint ea enim do esse cillum sit proident sunt. Aliqua deserunt deserunt adipisicing laboris sint voluptate occaecat culpa ipsum ut aute. Nulla amet est et aliquip commodo nostrud in ut laborum qui ullamco id aliqua. Consectetur magna aute aliquip sunt anim occaecat id ex consectetur ipsum. Eiusmod occaecat culpa laborum fugiat. Minim in sunt occaecat eu ex velit sit eiusmod ad reprehenderit.\r\nMinim nulla commodo qui velit proident. Nisi reprehenderit ullamco in in non eu. Enim exercitation voluptate consequat duis non officia quis irure consequat eu anim. Minim Lorem irure eu pariatur aute in Lorem deserunt esse elit officia excepteur. Est eiusmod tempor incididunt consectetur ullamco elit aliquip eu sunt elit eu sint aliquip. Irure adipisicing veniam aliqua incididunt officia esse veniam veniam officia.\r\nOfficia velit nostrud eiusmod ex elit nostrud non veniam commodo exercitation amet. Enim non mollit cupidatat magna aute anim tempor. Consequat ea nostrud esse laboris minim commodo culpa laborum aliqua adipisicing cupidatat sit. Ullamco enim fugiat tempor minim officia ipsum duis et sunt sint.\r\n", + "address": "4 Neptune Court", + "city": "Fillmore", + "state": "Alaska", + "zip": 62131, + "country": "Madagascar", + "email": "olsenrollins@scentric.com", + "phone": "(936) 437-3569", + "color": "rgb(163,129,119)" + }, + { + "index": 283, + "name": "Clements Wynn", + "first": "Dollie", + "last": "Rowland", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jamesmbickerton/73.jpg", + "boolean": true, + "guid": "ecf696fd-aa3b-4bed-bdb1-b3b9a18f13f5", + "integer": 24, + "date": "Fri Jan 11 1974 07:17:27 GMT-0700 (PDT)", + "shortText": "consequat voluptate", + "mediumText": "Ut ullamco labore elit exercitation pariatur consequat quis proident. Tempor aute ex consectetur ut eu qui incididunt aliqua anim duis sit. Elit consequat nisi fugiat elit sit nisi eu laborum excepteur nulla proident ex. Eiusmod qui culpa quis velit elit consequat nulla.", + "longText": "Occaecat aliqua sunt velit deserunt mollit fugiat excepteur adipisicing pariatur non amet enim ad. Consectetur aliqua do sint cupidatat nostrud ipsum anim laborum nulla aliquip sit. Labore mollit amet Lorem quis. Ex cillum minim sit eu duis. Nulla sint esse nostrud nisi mollit irure commodo aute esse esse aliquip sunt ut. Ipsum et nulla cupidatat tempor consequat do occaecat ut.\r\nConsequat tempor et qui exercitation non in commodo. Aute minim nostrud laboris dolore reprehenderit. Adipisicing proident esse laborum cillum tempor veniam incididunt minim est adipisicing. Dolor nisi nisi dolore amet ea ipsum mollit amet.\r\n", + "address": "3 Minna Street", + "city": "Gratton", + "state": "Louisiana", + "zip": 90178, + "country": "Austria", + "email": "dollierowland@scentric.com", + "phone": "(992) 594-3916", + "color": "rgb(197,160,174)" + }, + { + "index": 284, + "name": "Cotton Newman", + "first": "Mccullough", + "last": "Oneil", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ddang33/73.jpg", + "boolean": true, + "guid": "da4451a9-1961-4257-87c6-19aa0c2780d9", + "integer": 24, + "date": "Fri Oct 26 1990 18:43:21 GMT-0700 (PDT)", + "shortText": "id nulla", + "mediumText": "In reprehenderit velit non aute ad mollit aliqua ullamco nostrud adipisicing dolore incididunt. Mollit et consequat eiusmod in laborum nulla in irure qui. Ex consequat est in laboris. Sunt ipsum eu eiusmod quis dolor nostrud sunt consectetur in ea ex commodo. Do enim occaecat labore et occaecat mollit consequat.", + "longText": "Nulla sunt aliqua ea laborum fugiat dolor reprehenderit nisi nulla pariatur minim. Duis aliquip in incididunt sunt sit nulla sunt cillum ut anim elit. Commodo excepteur dolore nisi labore exercitation commodo Lorem veniam anim nisi velit dolor aute.\r\nNulla labore laborum Lorem eu elit consequat eiusmod dolore irure ex. Occaecat enim ea nisi duis aliqua commodo sint sint enim consequat exercitation amet. Cupidatat Lorem culpa quis qui dolore. Proident non eu sint eiusmod id ullamco nisi nisi.\r\nAdipisicing nisi labore aliqua irure occaecat consectetur aute ut mollit ad excepteur. Magna et non laboris velit ipsum. Id et cillum aute nulla consectetur esse est quis culpa consequat. Veniam enim dolore dolore consequat pariatur aute elit consequat. Ipsum ullamco consectetur cillum dolor qui incididunt quis occaecat est proident eiusmod Lorem. Proident excepteur et mollit ipsum culpa duis ut fugiat tempor in ea.\r\n", + "address": "3 Troutman Street", + "city": "Roland", + "state": "Missouri", + "zip": 86860, + "country": "Venezuela", + "email": "mcculloughoneil@scentric.com", + "phone": "(823) 420-3250", + "color": "rgb(251,198,94)" + }, + { + "index": 285, + "name": "Gentry Ellis", + "first": "Bessie", + "last": "Mccarty", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/captnphilip/73.jpg", + "boolean": true, + "guid": "0c5c5f6a-c138-49a9-91a2-37523afe47ad", + "integer": 89, + "date": "Fri Jun 03 1983 21:40:24 GMT-0700 (PDT)", + "shortText": "in sint", + "mediumText": "Ullamco ex Lorem dolor cillum sint duis quis consequat consequat. Do ad proident ad deserunt do incididunt tempor qui anim tempor ullamco incididunt eiusmod Lorem. Et ex adipisicing esse sit velit excepteur reprehenderit proident enim. Magna exercitation ullamco commodo culpa fugiat laborum ipsum est ullamco occaecat nisi.", + "longText": "Ut veniam ad exercitation elit in anim nulla fugiat exercitation consequat officia enim. Sint id sunt sit Lorem veniam sint eu occaecat consequat consectetur nulla. Laboris incididunt aute esse duis magna proident cupidatat incididunt incididunt anim irure excepteur nostrud anim. Velit nisi officia pariatur pariatur enim veniam culpa ipsum nulla cupidatat id.\r\n", + "address": "4 Juliana Place", + "city": "Driftwood", + "state": "Kentucky", + "zip": 15926, + "country": "Hong Kong", + "email": "bessiemccarty@scentric.com", + "phone": "(873) 427-3409", + "color": "rgb(81,159,158)" + }, + { + "index": 286, + "name": "Walsh Joyce", + "first": "Antonia", + "last": "Wilder", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rangafangs/73.jpg", + "boolean": true, + "guid": "61dd3458-c773-4f4b-b2bb-3d301963acb2", + "integer": 63, + "date": "Thu Apr 03 2008 20:31:45 GMT-0700 (PDT)", + "shortText": "quis magna nisi", + "mediumText": "Pariatur ullamco mollit aliquip adipisicing dolore reprehenderit nulla in. Et do dolor pariatur est laboris ea amet proident elit proident est. Lorem et est nisi deserunt dolor consectetur cupidatat ea ex sunt. Qui amet veniam reprehenderit mollit adipisicing nulla in do voluptate. Fugiat irure esse proident esse anim Lorem et pariatur dolor.", + "longText": "Aute commodo incididunt eu consequat. Exercitation esse dolor id id in Lorem tempor laboris ex esse. Reprehenderit eiusmod consequat commodo consequat est. Ut magna mollit officia sint minim velit sunt magna commodo occaecat Lorem eu veniam nostrud.\r\nQui eu duis aliquip dolor dolor aliquip. Officia irure proident irure nulla non sint fugiat mollit sunt irure fugiat laborum. Labore non duis voluptate velit magna laborum aliquip officia ea reprehenderit ullamco ut eiusmod eiusmod. Velit sint esse eiusmod exercitation id voluptate veniam occaecat sit id eiusmod.\r\n", + "address": "3 Vandalia Avenue", + "city": "Haena", + "state": "American Samoa", + "zip": 29939, + "country": "Sri Lanka", + "email": "antoniawilder@scentric.com", + "phone": "(871) 452-2870", + "color": "rgb(215,69,234)" + }, + { + "index": 287, + "name": "Espinoza Sargent", + "first": "Lee", + "last": "Mccray", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/zachbruggeman/73.jpg", + "boolean": false, + "guid": "8d6ab343-c3b7-4878-abfd-02a4bd8c4aad", + "integer": 34, + "date": "Sat Nov 24 2012 16:55:52 GMT-0800 (PST)", + "shortText": "laboris", + "mediumText": "Tempor et laboris nisi in deserunt ea veniam nostrud proident mollit ex nostrud adipisicing minim. Aliqua commodo eiusmod laborum labore. Velit et occaecat laborum aliqua labore culpa elit aute.", + "longText": "Ex labore aliquip voluptate enim Lorem qui cupidatat ipsum velit irure ullamco reprehenderit ad ad. Est enim ullamco velit pariatur eiusmod exercitation minim ex eiusmod laboris irure elit occaecat ipsum. Occaecat culpa dolore id veniam in. Consequat deserunt proident sit ad consequat proident. Dolore do voluptate ipsum eiusmod elit culpa irure in laborum aute. Ad ad dolor deserunt veniam aliqua adipisicing aliqua magna non pariatur dolore qui.\r\nNon in duis aliquip in nostrud magna ipsum ullamco. Reprehenderit do officia ad magna culpa id eiusmod et quis adipisicing nisi sint. Ullamco tempor cupidatat quis aliquip anim velit.\r\nDo id dolore veniam voluptate voluptate in ullamco dolor aliqua. Culpa duis enim eiusmod anim ipsum dolore consectetur velit esse aliqua aliquip amet. Nulla sit nulla et veniam eu. Sint nostrud do irure reprehenderit nulla consectetur in eu est id minim. Incididunt consectetur sint non nisi do anim veniam laboris in ad. Ut commodo elit est et mollit velit sunt dolore enim fugiat nulla voluptate sit irure. Laborum fugiat pariatur ut dolore ut qui minim.\r\nCupidatat nulla elit non ex elit. Deserunt exercitation excepteur nisi enim nulla commodo cupidatat exercitation est incididunt ex aute laboris. Id mollit nostrud veniam eiusmod minim esse nisi amet reprehenderit cillum aute sit fugiat. Nulla ad laboris laborum tempor dolor enim ullamco adipisicing do ipsum. Non reprehenderit sunt consectetur est labore consequat cupidatat cillum voluptate voluptate aliquip. Voluptate consectetur duis ipsum do mollit. Aute deserunt anim tempor veniam exercitation ut.\r\n", + "address": "4 Lombardy Street", + "city": "Thynedale", + "state": "Minnesota", + "zip": 37944, + "country": "Turkmenistan", + "email": "leemccray@scentric.com", + "phone": "(948) 512-3677", + "color": "rgb(124,117,105)" + }, + { + "index": 288, + "name": "Lillie Hewitt", + "first": "Cecelia", + "last": "Roman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/orkuncaylar/73.jpg", + "boolean": true, + "guid": "fd80b277-7170-4ff2-ad97-36272ea38b7d", + "integer": 54, + "date": "Mon Jul 11 1977 01:50:59 GMT-0700 (PDT)", + "shortText": "excepteur", + "mediumText": "Incididunt reprehenderit Lorem mollit consectetur adipisicing tempor occaecat nulla irure. Non nulla id proident quis est laboris adipisicing id eu id incididunt enim. Elit cillum sit ut elit nisi ea.", + "longText": "Ex adipisicing irure occaecat exercitation excepteur amet est eiusmod elit ullamco. Non tempor sit Lorem laborum laboris veniam elit sunt consequat. Pariatur officia laborum exercitation nostrud esse culpa consequat minim eiusmod voluptate consequat quis ad. Deserunt duis et Lorem labore do irure nostrud sit. Ullamco ad id sint sint cupidatat labore.\r\nEiusmod elit dolor qui nostrud eiusmod. Tempor veniam officia do exercitation. Id Lorem elit aute pariatur nostrud fugiat velit exercitation laboris ullamco irure. Laborum mollit occaecat reprehenderit dolore elit aliqua. Labore irure dolore proident non nisi culpa amet est anim non. Excepteur id veniam cupidatat aliquip ipsum cupidatat voluptate mollit in ut quis. Duis aute sunt fugiat ad consequat aliqua ea dolore esse consectetur non officia minim minim.\r\n", + "address": "3 Chauncey Street", + "city": "Rosedale", + "state": "Hawaii", + "zip": 94656, + "country": "Burundi", + "email": "ceceliaroman@scentric.com", + "phone": "(989) 468-2742", + "color": "rgb(136,244,245)" + }, + { + "index": 289, + "name": "Travis Ballard", + "first": "Georgia", + "last": "Horne", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/adamnac/73.jpg", + "boolean": false, + "guid": "c91bf011-bcd9-47fd-98b4-255ed2431de0", + "integer": 16, + "date": "Fri Aug 21 1998 11:13:07 GMT-0700 (PDT)", + "shortText": "sint enim fugiat culpa irure", + "mediumText": "Enim mollit ex velit anim ad. Mollit nulla sit est in minim voluptate ea deserunt commodo excepteur.", + "longText": "Consectetur aute officia nisi sint ut enim consequat. Id culpa in velit tempor nulla officia culpa. Ipsum occaecat tempor laborum veniam cillum occaecat consequat veniam. Nostrud aute velit veniam pariatur sint nostrud Lorem ipsum. Occaecat esse ea excepteur consequat exercitation eiusmod exercitation consequat do esse irure deserunt voluptate ut.\r\nConsectetur irure nostrud nulla ipsum fugiat nisi ex eu. Dolor ea deserunt aute cupidatat duis exercitation dolor consectetur do aliquip. Excepteur in ea cupidatat quis fugiat. Voluptate labore id tempor veniam pariatur excepteur ipsum.\r\nMagna qui ad aliqua minim sunt. Non enim eu proident esse dolor dolore elit Lorem dolore labore tempor eu. Incididunt elit esse cupidatat proident do sunt culpa sit elit cupidatat proident. Culpa dolore esse irure magna quis magna officia nostrud culpa dolor do non id. Esse laborum ea consequat commodo fugiat duis. Pariatur enim proident minim cupidatat dolor occaecat irure do. Incididunt dolor magna enim non ipsum minim cillum quis cillum velit culpa eu.\r\nEst esse eu commodo ea sint. Labore adipisicing cupidatat fugiat ea nostrud adipisicing ipsum. Esse eiusmod do tempor cillum sint dolor cillum occaecat incididunt ipsum exercitation sunt. Minim est ex commodo amet id sunt elit ea amet dolor ad. Ad elit exercitation consectetur nostrud elit exercitation irure fugiat dolore occaecat aliqua laborum. Sint sint et cupidatat laboris sunt exercitation ut dolor laborum consectetur minim.\r\n", + "address": "3 Jackson Place", + "city": "Titanic", + "state": "Alabama", + "zip": 30613, + "country": "Western Sahara", + "email": "georgiahorne@scentric.com", + "phone": "(862) 588-3110", + "color": "rgb(87,132,165)" + }, + { + "index": 290, + "name": "Natalie Mclaughlin", + "first": "Christa", + "last": "Whitney", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremydowe/73.jpg", + "boolean": false, + "guid": "99003ea4-7908-4727-9909-1fc5a6e1b77d", + "integer": 38, + "date": "Wed Jun 18 2014 21:58:36 GMT-0700 (PDT)", + "shortText": "fugiat", + "mediumText": "Labore cillum ut voluptate laboris ipsum Lorem sint sit ut adipisicing ex occaecat aliquip nostrud. Deserunt officia minim sunt labore excepteur.", + "longText": "Voluptate cupidatat do eiusmod et ex magna nisi mollit veniam consequat fugiat. Velit culpa veniam sint nostrud aute aliquip id commodo consectetur. Reprehenderit aute consequat eu ullamco irure duis excepteur. Voluptate et aute culpa et pariatur sit ullamco deserunt cillum est magna reprehenderit tempor occaecat. Duis elit dolor id Lorem cupidatat sit aliquip. Pariatur aliqua occaecat sit sint in ullamco mollit duis aute proident. Et commodo pariatur nostrud est.\r\n", + "address": "3 Greenpoint Avenue", + "city": "Abiquiu", + "state": "North Carolina", + "zip": 97106, + "country": "Mozambique", + "email": "christawhitney@scentric.com", + "phone": "(882) 546-3928", + "color": "rgb(211,106,204)" + }, + { + "index": 291, + "name": "Sexton Phillips", + "first": "Ebony", + "last": "Riley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/adamawesomeface/73.jpg", + "boolean": false, + "guid": "79a69d1d-7c62-4f81-8cb4-2933233de8f0", + "integer": 31, + "date": "Mon Oct 28 1985 13:27:05 GMT-0800 (PST)", + "shortText": "duis", + "mediumText": "Duis do ullamco mollit reprehenderit proident labore laborum sint ipsum reprehenderit occaecat anim. Qui nostrud nostrud cillum in cupidatat duis sunt mollit et proident irure aliquip amet. Eiusmod amet elit occaecat ullamco in cillum proident exercitation nulla quis nisi. Velit qui ex nisi officia. Ullamco adipisicing irure sint excepteur aliquip consequat do cillum enim.", + "longText": "Ullamco labore amet est ullamco dolore quis tempor fugiat nulla eu aute duis. Pariatur officia sit Lorem occaecat aliquip nulla dolore incididunt id voluptate consequat sint ad. Tempor ipsum pariatur nisi laboris laboris id reprehenderit mollit est Lorem tempor fugiat dolore.\r\nAliqua et laborum amet proident ullamco velit minim est commodo culpa do ea excepteur anim. Sit qui nulla dolore laborum exercitation id qui id mollit consequat laboris adipisicing veniam anim. Pariatur reprehenderit id aliqua et pariatur nulla officia ex nostrud. Dolore ea do dolor nulla. Reprehenderit velit id eu nulla sunt ullamco eiusmod nulla consequat incididunt anim mollit enim.\r\n", + "address": "2 Moore Street", + "city": "Reno", + "state": "Connecticut", + "zip": 76313, + "country": "Grenada", + "email": "ebonyriley@scentric.com", + "phone": "(930) 448-2157", + "color": "rgb(79,135,188)" + }, + { + "index": 292, + "name": "Lynn Joyner", + "first": "Willis", + "last": "Wall", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/low_res/73.jpg", + "boolean": true, + "guid": "0b8fad6f-6113-46f5-b586-19015be0120b", + "integer": 74, + "date": "Mon Oct 24 1988 13:00:24 GMT-0700 (PDT)", + "shortText": "excepteur exercitation", + "mediumText": "In occaecat voluptate officia in fugiat velit proident consectetur nulla tempor.", + "longText": "Amet veniam ex eiusmod ex nulla consequat nulla non duis officia. Reprehenderit esse laborum laboris velit fugiat sint incididunt consectetur nisi Lorem voluptate Lorem tempor quis. Voluptate veniam ea dolor laborum ea nostrud voluptate qui. Deserunt aliqua dolor culpa tempor ex consequat in. Esse est incididunt exercitation ad ex ad est. Aute culpa Lorem cillum est sunt adipisicing tempor eu cupidatat. Reprehenderit velit exercitation sunt adipisicing consequat velit eiusmod.\r\nDuis ex minim Lorem aute labore exercitation ipsum do magna minim. Lorem ipsum dolor laboris non minim. Ex laborum tempor commodo irure cillum dolore est ut sunt dolor excepteur officia pariatur. Labore commodo non anim et pariatur quis officia fugiat duis non id consequat.\r\nTempor ullamco cillum mollit aute id ipsum minim sunt anim aliqua fugiat. Ut incididunt dolore magna duis veniam et elit deserunt ad proident ea ea occaecat duis. Nulla proident consectetur sunt sint ex voluptate incididunt consequat laborum commodo enim do et culpa. Aute consequat minim elit Lorem adipisicing excepteur culpa.\r\n", + "address": "2 Lenox Road", + "city": "Otranto", + "state": "South Carolina", + "zip": 25833, + "country": "Cote D'Ivoire (Ivory Coast)", + "email": "williswall@scentric.com", + "phone": "(927) 481-2476", + "color": "rgb(59,194,92)" + }, + { + "index": 293, + "name": "Ursula Pearson", + "first": "Miriam", + "last": "Beck", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tomas_janousek/73.jpg", + "boolean": false, + "guid": "376bb50b-cbec-450c-a0c5-400189bf6ebd", + "integer": 27, + "date": "Sat Dec 27 1986 23:08:28 GMT-0800 (PST)", + "shortText": "tempor nostrud", + "mediumText": "Pariatur ex amet nulla ut nisi non sint sint. Labore minim aute id id ex. Consectetur eu aute ad aute irure proident. Tempor tempor velit labore nulla culpa sunt aliquip.", + "longText": "Exercitation culpa do nisi elit sit. Et fugiat mollit incididunt dolor esse consequat. Ut culpa duis sit laboris in enim fugiat exercitation. Nostrud ex qui laboris Lorem magna ea non nostrud ad esse. Et irure esse deserunt reprehenderit incididunt consectetur consequat do sint sunt. Nostrud cillum adipisicing quis duis.\r\nMollit eu officia velit velit ea consectetur fugiat amet nisi. Eiusmod sit culpa tempor fugiat reprehenderit irure proident. Labore laboris occaecat qui laboris ipsum irure sit consectetur consectetur laboris culpa. Minim ad aliquip enim Lorem qui culpa. Minim proident ipsum et ea sunt. Nulla et consectetur esse aute.\r\n", + "address": "2 Beayer Place", + "city": "Snelling", + "state": "Michigan", + "zip": 94691, + "country": "Philippines", + "email": "miriambeck@scentric.com", + "phone": "(829) 585-3891", + "color": "rgb(168,101,180)" + }, + { + "index": 294, + "name": "Hill Aguirre", + "first": "Kelley", + "last": "Myers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jghyllebert/73.jpg", + "boolean": true, + "guid": "34b624b3-92b6-4e5a-b477-c30521137ed1", + "integer": 85, + "date": "Tue Jun 01 2004 12:36:52 GMT-0700 (PDT)", + "shortText": "magna sit", + "mediumText": "Minim in cupidatat ullamco aliquip aliqua in nulla ullamco commodo esse quis sit. Ut aliquip elit cillum ad. Ex exercitation occaecat nulla nostrud elit aliquip nostrud commodo. Velit non cupidatat labore pariatur reprehenderit nulla anim deserunt mollit tempor ad nulla laboris qui. Exercitation aute fugiat quis anim aute.", + "longText": "Laboris id magna culpa aliquip anim nulla adipisicing mollit. Aute ad consequat ullamco in deserunt fugiat excepteur consectetur qui aliqua irure. Veniam ut in proident adipisicing dolore Lorem anim. Lorem veniam enim adipisicing nulla sint esse enim cupidatat. Sit ea ullamco laboris occaecat officia laborum ea do laboris duis velit minim.\r\nLaborum laborum sunt minim ex voluptate do elit ullamco reprehenderit mollit. Aliqua est esse magna aliqua laborum incididunt commodo aute velit esse sint irure tempor. Ut ut cupidatat quis exercitation exercitation. Proident aute id voluptate velit sint anim proident ea officia exercitation. Aliqua do labore veniam duis occaecat commodo. Anim duis elit esse non elit ut.\r\nVeniam minim excepteur consectetur enim ea enim ad nostrud exercitation enim deserunt. Fugiat cupidatat culpa dolore occaecat incididunt non aliquip sint ipsum. Duis velit ullamco consequat et nulla eu reprehenderit ut nostrud enim velit. Voluptate veniam et nulla incididunt aliqua nulla et consequat anim duis qui. Ullamco ipsum velit amet eu proident proident nisi qui aliquip sint. Minim do consectetur laborum laborum reprehenderit quis aliquip ut duis consectetur laboris reprehenderit mollit excepteur. Eiusmod aliquip deserunt aute ex.\r\n", + "address": "4 Garfield Place", + "city": "Enoree", + "state": "Maine", + "zip": 11286, + "country": "Bermuda", + "email": "kelleymyers@scentric.com", + "phone": "(843) 584-2383", + "color": "rgb(122,201,168)" + }, + { + "index": 295, + "name": "Roseann Bryant", + "first": "Jerry", + "last": "Hester", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gkaam/73.jpg", + "boolean": true, + "guid": "b860c080-a929-47e5-a0d0-71451a0c3af2", + "integer": 27, + "date": "Mon Feb 21 1977 02:23:49 GMT-0800 (PST)", + "shortText": "id commodo", + "mediumText": "Nulla reprehenderit laboris culpa aute laborum excepteur voluptate ullamco id. Consequat ut veniam occaecat officia dolore do. Laborum exercitation reprehenderit nostrud aute ut do. Esse laborum sit Lorem sint do mollit.", + "longText": "Dolore in cupidatat officia sunt. Sunt elit labore nisi est laboris dolore veniam. Esse pariatur in ex magna veniam aute.\r\nReprehenderit dolor nostrud amet reprehenderit sit nulla veniam ea id irure sit cupidatat laborum. Consectetur labore eiusmod magna ea esse ut exercitation voluptate eiusmod do. Ut cupidatat officia fugiat irure anim eu eu cillum minim ex ullamco.\r\nLabore reprehenderit culpa laboris irure cillum aliqua. Labore velit esse officia duis Lorem veniam fugiat laboris exercitation reprehenderit anim est incididunt qui. Cillum velit excepteur duis ullamco officia amet. Velit reprehenderit Lorem est pariatur culpa in amet quis nostrud nisi proident ex ex. Laboris aliquip nulla anim mollit mollit ea amet quis amet nisi et culpa nostrud. Magna esse in sit cillum eu sunt anim sit officia culpa ea aliqua ipsum. Excepteur ex ullamco quis in reprehenderit ex id sint commodo dolor tempor.\r\n", + "address": "2 Classon Avenue", + "city": "Harmon", + "state": "Kansas", + "zip": 61846, + "country": "Benin", + "email": "jerryhester@scentric.com", + "phone": "(890) 533-3064", + "color": "rgb(137,53,240)" + }, + { + "index": 296, + "name": "Darlene Brady", + "first": "Cindy", + "last": "Aguilar", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ahmetalpbalkan/73.jpg", + "boolean": false, + "guid": "1701f080-0b5d-4b9b-b030-9e4c5f307453", + "integer": 65, + "date": "Thu Aug 06 1981 04:50:44 GMT-0700 (PDT)", + "shortText": "minim", + "mediumText": "Reprehenderit aliquip consequat ut aliqua exercitation dolor ipsum cillum elit pariatur. Pariatur nisi laborum cupidatat eiusmod cillum exercitation pariatur magna eu sunt. Dolore culpa ut non occaecat.", + "longText": "Do occaecat do quis qui laboris veniam. Non minim eiusmod est do exercitation eu commodo irure sint deserunt nisi anim. Aute ex ea culpa fugiat sit labore ut incididunt tempor et aliqua culpa sint. Duis cillum laborum officia eiusmod qui veniam laborum incididunt. Cillum ullamco sint nostrud reprehenderit velit consectetur nostrud exercitation aute elit nisi velit occaecat ex.\r\n", + "address": "4 Fountain Avenue", + "city": "Bennett", + "state": "Iowa", + "zip": 74097, + "country": "Lithuania", + "email": "cindyaguilar@scentric.com", + "phone": "(812) 401-3316", + "color": "rgb(232,141,62)" + }, + { + "index": 297, + "name": "Patty Barr", + "first": "Ferguson", + "last": "Estrada", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/Silveredge9/73.jpg", + "boolean": false, + "guid": "fd87de9f-318b-4a1a-81e7-568f64e7c526", + "integer": 98, + "date": "Thu May 21 2009 02:11:35 GMT-0700 (PDT)", + "shortText": "excepteur excepteur esse culpa", + "mediumText": "Duis quis id elit culpa aute occaecat occaecat mollit culpa commodo ad labore laborum. Aliqua ea dolor Lorem ad laboris deserunt.", + "longText": "Ex in occaecat enim voluptate ex nisi officia. Id nostrud adipisicing sint commodo do proident minim sint tempor Lorem. Fugiat aliquip quis anim tempor laborum nisi voluptate minim non incididunt sint in. Aliqua dolore deserunt qui id eu cillum cillum ex nulla laboris nostrud eiusmod dolore. Qui dolor ullamco dolore proident aliqua.\r\nMagna consequat ex sunt occaecat enim deserunt dolor. Proident deserunt enim nulla eiusmod esse ea. Laborum aliquip nulla ipsum elit non pariatur nisi anim veniam amet aliqua. Ullamco cillum deserunt ex consectetur. Esse ex fugiat dolor ea ullamco dolor sit non. Esse eu occaecat dolore quis ipsum. Labore sint qui veniam fugiat est laboris sit.\r\nEst sint do veniam cillum occaecat aliqua ut sit Lorem consequat irure nostrud excepteur. Veniam dolore Lorem et nostrud quis esse est. Reprehenderit cillum laborum occaecat anim Lorem culpa sit aliquip consectetur ut enim eiusmod irure. Qui eu non eiusmod enim cillum sint in laborum sunt ipsum eiusmod enim est. Et labore occaecat dolor aliquip anim esse pariatur. Labore sit incididunt deserunt dolore ad deserunt. Lorem deserunt ex cillum qui amet adipisicing dolor eiusmod culpa id.\r\nEnim fugiat excepteur in ut ex pariatur pariatur sunt deserunt Lorem proident. Ipsum eu enim fugiat est ut ipsum do sint proident ipsum esse deserunt. Culpa minim duis ut aliquip sint sunt velit dolore amet. Consectetur enim enim velit velit non commodo velit nulla cupidatat laborum. Aliqua duis sint cupidatat excepteur adipisicing. Laboris proident irure aliqua esse irure aliqua ex consectetur.\r\n", + "address": "4 Monitor Street", + "city": "Clarksburg", + "state": "Vermont", + "zip": 44637, + "country": "Virgin Islands (British)", + "email": "fergusonestrada@scentric.com", + "phone": "(896) 548-2171", + "color": "rgb(100,112,105)" + }, + { + "index": 298, + "name": "Cunningham Flores", + "first": "Barbra", + "last": "Weiss", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_rennerlisa/73.jpg", + "boolean": false, + "guid": "c5081ce2-b967-4d87-9edd-e1b2d4d029cb", + "integer": 58, + "date": "Wed Nov 21 2001 11:50:05 GMT-0800 (PST)", + "shortText": "duis deserunt voluptate", + "mediumText": "Ea enim eu sit eu officia esse sunt. Consequat consequat exercitation officia incididunt consequat exercitation veniam do aute duis eiusmod irure velit. Anim labore ut exercitation excepteur irure incididunt laborum. Adipisicing et pariatur sit officia dolor laboris. Duis ipsum amet ipsum sit labore ipsum elit aliqua eiusmod.", + "longText": "Labore esse consectetur dolor veniam tempor incididunt ipsum aliqua velit laborum dolore Lorem in. Duis proident occaecat Lorem eu officia labore ullamco duis Lorem. Eu deserunt amet laboris aliqua anim sunt aliqua. Occaecat pariatur proident fugiat officia in dolore mollit consectetur dolore officia fugiat esse. Proident culpa veniam sit commodo. Quis sunt in velit id magna tempor est. Velit veniam aliquip cupidatat sunt quis veniam et minim.\r\nLorem ut fugiat in sit eiusmod officia in ad ad culpa culpa. Sit occaecat qui laboris labore amet magna irure ut ut anim esse incididunt ut velit. Dolor minim id reprehenderit reprehenderit labore. Dolore sint ipsum esse ut ex. Dolor esse est Lorem Lorem commodo veniam minim. Eu laborum amet labore nostrud cillum sint aliqua pariatur laborum ullamco consequat do. Quis proident in sunt laborum officia qui aliquip.\r\nIn cillum do cupidatat qui sint. Irure aliqua dolor proident esse tempor cupidatat laborum cillum. Culpa laboris nostrud esse eiusmod.\r\nReprehenderit non duis amet dolore excepteur ad et. Officia magna quis ipsum fugiat eu in nostrud labore culpa. Ullamco ullamco duis irure sit dolore amet aute non dolor adipisicing.\r\n", + "address": "2 River Street", + "city": "Wedgewood", + "state": "Nebraska", + "zip": 20486, + "country": "Jordan", + "email": "barbraweiss@scentric.com", + "phone": "(828) 488-2896", + "color": "rgb(86,115,171)" + }, + { + "index": 299, + "name": "Bobbi Salas", + "first": "Ines", + "last": "Howell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kulturpessimist/73.jpg", + "boolean": false, + "guid": "3bfa3d64-c2c0-4ea1-9111-2f9ca46c2a87", + "integer": 81, + "date": "Mon Jan 06 2014 11:35:59 GMT-0800 (PST)", + "shortText": "elit nostrud", + "mediumText": "In anim nulla tempor Lorem sunt in enim fugiat eiusmod occaecat aliquip eiusmod aute.", + "longText": "Consectetur excepteur pariatur officia esse cupidatat duis do excepteur nostrud id deserunt. Veniam ad consequat nostrud id fugiat cupidatat sint sunt cillum aute commodo dolore adipisicing. Eu dolor exercitation ullamco enim consequat ad pariatur incididunt. Nisi dolor eiusmod reprehenderit non. Culpa ex labore cupidatat mollit incididunt veniam qui ipsum commodo sunt. In qui aliqua tempor excepteur ut ea cillum.\r\n", + "address": "2 Cypress Court", + "city": "Kiskimere", + "state": "Florida", + "zip": 33788, + "country": "Nicaragua", + "email": "ineshowell@scentric.com", + "phone": "(959) 501-3404", + "color": "rgb(139,215,118)" + }, + { + "index": 300, + "name": "Alice Cooke", + "first": "Dillon", + "last": "Goodwin", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/picard102/73.jpg", + "boolean": true, + "guid": "b536f301-48d7-4e68-90a9-c9d3caf00547", + "integer": 95, + "date": "Mon Jan 13 1992 21:08:29 GMT-0800 (PST)", + "shortText": "amet dolor ut consequat", + "mediumText": "Laborum excepteur esse qui sint. Enim ullamco amet anim commodo sunt incididunt dolore. Pariatur mollit esse consectetur fugiat ex esse voluptate enim.", + "longText": "Occaecat duis sit labore magna. Aute veniam ex reprehenderit irure dolor. Aliquip dolor quis sint eu do sunt commodo nulla cillum. Non minim fugiat nulla amet ullamco ipsum ex. Nulla incididunt proident labore veniam aliquip duis fugiat fugiat laboris nisi anim. Aliqua aliqua aliqua elit excepteur magna esse non ipsum mollit qui sint irure magna labore.\r\nId commodo sunt officia sit aute dolor consectetur et eiusmod deserunt mollit est magna laboris. Est laborum nulla in ex adipisicing veniam. Nisi anim ut dolore cupidatat fugiat eu. Eiusmod et culpa ex quis fugiat nostrud culpa. Excepteur ipsum enim excepteur minim esse aliquip elit amet aliquip incididunt Lorem. Quis laboris officia pariatur nisi ad sunt pariatur mollit cillum eu nostrud nulla. Ad ea excepteur est sint aliqua minim sint voluptate magna tempor nostrud pariatur duis.\r\nEu laboris ea esse adipisicing est veniam sint elit eiusmod. Consectetur voluptate eiusmod do anim reprehenderit pariatur aliqua ullamco voluptate nulla commodo aliqua id. Voluptate deserunt irure Lorem velit amet consectetur amet deserunt. Excepteur id esse eiusmod cupidatat laborum fugiat. Ea labore et amet non.\r\nAmet ea aute magna tempor. Duis voluptate culpa voluptate culpa ut irure. Adipisicing laborum deserunt nulla amet magna velit est nisi do pariatur nulla culpa laboris. Amet proident voluptate cillum ullamco cupidatat. Elit est incididunt sint fugiat tempor.\r\nEiusmod exercitation voluptate laborum laboris laborum aliquip magna esse mollit cupidatat magna excepteur do. Magna tempor excepteur ex dolor. Pariatur sunt duis minim duis aute cupidatat qui in anim qui. Do nulla anim reprehenderit deserunt nostrud enim dolore ad eu eu eiusmod irure duis culpa.\r\n", + "address": "4 Vanderbilt Street", + "city": "Disautel", + "state": "New Jersey", + "zip": 93269, + "country": "South Africa", + "email": "dillongoodwin@scentric.com", + "phone": "(884) 433-3460", + "color": "rgb(218,70,51)" + }, + { + "index": 301, + "name": "Bianca Miles", + "first": "Eddie", + "last": "Lambert", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/e_zrra/73.jpg", + "boolean": false, + "guid": "d469f64f-4779-4372-ae48-a5c5546cc282", + "integer": 69, + "date": "Sat Feb 23 1974 14:20:00 GMT-0700 (PDT)", + "shortText": "proident mollit ad ipsum eu", + "mediumText": "Id sint adipisicing nostrud nulla velit amet ullamco Lorem adipisicing sit in ipsum. Ad ex ut nostrud exercitation pariatur proident ullamco esse ex quis id aliqua elit. Culpa et laborum enim laboris.", + "longText": "Consectetur reprehenderit qui velit proident ipsum voluptate Lorem. Nisi sit consectetur irure do occaecat tempor cupidatat dolor deserunt excepteur velit. Culpa incididunt veniam consequat veniam ex nisi nulla deserunt. Reprehenderit aliqua nisi enim in fugiat magna consectetur officia aute elit commodo mollit. Quis ipsum eiusmod fugiat ut consequat amet do eu.\r\nExcepteur magna deserunt qui ut esse duis commodo nostrud magna adipisicing culpa ullamco proident enim. Laboris aliquip non dolor in enim quis eu. Ex non cupidatat nostrud sit ut ea et ex irure tempor sint excepteur sit fugiat. Id cupidatat elit amet sit ullamco sint tempor sit tempor. Incididunt Lorem magna veniam occaecat duis aute minim duis sint.\r\nCillum pariatur non esse amet incididunt. Consectetur veniam aliquip consequat id consectetur enim excepteur dolore ullamco enim sunt elit ea eiusmod. Eiusmod aute veniam nostrud irure sunt pariatur irure magna exercitation irure adipisicing consequat enim. In et ex occaecat occaecat velit. In id qui aliquip nisi nostrud anim laborum nulla magna exercitation esse aliquip culpa amet. Exercitation tempor adipisicing culpa sit eu est fugiat consequat. Laboris minim nulla nisi labore enim sint consequat pariatur.\r\nPariatur occaecat culpa voluptate exercitation velit esse excepteur. Exercitation eiusmod et enim labore. Sunt sunt qui non ipsum nostrud nostrud veniam dolor velit velit qui. Anim qui reprehenderit ut quis mollit cillum. Eu dolor reprehenderit excepteur do ipsum eu. Proident veniam cillum qui in ex cupidatat duis anim deserunt consectetur Lorem eu. Incididunt consectetur eiusmod mollit dolor cupidatat adipisicing adipisicing est.\r\nVeniam ad ipsum fugiat occaecat laborum est culpa mollit ipsum Lorem. Ut ullamco quis amet adipisicing pariatur fugiat qui labore labore consectetur tempor adipisicing proident. Proident tempor reprehenderit ut ea dolor Lorem nisi. Labore adipisicing commodo ad eu sit nulla cillum. Adipisicing veniam Lorem ex nulla labore ad excepteur aliquip cillum Lorem. Ea incididunt proident ullamco incididunt tempor esse est. Incididunt quis nostrud deserunt irure sit do.\r\n", + "address": "2 Oriental Boulevard", + "city": "Cobbtown", + "state": "Wisconsin", + "zip": 11605, + "country": "Mexico", + "email": "eddielambert@scentric.com", + "phone": "(946) 553-2155", + "color": "rgb(90,142,67)" + }, + { + "index": 302, + "name": "Gracie Fuentes", + "first": "Cecilia", + "last": "Page", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/voldy333/73.jpg", + "boolean": false, + "guid": "55c8f54a-2927-4fc0-b0c6-4f8f5ef1107c", + "integer": 93, + "date": "Wed Aug 26 2009 01:27:46 GMT-0700 (PDT)", + "shortText": "culpa est", + "mediumText": "Aliquip consequat exercitation est sit magna sunt cillum occaecat. Nulla qui aute non eu exercitation.", + "longText": "Amet elit in ullamco aliqua proident dolore quis excepteur tempor ut. Lorem aliqua ipsum labore fugiat voluptate duis anim sunt dolor enim do proident non. Magna aliqua exercitation cupidatat fugiat non deserunt qui laborum cupidatat nisi.\r\nCommodo ullamco incididunt est dolore ad sint culpa sunt dolor enim. Esse consequat consectetur eiusmod dolore Lorem eu aliquip minim id exercitation incididunt. Fugiat aliquip non in commodo ex consectetur eiusmod reprehenderit exercitation aute. Aliqua ut occaecat adipisicing sint duis mollit cillum id sunt pariatur tempor proident aliqua. Culpa exercitation non dolor id laborum labore duis dolore ex duis mollit veniam sit. Ut id est ipsum anim labore do ex tempor anim laboris consequat eu commodo. Cillum do Lorem aliqua Lorem in sunt non ullamco velit aliquip.\r\nUllamco minim quis eu consequat. Et labore irure adipisicing cillum fugiat in in. Pariatur amet in dolore ipsum amet consectetur veniam commodo esse dolore. Nostrud sit aliquip ipsum incididunt enim commodo qui irure. Occaecat nostrud consequat aliquip ex labore excepteur nostrud velit labore et amet nulla dolor. Ea exercitation nulla sint magna aute aute enim labore enim exercitation. Est dolor ipsum mollit aliquip sunt voluptate amet veniam ullamco.\r\nEiusmod ea aute pariatur pariatur et tempor. Veniam eiusmod incididunt ullamco nulla. Esse excepteur culpa veniam sunt. Aliquip duis amet laboris qui est nostrud consequat. Fugiat incididunt laboris aute Lorem ea laboris consequat nostrud mollit duis. Reprehenderit consequat dolore labore nostrud non eiusmod tempor consequat nostrud ipsum adipisicing.\r\nTempor cillum reprehenderit consectetur elit incididunt exercitation. Sint anim eu enim ullamco adipisicing nostrud et sunt sit nulla quis et non quis. Ut eiusmod elit dolor ea commodo reprehenderit non. Sint duis commodo excepteur ad ad laboris exercitation dolore proident quis. Eu laborum exercitation consequat mollit esse. Aute tempor ipsum veniam exercitation labore culpa duis qui.\r\n", + "address": "2 Lloyd Court", + "city": "Roy", + "state": "Washington", + "zip": 84762, + "country": "Sudan", + "email": "ceciliapage@scentric.com", + "phone": "(834) 596-3524", + "color": "rgb(96,136,83)" + }, + { + "index": 303, + "name": "Marion Mcleod", + "first": "Valerie", + "last": "Snow", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jasonmarkjones/73.jpg", + "boolean": false, + "guid": "c9e129b1-7fdd-4a79-82ea-ec24bd138ccb", + "integer": 3, + "date": "Sun Dec 28 2008 07:30:23 GMT-0800 (PST)", + "shortText": "incididunt culpa anim officia", + "mediumText": "Eiusmod laborum aute culpa incididunt reprehenderit quis sunt minim culpa proident non proident ex. Ea mollit pariatur in voluptate Lorem ullamco ea fugiat deserunt laboris magna quis commodo Lorem. Irure sunt commodo proident id adipisicing irure deserunt ad ullamco eiusmod deserunt tempor sint labore. Eiusmod fugiat commodo aliquip excepteur nisi irure deserunt esse.", + "longText": "Est consectetur adipisicing est officia. Fugiat esse dolor qui aliquip aute est eu irure excepteur incididunt. Consectetur qui nulla culpa ea cupidatat labore adipisicing. Consectetur aliquip reprehenderit anim magna nulla Lorem proident consectetur mollit consectetur fugiat et deserunt magna. Incididunt culpa Lorem velit ut fugiat irure dolore enim nulla ut. Commodo elit enim incididunt deserunt incididunt officia.\r\nNostrud sit ipsum non elit proident fugiat aliqua culpa aute nostrud. Occaecat amet duis enim aliquip dolor aute anim nulla duis duis commodo sunt nisi. Amet ex eiusmod commodo veniam aliquip Lorem enim irure elit pariatur esse.\r\nEiusmod et ea aute elit ea ullamco consectetur adipisicing adipisicing sit anim. Cillum ipsum deserunt irure do incididunt tempor aliqua sit tempor sunt sit nisi officia est. Incididunt aliquip amet ex est ea ullamco consequat tempor voluptate ex anim quis officia. Pariatur commodo velit amet deserunt. Aliquip irure ullamco laboris laborum ea duis ea aute elit culpa sit deserunt ad.\r\nDolor veniam Lorem reprehenderit nostrud culpa excepteur pariatur eiusmod tempor. Amet nisi excepteur id laborum minim veniam. Nisi laborum aliqua pariatur laboris qui eiusmod nisi deserunt reprehenderit cillum nulla non reprehenderit.\r\n", + "address": "2 Wyckoff Street", + "city": "Brantleyville", + "state": "Oregon", + "zip": 70507, + "country": "Papua New Guinea", + "email": "valeriesnow@scentric.com", + "phone": "(998) 544-3267", + "color": "rgb(187,108,144)" + }, + { + "index": 304, + "name": "Jimmie Rutledge", + "first": "Robbie", + "last": "Morton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/r_oy/73.jpg", + "boolean": true, + "guid": "d8dded94-1c64-4d63-b175-e22679a649ea", + "integer": 98, + "date": "Wed Aug 22 1990 18:30:41 GMT-0700 (PDT)", + "shortText": "labore fugiat exercitation cupidatat ex", + "mediumText": "Cupidatat aliquip reprehenderit officia eu est fugiat deserunt. Fugiat labore do elit quis et nisi culpa. Exercitation labore laborum ad irure deserunt consequat. Commodo do dolor nulla anim aliqua consectetur cupidatat excepteur non minim commodo.", + "longText": "Qui incididunt reprehenderit veniam eu fugiat aute enim ipsum. Quis aliquip ea commodo proident exercitation tempor duis. Non commodo in duis id cillum excepteur eu elit. Deserunt Lorem proident in laboris quis ea et. Cupidatat irure veniam sit incididunt. Dolor ut dolor labore ullamco enim. Qui deserunt ullamco ex aute elit nulla officia sit exercitation.\r\nDo commodo officia esse sint. Aliqua est reprehenderit anim fugiat sunt esse tempor dolor officia dolore veniam ex mollit. Ad ea culpa laboris ea anim commodo. Incididunt sunt reprehenderit non laboris aute magna laborum aute labore aliqua. Esse nulla nostrud id occaecat pariatur laborum ut voluptate. Ex cillum officia cupidatat duis ex Lorem laboris fugiat aliquip in est et incididunt. Veniam laboris commodo nostrud consequat sunt dolore.\r\n", + "address": "3 Hornell Loop", + "city": "Aguila", + "state": "Illinois", + "zip": 50667, + "country": "Romania", + "email": "robbiemorton@scentric.com", + "phone": "(980) 409-3469", + "color": "rgb(235,114,85)" + }, + { + "index": 305, + "name": "Sweet Humphrey", + "first": "Duke", + "last": "Vargas", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/boericke/73.jpg", + "boolean": true, + "guid": "e9257b10-4071-40be-a831-77dc11b731e5", + "integer": 25, + "date": "Sun Oct 19 2008 14:12:07 GMT-0700 (PDT)", + "shortText": "duis deserunt ex ad", + "mediumText": "Anim duis quis amet laboris id adipisicing magna. Lorem ullamco magna consequat adipisicing dolor magna.", + "longText": "Velit mollit pariatur fugiat cupidatat veniam est. Laborum non reprehenderit qui in labore nisi. Reprehenderit officia est culpa fugiat dolore non sint consequat duis velit enim do laboris. Cillum reprehenderit consectetur minim nisi consectetur sint culpa pariatur reprehenderit incididunt.\r\nDolore cillum sit enim pariatur sunt duis deserunt nostrud occaecat sit. Aliqua do ut cillum aliquip adipisicing qui. Pariatur culpa velit dolor ut aliqua elit sunt non anim magna deserunt et anim. Irure non aute velit cupidatat labore esse non duis sit qui amet officia voluptate. Deserunt et proident amet anim duis consectetur commodo mollit. Commodo voluptate deserunt eiusmod sit.\r\n", + "address": "4 Carroll Street", + "city": "Sehili", + "state": "West Virginia", + "zip": 80913, + "country": "Bangladesh", + "email": "dukevargas@scentric.com", + "phone": "(978) 506-3898", + "color": "rgb(226,72,213)" + }, + { + "index": 306, + "name": "Rivas Mcmillan", + "first": "Kelley", + "last": "Gamble", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/phanalpha/73.jpg", + "boolean": false, + "guid": "bd339242-0db1-4838-9a8f-198fefcd1392", + "integer": 97, + "date": "Thu Mar 09 1972 11:02:38 GMT-0800 (PST)", + "shortText": "reprehenderit exercitation consectetur officia", + "mediumText": "Id culpa aliqua ullamco ad. Dolor eu cillum minim officia quis occaecat. Labore nulla ea dolore aliquip exercitation enim. Non ipsum dolore Lorem esse incididunt tempor culpa nulla.", + "longText": "Id do duis dolore cupidatat culpa aliquip Lorem cupidatat mollit proident minim sint duis. Reprehenderit dolor incididunt cillum elit esse irure aliquip fugiat ex officia ad cupidatat velit. Ex ea aliquip ea labore id non occaecat mollit nostrud consequat irure cillum minim. Officia quis nostrud dolore quis nostrud esse laborum id magna nulla qui id commodo. Nisi mollit elit elit velit minim cillum sit eiusmod fugiat eiusmod et cillum eiusmod pariatur.\r\nNulla pariatur enim mollit sunt ad excepteur exercitation minim culpa adipisicing. Anim qui adipisicing pariatur aliquip. Proident cupidatat veniam in et est magna labore reprehenderit in. Qui Lorem reprehenderit in in.\r\n", + "address": "4 Fleet Street", + "city": "Nile", + "state": "Mississippi", + "zip": 85536, + "country": "Monaco", + "email": "kelleygamble@scentric.com", + "phone": "(880) 406-2442", + "color": "rgb(60,94,167)" + }, + { + "index": 307, + "name": "Arline Cantrell", + "first": "Maldonado", + "last": "Kaufman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/miguellagran/73.jpg", + "boolean": false, + "guid": "8b28f57b-1d99-4094-a3a5-8ca8bdc0ebac", + "integer": 83, + "date": "Mon Jan 21 1974 10:44:50 GMT-0700 (PDT)", + "shortText": "cillum mollit irure id cillum", + "mediumText": "Duis aliqua fugiat deserunt ad veniam veniam esse fugiat commodo tempor. Non consectetur commodo eu dolore eu veniam. Mollit ullamco ut minim mollit. Qui enim aliqua nisi officia. Ipsum dolore ut adipisicing ea aliqua et ea incididunt consectetur laborum dolore qui fugiat ut.", + "longText": "Excepteur adipisicing cupidatat et aliquip commodo voluptate aute pariatur culpa occaecat reprehenderit nostrud. Reprehenderit occaecat eiusmod ut elit magna occaecat. Et aute duis consectetur dolor ut consequat ad.\r\nProident ad cillum sit ullamco. Labore eu laborum enim adipisicing nisi sunt ipsum in non excepteur quis officia in. Anim anim eu consectetur est sint et quis. Amet amet cupidatat reprehenderit aliquip. Elit voluptate ad anim dolore anim tempor nostrud tempor.\r\n", + "address": "4 Hinckley Place", + "city": "Swartzville", + "state": "Rhode Island", + "zip": 72582, + "country": "Martinique", + "email": "maldonadokaufman@scentric.com", + "phone": "(902) 553-3658", + "color": "rgb(87,176,75)" + }, + { + "index": 308, + "name": "Ortega Terry", + "first": "Muriel", + "last": "Pickett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dustinlamont/73.jpg", + "boolean": true, + "guid": "46a75489-56ac-4c3a-88c3-1bc1b2260321", + "integer": 79, + "date": "Thu Dec 20 2012 17:16:17 GMT-0800 (PST)", + "shortText": "quis laborum", + "mediumText": "Eu eu occaecat esse ad aliquip occaecat tempor dolor veniam sint ut mollit.", + "longText": "Elit labore ex culpa ad consectetur mollit. Dolore velit nostrud consectetur officia pariatur dolore do laboris deserunt cillum id consequat occaecat aliqua. Mollit est sit aute cillum tempor laborum officia. Eiusmod in aliquip est consequat excepteur sunt voluptate do deserunt ea. Tempor non laborum aliqua ad sit culpa consequat laborum.\r\nAmet tempor ipsum et laborum adipisicing non nulla ad. Nostrud in ex incididunt minim et ullamco velit. Voluptate aliquip est culpa exercitation fugiat proident ex elit enim aute excepteur in dolore duis. Cillum consectetur fugiat eiusmod consequat cupidatat commodo aliqua consectetur excepteur mollit voluptate sint. Deserunt ad dolor elit reprehenderit deserunt esse nisi in deserunt est eiusmod exercitation fugiat.\r\n", + "address": "4 Alice Court", + "city": "Whitewater", + "state": "Georgia", + "zip": 58312, + "country": "Kuwait", + "email": "murielpickett@scentric.com", + "phone": "(848) 468-2790", + "color": "rgb(99,60,211)" + }, + { + "index": 309, + "name": "Rosie Beasley", + "first": "Cora", + "last": "Vaughan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrzero158/73.jpg", + "boolean": true, + "guid": "94799d19-471d-4d23-9c9f-44ee2cb25c6f", + "integer": 96, + "date": "Tue Nov 09 1982 16:08:56 GMT-0800 (PST)", + "shortText": "do ea aute", + "mediumText": "Ex aliquip duis quis dolore adipisicing mollit excepteur aliquip consectetur id. Adipisicing eu ipsum cupidatat ullamco voluptate. Duis occaecat occaecat mollit incididunt cillum ipsum id tempor. Officia ex eiusmod pariatur dolore fugiat aute ad. Sit ad non ipsum nulla.", + "longText": "Officia officia ad non commodo anim. Anim ad non ut excepteur voluptate amet consequat Lorem sunt ad. Deserunt enim ad nisi in amet anim anim culpa et officia aute reprehenderit sint eiusmod. Anim laborum occaecat culpa aute ipsum do. Officia irure sit nostrud nulla laborum reprehenderit laboris est ex culpa. Cillum exercitation aute Lorem enim amet commodo amet anim sunt mollit pariatur in consequat.\r\nCupidatat occaecat ex ex pariatur dolore fugiat incididunt velit qui reprehenderit. Ullamco enim nisi deserunt laborum aute. Aliquip duis do enim adipisicing cupidatat. Consequat aute sint non laborum quis laboris reprehenderit aliqua non culpa. Enim est amet nostrud ullamco minim duis eu labore ut magna excepteur.\r\nAmet sint pariatur ad nostrud irure qui do eiusmod irure id ea. Veniam cillum minim excepteur ut quis tempor et officia consequat ut in. Laboris exercitation ad proident esse in tempor exercitation aliqua veniam aute minim.\r\nConsectetur fugiat duis adipisicing dolore et exercitation reprehenderit. Eu nostrud qui veniam non. Voluptate quis nisi reprehenderit non adipisicing amet ipsum irure velit labore nostrud reprehenderit.\r\n", + "address": "3 Canton Court", + "city": "Glendale", + "state": "New Mexico", + "zip": 99043, + "country": "Ukraine", + "email": "coravaughan@scentric.com", + "phone": "(961) 557-2273", + "color": "rgb(111,160,125)" + }, + { + "index": 310, + "name": "Olivia Becker", + "first": "Wyatt", + "last": "Mcneil", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/donaldjohns/73.jpg", + "boolean": true, + "guid": "4c1be78a-e176-445f-93d3-f818ae0d96b0", + "integer": 31, + "date": "Thu Sep 18 1980 04:25:22 GMT-0700 (PDT)", + "shortText": "excepteur labore sint in", + "mediumText": "Sint consectetur anim tempor ea pariatur cillum sit do in exercitation. Aliqua nisi esse laborum voluptate consectetur et amet magna consequat irure anim. Adipisicing veniam veniam id veniam laboris Lorem cupidatat quis pariatur voluptate.", + "longText": "Non et officia eu do eu deserunt tempor dolore velit commodo cillum sint. Consectetur aliqua sunt pariatur sint. Quis esse aliqua elit labore sunt velit officia consequat anim consequat quis mollit id reprehenderit.\r\n", + "address": "2 Menahan Street", + "city": "Lorraine", + "state": "Arizona", + "zip": 11066, + "country": "Guatemala", + "email": "wyattmcneil@scentric.com", + "phone": "(888) 600-2767", + "color": "rgb(65,51,174)" + }, + { + "index": 311, + "name": "Aguirre Mendez", + "first": "Dona", + "last": "Kane", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ah_lice/73.jpg", + "boolean": true, + "guid": "5c63b545-e732-43bc-af3f-32e0c68ad484", + "integer": 76, + "date": "Wed Oct 10 2007 23:01:28 GMT-0700 (PDT)", + "shortText": "voluptate eu cillum anim", + "mediumText": "Culpa voluptate laborum pariatur consectetur sit esse ullamco cupidatat elit adipisicing qui culpa ex. Ut ad tempor ipsum ut quis ipsum. Non officia enim do tempor ad do excepteur velit sit duis mollit aliquip. Dolore aliqua eiusmod commodo nostrud amet cillum dolore.", + "longText": "Ullamco laborum esse mollit aliqua aute deserunt Lorem. Officia eiusmod fugiat exercitation esse consequat commodo veniam. Cupidatat amet non cillum mollit do ut excepteur reprehenderit consectetur eiusmod ut exercitation sit. Sint id irure ullamco quis anim labore. Culpa duis aliquip qui elit ex laborum.\r\nAdipisicing et est culpa deserunt irure. Ullamco ut sit do fugiat. Enim nulla laborum ea anim Lorem eiusmod incididunt eiusmod velit enim incididunt id sit. Consectetur magna ut minim ipsum est commodo cillum cupidatat excepteur. Nostrud minim veniam veniam laborum anim. Nulla consectetur ea nostrud et culpa dolor est.\r\n", + "address": "2 Losee Terrace", + "city": "Fedora", + "state": "Texas", + "zip": 18483, + "country": "Argentina", + "email": "donakane@scentric.com", + "phone": "(876) 594-2112", + "color": "rgb(134,128,159)" + }, + { + "index": 312, + "name": "Holden Shaffer", + "first": "Dana", + "last": "Raymond", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/enda/73.jpg", + "boolean": true, + "guid": "2f0136bc-47e0-4206-b4f4-d87b45b44a4a", + "integer": 94, + "date": "Thu Jul 04 2002 17:43:16 GMT-0700 (PDT)", + "shortText": "quis ex cillum enim", + "mediumText": "Sit incididunt reprehenderit velit elit laborum sint est nulla. Ipsum dolore sit laborum eu occaecat dolor reprehenderit adipisicing nisi. Et aliquip officia fugiat consequat aliquip exercitation.", + "longText": "Deserunt veniam veniam fugiat eu proident aute aute cupidatat pariatur qui non nostrud qui nulla. Consequat quis enim consequat ea minim ex est duis commodo qui exercitation. Ex et mollit ea adipisicing aliqua occaecat nostrud elit minim sint esse. Magna deserunt nulla voluptate aute. Duis ullamco tempor voluptate adipisicing eu veniam ad quis quis enim. Ea adipisicing veniam eu nostrud amet laborum.\r\n", + "address": "2 Lawton Street", + "city": "Durham", + "state": "District Of Columbia", + "zip": 20487, + "country": "Mauritius", + "email": "danaraymond@scentric.com", + "phone": "(836) 540-2790", + "color": "rgb(187,110,242)" + }, + { + "index": 313, + "name": "Cherie Lynn", + "first": "Johnston", + "last": "Head", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guillogo/73.jpg", + "boolean": true, + "guid": "72ab6b5a-bd21-4563-b6b0-ab24cff5caed", + "integer": 80, + "date": "Fri May 10 1974 03:24:27 GMT-0700 (PDT)", + "shortText": "ad enim", + "mediumText": "Ut adipisicing excepteur ex Lorem cupidatat esse ipsum deserunt nisi irure in ut. Quis reprehenderit sunt non amet consectetur Lorem ut sit. Culpa ex laboris pariatur nisi quis qui. Amet in aliquip occaecat quis eiusmod nostrud occaecat consequat consequat.", + "longText": "Adipisicing esse occaecat sint quis nostrud. Sint incididunt elit mollit excepteur dolore. Lorem tempor excepteur occaecat cupidatat voluptate sit officia exercitation laborum. Cupidatat id reprehenderit deserunt minim.\r\n", + "address": "4 Surf Avenue", + "city": "Cleary", + "state": "Virgin Islands", + "zip": 76947, + "country": "St. Helena", + "email": "johnstonhead@scentric.com", + "phone": "(925) 538-2973", + "color": "rgb(59,239,155)" + }, + { + "index": 314, + "name": "Alvarez Byrd", + "first": "Cristina", + "last": "Bullock", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iboldurev/73.jpg", + "boolean": true, + "guid": "11934487-0dbb-4d2a-bf49-4f9e5938f248", + "integer": 88, + "date": "Fri Mar 12 1993 09:02:34 GMT-0800 (PST)", + "shortText": "veniam ad ullamco", + "mediumText": "Quis labore cillum magna incididunt. Nisi enim magna et tempor voluptate amet aute proident.", + "longText": "Laborum proident non sint cupidatat pariatur occaecat adipisicing voluptate aliquip. Mollit elit ut voluptate eu labore Lorem. Ullamco aliquip commodo do duis labore do aliquip in aliquip reprehenderit occaecat exercitation. Duis cillum voluptate ipsum minim sit commodo occaecat ex ipsum ex. Anim et Lorem ex elit fugiat.\r\n", + "address": "3 Ross Street", + "city": "Dola", + "state": "Puerto Rico", + "zip": 69951, + "country": "Suriname", + "email": "cristinabullock@scentric.com", + "phone": "(847) 528-3630", + "color": "rgb(146,84,109)" + }, + { + "index": 315, + "name": "Gonzalez Freeman", + "first": "Sampson", + "last": "Smith", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/smalonso/73.jpg", + "boolean": true, + "guid": "62c47315-656a-41e7-b9b4-7ee380ad77e8", + "integer": 58, + "date": "Sat Feb 15 2003 14:30:07 GMT-0800 (PST)", + "shortText": "sint", + "mediumText": "Excepteur tempor magna eiusmod pariatur anim consequat mollit excepteur nulla duis ut eu esse pariatur. Deserunt cillum amet incididunt nisi ut laboris quis enim labore. Eiusmod cupidatat qui officia ex dolor sint occaecat elit fugiat ex.", + "longText": "Do consequat voluptate duis aliqua Lorem cillum labore. Reprehenderit commodo esse anim aliqua exercitation qui. Elit nostrud officia esse aliquip in eiusmod ipsum duis ullamco. Elit deserunt magna voluptate mollit. Quis dolore esse reprehenderit sunt dolore nulla sunt duis fugiat.\r\n", + "address": "4 Hutchinson Court", + "city": "Utting", + "state": "Maryland", + "zip": 69064, + "country": "Greece", + "email": "sampsonsmith@scentric.com", + "phone": "(829) 445-2244", + "color": "rgb(246,63,201)" + }, + { + "index": 316, + "name": "Wheeler Zamora", + "first": "Bush", + "last": "Dickerson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taherrapee/73.jpg", + "boolean": true, + "guid": "a91485a2-e0b1-4e16-afa8-afb990283828", + "integer": 25, + "date": "Mon Jun 05 2006 06:35:22 GMT-0700 (PDT)", + "shortText": "sit pariatur", + "mediumText": "Officia minim occaecat nostrud dolor eiusmod. Reprehenderit aliquip esse sint qui deserunt do nostrud proident id est quis minim. Consectetur ad ut tempor anim elit dolore reprehenderit consectetur do culpa minim.", + "longText": "Exercitation officia est aute sunt nisi. Et officia irure eu deserunt enim est nulla. Commodo commodo consequat dolor eiusmod dolor. Aliqua qui consequat cillum velit et minim consectetur duis et culpa velit nostrud laborum. Labore id cillum nulla excepteur voluptate eu velit pariatur anim nulla. Ut qui tempor officia dolore anim enim veniam tempor ex exercitation eiusmod commodo ex ut. Non aute veniam sunt esse culpa non aliqua quis elit culpa elit.\r\nCommodo ut cillum quis laboris aliquip in. Mollit nisi amet cillum nisi laboris est officia. Non laborum fugiat ea non nisi. Et velit incididunt enim magna. Aute anim aute occaecat consequat ipsum Lorem et laboris esse aliquip proident pariatur. Consectetur non consectetur labore laboris ea est.\r\nAdipisicing laborum officia esse reprehenderit nostrud Lorem cillum magna. Labore ad ullamco pariatur irure. Sit ea aliquip ad Lorem ut consequat quis. Eiusmod consequat anim dolor in aliquip est laborum adipisicing incididunt excepteur excepteur laborum duis qui. Sunt consequat voluptate sunt cupidatat nostrud nisi. Ullamco reprehenderit anim est laboris et nulla.\r\nAmet ut dolor nostrud voluptate laboris nisi reprehenderit culpa ea velit mollit nulla. Esse qui sint anim ut incididunt. Nisi mollit ut nisi laborum ut deserunt magna dolor eiusmod. Elit enim sit reprehenderit cupidatat et. Aliqua dolore id fugiat occaecat occaecat ipsum.\r\nEsse fugiat amet quis adipisicing tempor deserunt tempor exercitation excepteur dolore incididunt ex. Laborum adipisicing dolore enim veniam non ut consectetur Lorem ut cupidatat duis id. Incididunt laboris cupidatat adipisicing deserunt fugiat veniam tempor. Fugiat officia eu ullamco magna sunt fugiat consectetur. Occaecat irure proident do officia. Laborum nulla quis non incididunt velit.\r\n", + "address": "4 Campus Road", + "city": "Bethpage", + "state": "Massachusetts", + "zip": 23000, + "country": "New Caledonia", + "email": "bushdickerson@scentric.com", + "phone": "(914) 557-2160", + "color": "rgb(106,245,89)" + }, + { + "index": 317, + "name": "Nadine Heath", + "first": "Dee", + "last": "Burnett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ismailmayat/73.jpg", + "boolean": false, + "guid": "315f838f-f59d-4c6c-bae4-f431576cf508", + "integer": 59, + "date": "Wed Aug 06 1980 08:47:43 GMT-0700 (PDT)", + "shortText": "nostrud labore culpa sint occaecat", + "mediumText": "Dolore irure officia consequat commodo exercitation non et consectetur minim fugiat.", + "longText": "Velit ipsum enim laboris cillum qui quis deserunt laborum. Nostrud voluptate commodo nisi ipsum adipisicing aliqua laborum culpa excepteur minim ex sint. Non minim voluptate pariatur consectetur. Dolor minim aute sint anim exercitation id laborum laborum.\r\nExercitation est ullamco culpa ut cillum commodo minim ipsum qui cupidatat et cillum mollit. Incididunt anim esse veniam veniam. Nulla ullamco ea eu proident laboris voluptate laboris ad in excepteur excepteur qui. Incididunt aute nisi irure quis commodo aute. Elit nisi labore qui sunt est velit anim cupidatat nostrud.\r\nCulpa anim consequat occaecat sunt. Velit commodo deserunt duis proident exercitation ullamco esse fugiat. Ullamco velit elit pariatur ut qui ex. Tempor voluptate labore consectetur id elit. Deserunt occaecat occaecat aliqua ad laborum irure mollit officia fugiat aliqua aliqua irure do. Sit id duis occaecat cupidatat ullamco nulla. Sit laborum eu tempor magna laborum mollit aliquip proident aute anim magna.\r\n", + "address": "4 Bay Parkway", + "city": "Gila", + "state": "Oklahoma", + "zip": 89518, + "country": "Syria", + "email": "deeburnett@scentric.com", + "phone": "(995) 481-3920", + "color": "rgb(158,55,147)" + }, + { + "index": 318, + "name": "Cash Baker", + "first": "Tanya", + "last": "Patton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/carlyson/73.jpg", + "boolean": true, + "guid": "4f3b7c6f-78ec-4074-b24d-b1e0788829a9", + "integer": 17, + "date": "Mon Jun 19 1972 16:40:48 GMT-0700 (PDT)", + "shortText": "proident duis eiusmod pariatur", + "mediumText": "Ullamco qui dolore fugiat id ad non.", + "longText": "Sint irure officia do magna eu deserunt non laborum ut qui incididunt est irure voluptate. Amet eiusmod eiusmod ut occaecat reprehenderit sunt irure do aute reprehenderit pariatur laborum consectetur. Proident quis ex reprehenderit aliquip non ullamco ullamco sunt commodo. Nostrud proident adipisicing laborum voluptate sit cillum ad magna id adipisicing cillum fugiat. Anim sit do quis cupidatat reprehenderit tempor pariatur deserunt. Tempor culpa reprehenderit adipisicing ea.\r\n", + "address": "2 Garnet Street", + "city": "Crawfordsville", + "state": "Ohio", + "zip": 65388, + "country": "Rwanda", + "email": "tanyapatton@scentric.com", + "phone": "(912) 427-3358", + "color": "rgb(122,127,173)" + }, + { + "index": 319, + "name": "Sears Conley", + "first": "Boyle", + "last": "Schmidt", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thewillbeard/73.jpg", + "boolean": true, + "guid": "17ce3452-2b9d-4fe3-b1db-7009a74b7e32", + "integer": 69, + "date": "Sat May 18 1996 00:26:16 GMT-0700 (PDT)", + "shortText": "amet consequat", + "mediumText": "Nulla non deserunt elit nostrud dolore elit Lorem sit qui aliqua aute aliquip elit. Mollit aliqua enim velit ea consectetur dolor duis minim ea. Ipsum aute ut labore duis labore nostrud labore. Aliqua proident cillum id cupidatat elit anim nostrud culpa aliquip enim irure nisi qui. Magna sint exercitation ullamco commodo labore sunt ipsum anim nostrud voluptate non et reprehenderit.", + "longText": "Labore irure est cillum sit exercitation nisi ex exercitation ea pariatur ipsum consectetur. Nisi ad qui eiusmod nulla deserunt eiusmod dolor officia magna labore deserunt aliqua. Consequat labore proident cupidatat qui fugiat magna voluptate esse ex nisi officia enim. Ipsum nisi fugiat in proident magna deserunt magna incididunt sint cupidatat Lorem. Sunt veniam consectetur ut ea. Nulla exercitation do deserunt consequat elit aliqua excepteur aliquip laborum mollit ex non. Commodo fugiat occaecat sint tempor dolore ut ex proident amet mollit fugiat.\r\nVeniam ex consequat consectetur incididunt. Qui enim eu incididunt anim. Reprehenderit eiusmod labore consequat pariatur adipisicing esse incididunt quis velit. Pariatur elit amet deserunt eu exercitation cupidatat aute eiusmod anim sit anim est. Adipisicing ea cupidatat sunt labore id amet magna anim pariatur cupidatat. Sint ex sunt nulla elit ut aute laboris deserunt cillum. Consectetur sunt aliqua minim eu commodo nulla tempor anim non cillum quis culpa occaecat.\r\nFugiat veniam qui ut sunt Lorem. Sint elit do deserunt laborum. Voluptate pariatur sit eiusmod labore elit aliqua sunt eu labore id sunt. Officia id non minim cillum. Laboris reprehenderit elit commodo esse exercitation minim aute aliqua esse. Dolor Lorem fugiat non reprehenderit occaecat dolore magna.\r\nMollit velit dolore mollit non consequat ullamco do incididunt nisi. Dolore ex eiusmod ex anim consequat deserunt qui. Culpa laborum laboris adipisicing pariatur duis elit sint consectetur duis. Ut ea consectetur dolore ullamco amet est irure Lorem. Aliqua do reprehenderit id incididunt amet fugiat id amet. Exercitation duis sit pariatur fugiat elit dolore do aliqua culpa anim adipisicing velit aliquip consectetur.\r\nElit ex excepteur do aute enim incididunt. Est eu aute occaecat quis dolor eiusmod quis ut quis fugiat enim id. Duis incididunt esse pariatur voluptate. Velit dolore ut aliqua culpa officia quis esse.\r\n", + "address": "3 Llama Court", + "city": "Murillo", + "state": "Nevada", + "zip": 82006, + "country": "Puerto Rico", + "email": "boyleschmidt@scentric.com", + "phone": "(938) 529-3967", + "color": "rgb(238,104,187)" + }, + { + "index": 320, + "name": "Regina Duke", + "first": "Pacheco", + "last": "Finch", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tgormtx/73.jpg", + "boolean": true, + "guid": "1cd2ce04-b8d2-4d31-8130-6c88fda8666e", + "integer": 28, + "date": "Sun Sep 22 1974 11:52:41 GMT-0700 (PDT)", + "shortText": "deserunt proident voluptate anim", + "mediumText": "Tempor eiusmod culpa incididunt esse mollit elit anim Lorem magna et occaecat. Quis exercitation aute laboris adipisicing excepteur non consectetur. Eu sunt esse velit sint ad voluptate cillum est. Et adipisicing sunt incididunt incididunt tempor nostrud aute eu occaecat ea.", + "longText": "Qui exercitation commodo sunt nostrud dolor elit labore in laboris. Minim cillum Lorem enim sunt nostrud culpa sint reprehenderit. Cillum reprehenderit occaecat non eu ea veniam aliquip occaecat quis et in eiusmod enim Lorem. Aliquip duis cupidatat aliqua aliquip commodo qui aliqua excepteur ipsum. Lorem labore tempor nisi ut deserunt. Excepteur est sint nulla dolor officia ex ex est in duis magna consectetur. Occaecat anim irure pariatur sit fugiat.\r\nFugiat nulla mollit quis ex deserunt non id anim proident. Officia sint fugiat eiusmod qui fugiat consequat ut magna Lorem. Officia cillum ipsum reprehenderit laboris proident et minim consectetur laboris cupidatat do ea aliqua deserunt. Ullamco tempor elit velit sunt qui in et amet irure aliqua eiusmod reprehenderit. Quis mollit consectetur veniam est ad esse quis nostrud esse magna id minim qui eu. Occaecat elit ullamco in aliqua aute sint. Incididunt qui esse ad voluptate nisi.\r\n", + "address": "2 Fillmore Avenue", + "city": "Riverton", + "state": "Montana", + "zip": 10495, + "country": "Korea (North)", + "email": "pachecofinch@scentric.com", + "phone": "(935) 574-3165", + "color": "rgb(231,59,64)" + }, + { + "index": 321, + "name": "Watts Forbes", + "first": "Crystal", + "last": "Holman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/73.jpg", + "boolean": true, + "guid": "78f69b15-a996-41aa-be22-2350d747a215", + "integer": 37, + "date": "Sat Oct 27 2001 01:47:57 GMT-0700 (PDT)", + "shortText": "duis", + "mediumText": "Sit sint ut incididunt esse irure do tempor esse est velit aliqua consectetur consectetur fugiat.", + "longText": "Dolore sunt mollit nisi adipisicing esse laboris. Cillum quis mollit voluptate consequat qui cillum sunt incididunt voluptate velit ea. Enim id ut duis minim pariatur. Nulla esse aliqua exercitation aute enim elit proident et ipsum et tempor eiusmod do esse.\r\nAnim id nisi ex occaecat eu ipsum nulla non pariatur sunt ut esse duis do. Exercitation est anim sit eiusmod qui pariatur dolore. Fugiat eu mollit consectetur occaecat duis exercitation deserunt aliqua cupidatat nostrud. Deserunt cillum duis officia nostrud non tempor cillum mollit enim sit. Ad commodo nostrud adipisicing mollit culpa non dolore. Amet pariatur sunt officia irure enim minim ea. Nulla qui id laborum velit cillum incididunt cupidatat duis exercitation tempor tempor sit.\r\n", + "address": "2 Beekman Place", + "city": "Advance", + "state": "California", + "zip": 50813, + "country": "Bosnia and Herzegovina", + "email": "crystalholman@scentric.com", + "phone": "(886) 454-2038", + "color": "rgb(212,198,57)" + }, + { + "index": 322, + "name": "Janelle Leblanc", + "first": "Velma", + "last": "Stone", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mwarkentin/73.jpg", + "boolean": true, + "guid": "84151da3-43cb-4cb5-ac3f-dce5eac66594", + "integer": 10, + "date": "Wed Mar 15 1995 04:06:56 GMT-0800 (PST)", + "shortText": "sit duis", + "mediumText": "Sint incididunt in ex officia cupidatat consectetur fugiat eiusmod labore.", + "longText": "Ullamco non sunt duis duis commodo ipsum ipsum nulla eiusmod irure adipisicing eu tempor. Elit labore magna incididunt est. Officia id incididunt minim pariatur officia consequat sunt. Non ut voluptate proident ipsum. Irure nulla cillum aute exercitation. Aliqua sit eu occaecat minim.\r\nAd excepteur qui est culpa. Mollit in adipisicing duis deserunt minim Lorem tempor nisi tempor enim. Nulla ex aliqua nostrud id. Adipisicing officia nulla amet aliqua non ipsum eiusmod elit ad pariatur labore eiusmod consectetur. Duis sint et aliqua commodo dolor veniam in eiusmod occaecat consectetur.\r\nConsectetur ea voluptate ullamco tempor nisi in. Lorem anim mollit fugiat tempor. Consectetur adipisicing deserunt consequat exercitation reprehenderit exercitation cillum ad anim do. Commodo occaecat ad do et laborum veniam aliqua cupidatat. Et velit ullamco cupidatat nostrud exercitation aute sint ea adipisicing culpa aliquip. Aliquip consectetur dolor ut adipisicing laborum id est magna pariatur amet.\r\n", + "address": "2 Albemarle Terrace", + "city": "Knowlton", + "state": "Marshall Islands", + "zip": 80538, + "country": "France", + "email": "velmastone@scentric.com", + "phone": "(910) 600-2666", + "color": "rgb(84,227,83)" + }, + { + "index": 323, + "name": "Holman Atkinson", + "first": "Myra", + "last": "Ellison", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/herkulano/73.jpg", + "boolean": false, + "guid": "51f45fc6-fc94-4be1-8769-ac78341d3d69", + "integer": 13, + "date": "Mon Jan 24 2011 03:20:14 GMT-0800 (PST)", + "shortText": "labore sit eiusmod sit", + "mediumText": "Qui ipsum tempor occaecat ullamco Lorem officia voluptate. Consequat cillum ea sunt cupidatat est quis quis pariatur.", + "longText": "Eiusmod fugiat ullamco sunt ea sint eiusmod aute excepteur eiusmod ullamco non nostrud aliqua. Pariatur pariatur aute aliqua nisi nisi amet. Non officia ipsum eu do veniam excepteur ea sit sint consequat. Do sint minim culpa enim ullamco excepteur officia mollit Lorem id commodo culpa est. Laborum ex anim Lorem et. Cupidatat mollit esse do adipisicing.\r\nEu velit ipsum officia ex. Deserunt esse et tempor magna duis ex ut sunt dolore do. Elit labore excepteur aliqua culpa cillum deserunt nulla veniam veniam commodo do mollit.\r\n", + "address": "3 Nova Court", + "city": "Hoehne", + "state": "Indiana", + "zip": 44523, + "country": "Guinea", + "email": "myraellison@scentric.com", + "phone": "(892) 546-2971", + "color": "rgb(252,153,180)" + }, + { + "index": 324, + "name": "Carson Glover", + "first": "Annabelle", + "last": "Reid", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jonny_moon/73.jpg", + "boolean": false, + "guid": "560ce64c-d4a7-43a1-a119-c815a7d0eddc", + "integer": 43, + "date": "Sun Oct 21 1979 10:07:45 GMT-0700 (PDT)", + "shortText": "qui reprehenderit", + "mediumText": "Ullamco incididunt minim ullamco id exercitation.", + "longText": "In veniam fugiat laboris incididunt excepteur ad proident. Consequat nisi mollit nostrud excepteur sunt laboris mollit voluptate exercitation exercitation tempor velit dolore. Sunt amet aute pariatur tempor adipisicing Lorem consequat pariatur exercitation sit cupidatat Lorem duis culpa. Aute velit exercitation occaecat cillum incididunt fugiat ipsum ut labore tempor mollit velit ad adipisicing. Tempor nisi elit est culpa tempor eiusmod velit enim occaecat tempor excepteur ut veniam. Culpa eiusmod nisi officia quis nulla ipsum laboris magna elit esse exercitation nostrud occaecat amet. Esse anim culpa est esse elit ad velit ad eu do exercitation occaecat adipisicing.\r\nIn duis enim Lorem id ullamco cillum veniam. Nulla sint laboris sint non ad mollit incididunt tempor ea voluptate sint eiusmod. Mollit nisi labore est labore anim laboris irure qui Lorem nulla veniam velit et non. Do occaecat excepteur aliqua in ea pariatur elit incididunt.\r\nDolore eiusmod commodo do commodo sit incididunt deserunt ullamco fugiat eiusmod consectetur ipsum. Fugiat eiusmod consectetur elit aliquip tempor labore cillum. Duis ullamco qui sit consectetur nulla qui amet Lorem occaecat esse tempor eiusmod aute.\r\n", + "address": "4 Lexington Avenue", + "city": "Canoochee", + "state": "Tennessee", + "zip": 16359, + "country": "Senegal", + "email": "annabellereid@scentric.com", + "phone": "(833) 494-3476", + "color": "rgb(56,217,233)" + }, + { + "index": 325, + "name": "Gibbs Good", + "first": "Hendrix", + "last": "Lyons", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alyssalowww/73.jpg", + "boolean": false, + "guid": "2a5302bc-b0dd-4ccc-8688-7df77439ace5", + "integer": 21, + "date": "Thu Jan 01 1976 12:47:48 GMT-0800 (PST)", + "shortText": "aliqua tempor", + "mediumText": "Commodo pariatur enim velit ut reprehenderit in culpa. Culpa nulla ipsum velit est occaecat elit et laborum reprehenderit eu minim do.", + "longText": "Qui quis do nulla sit velit non elit duis exercitation do laboris cillum sit. Eiusmod reprehenderit sit aliqua qui dolor sunt qui commodo. Tempor aute Lorem labore aliqua ea minim duis irure sint non veniam. Ad ex aute reprehenderit nulla aliqua nostrud ullamco Lorem esse aliquip do qui velit. Nostrud elit esse ad duis occaecat culpa. Aliqua officia quis mollit ipsum velit cupidatat sit quis quis ea veniam sit aute ullamco. Laboris et ad cillum veniam nulla fugiat.\r\nFugiat in incididunt minim consequat sit pariatur occaecat reprehenderit aliquip incididunt ullamco eu. Nostrud qui nostrud laboris magna. Aute ullamco veniam consequat nulla aute nulla culpa. Fugiat id mollit ullamco eu enim velit reprehenderit sunt ut est elit fugiat sint veniam. Reprehenderit amet ea anim veniam consectetur proident commodo. Aliquip Lorem amet occaecat cupidatat dolor officia quis pariatur. Sit ea exercitation minim deserunt elit sit excepteur id reprehenderit.\r\nIpsum in tempor culpa esse fugiat mollit esse. Incididunt consequat dolor duis aute cillum ut veniam commodo do fugiat eu culpa fugiat. Enim pariatur reprehenderit elit ex proident aute aliqua. Elit do veniam fugiat in qui quis ullamco esse exercitation tempor non commodo nulla anim. Non Lorem sunt cupidatat aliquip dolor labore laboris Lorem fugiat. Do velit et ipsum pariatur duis sit id consectetur officia occaecat culpa reprehenderit. Nulla est in commodo nostrud ea deserunt duis culpa.\r\n", + "address": "4 Cranberry Street", + "city": "Belgreen", + "state": "Palau", + "zip": 13045, + "country": "Yugoslavia", + "email": "hendrixlyons@scentric.com", + "phone": "(884) 521-3084", + "color": "rgb(234,55,208)" + }, + { + "index": 326, + "name": "Reba Horton", + "first": "Ochoa", + "last": "Reed", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rafelorden/73.jpg", + "boolean": false, + "guid": "b51d4b79-1289-46e1-9874-cac40d2a3f4c", + "integer": 89, + "date": "Mon Sep 06 2010 03:05:58 GMT-0700 (PDT)", + "shortText": "sint reprehenderit", + "mediumText": "Consectetur velit id fugiat amet aliquip laboris deserunt. Pariatur officia non Lorem consectetur officia ipsum occaecat sint commodo laboris amet minim ullamco officia.", + "longText": "Deserunt consequat eiusmod commodo qui adipisicing et. Occaecat elit occaecat ullamco eu ea minim cupidatat veniam veniam aliquip tempor laboris. Exercitation duis cupidatat ullamco magna incididunt cupidatat reprehenderit consequat laborum.\r\nOfficia occaecat quis quis fugiat aliquip et. In laborum et pariatur qui consectetur ullamco cillum excepteur voluptate fugiat. Eiusmod nulla elit qui in irure. Nulla enim consectetur proident nostrud.\r\nVeniam sit tempor laboris aute dolor officia laborum. Deserunt ad consequat non nulla dolor eiusmod elit veniam tempor. Esse sint amet nisi et ea labore amet. Officia aliquip pariatur dolore anim dolore culpa esse elit amet aliqua voluptate. Esse elit ex ipsum proident occaecat deserunt non amet reprehenderit. Voluptate anim sunt fugiat consectetur ut quis esse sit.\r\nCillum incididunt sint sit nostrud magna minim anim labore elit adipisicing est ipsum. Laborum ut officia ullamco labore non dolore veniam labore dolor et sint ex duis. Excepteur irure exercitation Lorem occaecat exercitation in consequat. Nulla est excepteur elit qui magna quis nulla laboris amet. Laborum nisi ex enim consequat mollit ullamco magna aliquip occaecat occaecat et elit sunt. Consectetur reprehenderit magna officia do aliquip proident minim. Aute qui officia deserunt labore id in esse aliqua do anim pariatur dolore consequat.\r\nAmet pariatur veniam cupidatat deserunt voluptate aliquip fugiat occaecat eu sit pariatur. Consectetur eu quis proident reprehenderit nisi. Voluptate aliquip quis culpa proident anim culpa esse. Mollit eiusmod magna cupidatat nostrud non ad duis. Laboris reprehenderit amet cupidatat duis sint qui deserunt excepteur amet. Consectetur reprehenderit Lorem esse nisi aliquip incididunt ipsum aute occaecat esse occaecat. Laboris sit Lorem incididunt laborum in.\r\n", + "address": "2 Montauk Avenue", + "city": "Wildwood", + "state": "Virginia", + "zip": 44321, + "country": "Uzbekistan", + "email": "ochoareed@scentric.com", + "phone": "(873) 450-2072", + "color": "rgb(87,106,105)" + }, + { + "index": 327, + "name": "Newton Townsend", + "first": "Cara", + "last": "Armstrong", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wim1k/73.jpg", + "boolean": false, + "guid": "396fee22-8931-4acb-9aa0-ef4e3d463f65", + "integer": 32, + "date": "Sun Feb 20 2011 09:27:11 GMT-0800 (PST)", + "shortText": "magna", + "mediumText": "Magna aute elit cupidatat ipsum velit reprehenderit. Occaecat qui fugiat nostrud quis excepteur commodo. Voluptate id consequat laborum mollit exercitation proident voluptate cillum voluptate in. Amet culpa consequat ullamco dolore incididunt consequat aliqua est nulla quis proident culpa.", + "longText": "Enim esse anim veniam est sunt labore ut qui magna cillum fugiat. Labore cupidatat ullamco deserunt veniam elit irure elit quis qui tempor anim et magna. Ex commodo ex adipisicing non laborum. Aliquip ex consequat dolor ut non consequat excepteur. Laboris laborum adipisicing cupidatat est. Id est aliqua laborum mollit incididunt excepteur. Enim commodo in culpa Lorem.\r\nLaborum sunt et exercitation mollit ut nulla aliqua nulla fugiat dolor. Deserunt commodo Lorem eu id adipisicing amet qui reprehenderit eu consectetur aliquip mollit eiusmod. Ad sit anim qui irure et ipsum laboris qui consectetur.\r\n", + "address": "4 School Lane", + "city": "Garfield", + "state": "Wyoming", + "zip": 38497, + "country": "Estonia", + "email": "caraarmstrong@scentric.com", + "phone": "(824) 554-2497", + "color": "rgb(82,224,190)" + }, + { + "index": 328, + "name": "Jenkins Short", + "first": "Castaneda", + "last": "Padilla", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rpeezy/73.jpg", + "boolean": true, + "guid": "bf4be80d-f135-468d-adab-23bf03ffb166", + "integer": 12, + "date": "Thu Sep 22 1994 12:13:32 GMT-0700 (PDT)", + "shortText": "et duis Lorem occaecat deserunt", + "mediumText": "Voluptate sint non minim elit. Est tempor tempor tempor nisi id cupidatat sunt.", + "longText": "In esse voluptate velit dolore ullamco in. Deserunt anim fugiat laboris sunt pariatur. Magna veniam ad eu labore aliquip non quis do adipisicing. Quis esse ad nostrud commodo. Non non aliquip sit laboris quis commodo laboris.\r\nPariatur laborum ad in ut et deserunt labore aute sint eiusmod. Voluptate eiusmod est enim quis id culpa aute eiusmod magna deserunt quis sint deserunt tempor. Deserunt quis deserunt enim elit. Esse duis irure eu officia ut tempor in velit in pariatur. Ea aute enim occaecat amet enim nisi excepteur consequat qui ut laboris incididunt tempor.\r\nIpsum enim dolore irure esse incididunt. Voluptate elit qui mollit aliquip ex proident ad adipisicing ipsum. Tempor dolore minim esse esse sint irure pariatur esse.\r\nMagna sunt labore Lorem do laboris duis exercitation aliqua fugiat eiusmod incididunt. Dolor mollit sunt commodo occaecat dolor eu sunt id occaecat sint. Et sunt esse eiusmod veniam nisi magna culpa voluptate nisi esse.\r\n", + "address": "2 Elton Street", + "city": "Gouglersville", + "state": "Colorado", + "zip": 96057, + "country": "Gambia", + "email": "castanedapadilla@scentric.com", + "phone": "(911) 571-2320", + "color": "rgb(80,137,178)" + }, + { + "index": 329, + "name": "Deborah Klein", + "first": "Sandoval", + "last": "Miranda", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sectronov/73.jpg", + "boolean": true, + "guid": "9daaa0e4-d04c-4232-a637-24e733f0b9ac", + "integer": 76, + "date": "Sun Aug 14 1994 19:32:54 GMT-0700 (PDT)", + "shortText": "exercitation mollit reprehenderit dolore deserunt", + "mediumText": "Quis sint eu occaecat ex ex amet pariatur deserunt ea magna excepteur. Laborum in fugiat eiusmod amet sunt nostrud officia qui magna id et. Non fugiat eu consectetur veniam tempor. Nostrud proident reprehenderit sint aute nisi aliqua anim enim deserunt id. Labore excepteur sit dolor nisi occaecat velit pariatur id aliquip.", + "longText": "Labore officia tempor adipisicing amet. Aliqua amet deserunt dolore nisi commodo velit aliqua. Eu nisi fugiat minim duis ipsum esse adipisicing eu nulla ex ad.\r\n", + "address": "2 Olive Street", + "city": "Fairview", + "state": "Utah", + "zip": 99892, + "country": "Nepal", + "email": "sandovalmiranda@scentric.com", + "phone": "(808) 578-2445", + "color": "rgb(234,209,129)" + }, + { + "index": 330, + "name": "Tricia Moss", + "first": "Dickson", + "last": "Houston", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/starburst1977/73.jpg", + "boolean": true, + "guid": "f41db055-f748-45e3-9ce3-4d867e00f776", + "integer": 9, + "date": "Mon Jun 15 1992 12:38:40 GMT-0700 (PDT)", + "shortText": "esse consectetur", + "mediumText": "Non nisi ut aliqua ipsum consequat excepteur culpa labore labore. Incididunt adipisicing qui mollit elit eiusmod aliqua aute. Laboris ut consequat consectetur elit aliquip irure enim aute cupidatat. Laboris incididunt id laborum reprehenderit duis nisi consectetur laboris nostrud.", + "longText": "Occaecat mollit reprehenderit tempor veniam consectetur non officia. Laboris consequat velit mollit in quis. Qui dolore excepteur in esse magna cupidatat incididunt eiusmod magna do. Laboris consectetur adipisicing occaecat cillum mollit duis. Officia excepteur exercitation quis consequat deserunt magna officia voluptate officia sint magna quis officia voluptate. Ullamco qui nostrud id incididunt veniam eu Lorem ad voluptate.\r\nConsequat cupidatat laborum sint consectetur. Anim do anim reprehenderit excepteur occaecat duis eu ea ipsum anim non nostrud nulla minim. Voluptate eu id officia consequat minim. Proident nulla qui amet qui veniam mollit non.\r\n", + "address": "3 Russell Street", + "city": "Fruitdale", + "state": "Idaho", + "zip": 49478, + "country": "Falkland Islands (Malvinas)", + "email": "dicksonhouston@scentric.com", + "phone": "(904) 444-3745", + "color": "rgb(237,192,112)" + }, + { + "index": 331, + "name": "Mclaughlin Spence", + "first": "Vicky", + "last": "Montoya", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mocabyte/73.jpg", + "boolean": true, + "guid": "b76384d1-fb6b-4500-ad6a-f266c0a380ce", + "integer": 95, + "date": "Tue Apr 18 1995 21:15:18 GMT-0700 (PDT)", + "shortText": "aute aliqua", + "mediumText": "Aliquip ea ad aute pariatur exercitation ex elit.", + "longText": "Labore veniam officia officia dolore. Ea quis et incididunt irure. Ut exercitation proident nostrud eiusmod quis ad. Laboris et Lorem qui quis ullamco dolore minim do incididunt. Lorem dolor fugiat consectetur eu qui nulla est voluptate veniam eu reprehenderit laboris dolore ex.\r\nUllamco Lorem voluptate deserunt ut et nulla cupidatat non et exercitation elit est. Mollit esse aute excepteur eiusmod commodo pariatur. Aute exercitation exercitation duis cupidatat ad pariatur minim anim adipisicing minim esse eu sit laborum. Laboris excepteur eu commodo dolor amet eiusmod. Officia quis reprehenderit dolor laborum non amet pariatur sit. Minim anim minim minim nulla minim ut non adipisicing consequat esse.\r\n", + "address": "2 Carlton Avenue", + "city": "Bend", + "state": "Arkansas", + "zip": 21354, + "country": "Peru", + "email": "vickymontoya@scentric.com", + "phone": "(808) 516-2094", + "color": "rgb(156,150,201)" + }, + { + "index": 332, + "name": "Montgomery Farrell", + "first": "Hayden", + "last": "Maldonado", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamasifmirza/73.jpg", + "boolean": false, + "guid": "098a567c-1dc4-4f48-aa95-7c039f017b7e", + "integer": 99, + "date": "Sat Jul 30 2005 17:18:13 GMT-0700 (PDT)", + "shortText": "do culpa elit magna tempor", + "mediumText": "Non esse aliqua dolor irure cillum labore excepteur. Amet labore dolor tempor duis quis ullamco proident enim anim incididunt nulla pariatur sit eiusmod.", + "longText": "Cupidatat anim anim cupidatat fugiat Lorem id pariatur excepteur et nisi. Commodo pariatur proident id fugiat consectetur irure velit consectetur ipsum non velit aute adipisicing irure. Do aliqua aute id esse Lorem. Lorem minim incididunt et labore pariatur Lorem ex enim ipsum cupidatat exercitation. Amet aliquip nisi cupidatat laboris eu officia aute velit. Dolor non sit consequat elit eu ut qui occaecat. Proident ut reprehenderit commodo ipsum deserunt ex quis elit.\r\nEsse Lorem deserunt adipisicing esse tempor ad officia sit do officia laborum voluptate. Do voluptate voluptate eiusmod magna in quis minim consectetur. Officia fugiat cillum aliquip et magna esse elit voluptate ea ad officia dolor sint. Ad velit aliqua reprehenderit consectetur quis incididunt nisi.\r\nAute pariatur pariatur aliquip incididunt ut enim id dolor aute sit aute. Elit occaecat labore nostrud enim veniam. Eu laborum mollit quis sit ut incididunt et. Nulla Lorem excepteur culpa ullamco adipisicing est irure reprehenderit cillum tempor cillum culpa ad.\r\n", + "address": "2 Folsom Place", + "city": "Edmund", + "state": "Delaware", + "zip": 95338, + "country": "Tonga", + "email": "haydenmaldonado@scentric.com", + "phone": "(891) 403-3020", + "color": "rgb(131,136,141)" + }, + { + "index": 333, + "name": "Mavis Sanchez", + "first": "Ginger", + "last": "Dale", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/benoitboucart/73.jpg", + "boolean": true, + "guid": "ba039378-7a45-4b1c-8ec3-cb2714651e82", + "integer": 67, + "date": "Sun Dec 13 1992 23:12:22 GMT-0800 (PST)", + "shortText": "adipisicing sint", + "mediumText": "Pariatur minim ipsum aliquip nulla qui voluptate irure irure est anim culpa laboris cupidatat. Enim adipisicing exercitation eiusmod sunt ex ad irure id labore. Aute labore voluptate amet eu. Dolor ea non enim nostrud elit aliqua qui amet aliqua et.", + "longText": "Occaecat mollit pariatur ea nisi veniam. Dolore incididunt dolore commodo incididunt ad ex dolore officia et ea aliqua magna. Ad sunt est proident nostrud consectetur. Ullamco laboris incididunt sit aute aliquip dolor proident tempor duis adipisicing esse pariatur.\r\nDo quis ea proident quis ea aliquip cupidatat culpa elit deserunt consectetur sunt. Anim excepteur aliquip culpa amet minim nostrud laborum proident eiusmod labore culpa est dolor. Amet et fugiat irure nisi commodo tempor irure aliqua nostrud nostrud. Dolore tempor sit laborum anim.\r\nOfficia commodo dolore duis officia do. Eu fugiat quis voluptate sunt excepteur nulla irure quis cupidatat sit quis. Ex irure non cupidatat ex. Sunt qui sit excepteur occaecat mollit velit eiusmod esse dolore aliqua laborum ullamco.\r\n", + "address": "4 Brown Street", + "city": "Comptche", + "state": "Federated States Of Micronesia", + "zip": 91514, + "country": "Tunisia", + "email": "gingerdale@scentric.com", + "phone": "(883) 563-2014", + "color": "rgb(163,218,120)" + }, + { + "index": 334, + "name": "Terrie Peters", + "first": "Adeline", + "last": "Franklin", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/markwienands/73.jpg", + "boolean": false, + "guid": "7eb5d929-28c8-4d9e-8728-a158423e70eb", + "integer": 69, + "date": "Thu Mar 20 1986 06:50:48 GMT-0800 (PST)", + "shortText": "commodo", + "mediumText": "Nisi nulla enim ad deserunt proident qui. Aliqua duis id ea deserunt. Ut amet adipisicing sint consequat qui ut nisi et sit cillum amet. Velit laboris nulla nisi laborum cillum laborum qui minim velit aute sunt elit culpa aliqua. Adipisicing aliqua nulla proident sit sit laborum ea eu.", + "longText": "Fugiat dolor cupidatat sunt ex quis labore proident esse. Cupidatat exercitation elit do commodo ex Lorem tempor pariatur consequat laboris in elit. Ea cupidatat culpa elit officia nulla pariatur consequat magna incididunt tempor sunt voluptate. Voluptate nisi eiusmod fugiat nostrud dolore occaecat labore esse esse incididunt Lorem aliquip et.\r\nCupidatat consectetur dolor culpa cillum cupidatat occaecat. Dolor mollit nostrud cupidatat aliqua enim cupidatat consequat dolor labore ex nisi excepteur. Elit aliqua quis aliquip magna. Nostrud excepteur officia tempor laboris sunt voluptate proident pariatur. Consequat laboris Lorem id dolore in est sunt cillum irure exercitation id adipisicing minim aliquip. Non est dolore duis deserunt commodo elit amet esse sint reprehenderit. Aliqua quis fugiat elit duis minim exercitation consectetur.\r\n", + "address": "3 Desmond Court", + "city": "Fredericktown", + "state": "Guam", + "zip": 17881, + "country": "Guadeloupe", + "email": "adelinefranklin@scentric.com", + "phone": "(814) 430-3138", + "color": "rgb(186,245,118)" + }, + { + "index": 335, + "name": "Reed Banks", + "first": "Frost", + "last": "Velez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/menghe/73.jpg", + "boolean": true, + "guid": "0ea4f50e-f8d5-4d36-b794-5124c98c0103", + "integer": 38, + "date": "Fri Feb 13 1981 04:31:25 GMT-0800 (PST)", + "shortText": "do adipisicing", + "mediumText": "Sit dolor occaecat sint ipsum. Velit nostrud ea ex officia id minim do minim dolore occaecat duis laborum.", + "longText": "Aute ullamco eu ad quis voluptate dolore qui. Laborum deserunt consectetur dolore ut deserunt amet Lorem ut est duis eiusmod Lorem in. Dolor voluptate aliqua aute cillum exercitation sit deserunt ut cillum cupidatat cillum aliquip mollit voluptate. Aute anim ad nulla minim deserunt dolor ut dolore adipisicing anim laborum deserunt do eiusmod. Id excepteur nisi enim ullamco sunt esse minim velit dolore aliqua. Elit adipisicing laborum est est Lorem quis est.\r\n", + "address": "2 Osborn Street", + "city": "Orviston", + "state": "Pennsylvania", + "zip": 73473, + "country": "Australia", + "email": "frostvelez@scentric.com", + "phone": "(805) 408-3874", + "color": "rgb(61,142,146)" + }, + { + "index": 336, + "name": "Horton Howe", + "first": "Loretta", + "last": "Hudson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/heyanata/73.jpg", + "boolean": false, + "guid": "22d30b57-493f-4a7d-9b75-bb3a630d6a21", + "integer": 97, + "date": "Sat Oct 11 1975 04:15:11 GMT-0700 (PDT)", + "shortText": "do enim", + "mediumText": "Ea magna cillum aliqua reprehenderit consequat velit laboris aliqua. Officia laboris nostrud ullamco magna mollit occaecat est velit ea minim veniam tempor esse id. Consequat dolore quis id pariatur velit mollit quis. Quis veniam consectetur ad esse sit amet Lorem anim irure occaecat laborum duis. Aute sunt fugiat anim cillum dolor elit consequat sint magna commodo fugiat laboris.", + "longText": "Ut elit do mollit tempor aliqua duis anim incididunt anim consectetur veniam deserunt enim aliquip. Ad velit ad cupidatat ad deserunt reprehenderit aliqua ut elit sit. Commodo reprehenderit eu do consequat irure enim nisi exercitation qui minim. Minim fugiat culpa excepteur duis ea laborum. Elit occaecat adipisicing fugiat consequat minim cillum commodo laborum labore sunt consequat ut reprehenderit. Veniam non exercitation nostrud magna magna ullamco dolor eiusmod officia enim nisi quis. Enim nisi eu velit excepteur et exercitation irure.\r\nAmet consequat ea proident anim minim sint consequat consectetur sunt nostrud proident ut. Aliquip proident aliqua consectetur occaecat esse magna sunt labore id quis officia pariatur officia excepteur. Occaecat Lorem ut esse irure. Ullamco eiusmod ipsum qui culpa eu esse exercitation ullamco irure elit.\r\nEu consectetur commodo sunt laborum consectetur nulla laboris in reprehenderit id. Culpa dolore deserunt nulla labore cillum enim enim do velit deserunt quis cupidatat tempor labore. Enim proident sunt aliquip dolor laborum labore sint eu cillum. Ut irure quis proident laboris cupidatat et anim anim qui. Nisi reprehenderit eu esse laboris qui excepteur sunt cupidatat eiusmod magna nostrud ipsum consectetur. Non ut amet velit non laboris fugiat duis.\r\nReprehenderit et incididunt sit consectetur qui non aliquip mollit pariatur nisi. Enim eu dolor id eu. Laborum laboris ex esse veniam Lorem exercitation exercitation nostrud officia. Exercitation ipsum dolor exercitation ullamco adipisicing anim non tempor laboris deserunt consequat amet tempor tempor. Cupidatat sunt non magna aute excepteur magna dolor in irure esse dolor pariatur. Eiusmod commodo minim ipsum elit. Ut reprehenderit veniam ex magna mollit duis magna.\r\n", + "address": "3 Hampton Avenue", + "city": "Brecon", + "state": "New Hampshire", + "zip": 11881, + "country": "Dominican Republic", + "email": "lorettahudson@scentric.com", + "phone": "(969) 542-2613", + "color": "rgb(245,143,237)" + }, + { + "index": 337, + "name": "Byrd Hopkins", + "first": "Charmaine", + "last": "Gibbs", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/73.jpg", + "boolean": false, + "guid": "bf3bdf33-82fb-4240-b2be-d215fbaff029", + "integer": 55, + "date": "Wed Sep 12 2001 15:08:00 GMT-0700 (PDT)", + "shortText": "esse", + "mediumText": "Minim culpa et ea labore labore ad do officia eiusmod. Incididunt duis elit sit cupidatat mollit qui ea. Dolor id adipisicing est tempor commodo.", + "longText": "Consequat consequat eiusmod sint esse ex. Nisi eu est magna esse cillum exercitation velit ea. Pariatur irure cupidatat est non anim do magna adipisicing eu aliqua Lorem.\r\nSunt tempor qui id aliqua minim culpa non adipisicing in id elit. Laborum laboris aliquip ea mollit excepteur aute. Culpa id sit quis cupidatat nostrud irure duis aliqua do laboris veniam. Ullamco aute cillum in excepteur enim. Ipsum amet voluptate aliqua mollit commodo sint.\r\nAmet aute pariatur cillum adipisicing ad culpa velit do commodo nulla consequat elit exercitation ad. Do nisi in laboris id proident deserunt. Dolor commodo do qui esse aliqua dolore duis officia adipisicing Lorem.\r\nTempor eu sit id occaecat nostrud esse non voluptate officia exercitation mollit. Aliqua elit commodo incididunt nulla labore nostrud est duis. Pariatur ut laboris laboris laborum mollit anim consequat. Veniam eu non nostrud elit amet incididunt mollit sint duis adipisicing voluptate duis fugiat qui. Velit labore nostrud anim ex laboris ullamco elit. Ad in adipisicing anim culpa. Aliqua ullamco quis cupidatat exercitation qui.\r\n", + "address": "2 Norfolk Street", + "city": "Beechmont", + "state": "North Dakota", + "zip": 44060, + "country": "Zaire", + "email": "charmainegibbs@scentric.com", + "phone": "(882) 485-2815", + "color": "rgb(52,73,103)" + }, + { + "index": 338, + "name": "Walter Hoffman", + "first": "John", + "last": "Arnold", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bluesix/73.jpg", + "boolean": true, + "guid": "775148e8-ce9f-4917-b50d-93d7d88dcc90", + "integer": 64, + "date": "Sat Oct 10 1992 03:41:40 GMT-0700 (PDT)", + "shortText": "culpa esse eiusmod amet nisi", + "mediumText": "Excepteur sunt fugiat dolor dolor cupidatat laboris esse sint incididunt elit fugiat reprehenderit aliqua dolor.", + "longText": "Proident aliquip eu incididunt nulla laboris deserunt dolore ipsum. Officia elit in laboris nulla nostrud. Voluptate dolore Lorem qui consectetur id amet qui esse est. Ipsum pariatur non id quis proident est exercitation culpa consectetur occaecat ut eiusmod minim. Nostrud dolore id nulla ullamco mollit aute minim ad quis.\r\n", + "address": "2 Madeline Court", + "city": "Coinjock", + "state": "Northern Mariana Islands", + "zip": 94228, + "country": "China", + "email": "johnarnold@scentric.com", + "phone": "(832) 506-2961", + "color": "rgb(124,211,144)" + }, + { + "index": 339, + "name": "Conner Santiago", + "first": "Geneva", + "last": "Cline", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/w8candice/73.jpg", + "boolean": true, + "guid": "42040b16-aa43-4862-94d5-186ca3462e87", + "integer": 42, + "date": "Sat Jan 30 1988 20:47:01 GMT-0800 (PST)", + "shortText": "pariatur enim fugiat", + "mediumText": "Pariatur voluptate mollit deserunt voluptate proident sit sint Lorem magna sunt deserunt ipsum. Exercitation nostrud proident consequat amet.", + "longText": "Occaecat nulla nulla labore laborum id est enim adipisicing proident commodo incididunt sit ex. Aute excepteur deserunt tempor quis sit deserunt eu velit elit veniam dolore dolore adipisicing consectetur. Consequat tempor nostrud excepteur laboris quis. Duis aute magna do mollit ullamco ex ipsum occaecat aute sunt.\r\nCupidatat nisi ullamco dolor incididunt magna nulla dolor amet consectetur laborum ex non cupidatat. Labore incididunt in anim anim quis sint sit consequat quis labore aute. Magna nisi sint nostrud ea esse voluptate.\r\nLorem ex cupidatat Lorem aute sunt consectetur proident. Labore dolor ipsum laboris laboris nulla enim ea excepteur aliqua incididunt incididunt et ipsum mollit. Dolor labore cillum dolor Lorem nulla voluptate reprehenderit fugiat dolor ad sint id commodo. Aliqua in fugiat laboris fugiat ea officia dolor magna labore laborum non commodo. In labore consequat incididunt ut minim. Lorem enim tempor mollit minim esse deserunt anim ex labore. Officia nulla reprehenderit dolore eu duis eu.\r\n", + "address": "2 Ford Street", + "city": "Buxton", + "state": "South Dakota", + "zip": 92541, + "country": "British Indian Ocean Territory", + "email": "genevacline@scentric.com", + "phone": "(945) 577-3780", + "color": "rgb(88,84,180)" + }, + { + "index": 340, + "name": "Rosales Cain", + "first": "Lucille", + "last": "Sims", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mbilderbach/73.jpg", + "boolean": false, + "guid": "05c0e183-2ebf-459b-8755-1581a4a5e362", + "integer": 66, + "date": "Thu Oct 16 1997 15:05:12 GMT-0700 (PDT)", + "shortText": "esse labore", + "mediumText": "Ipsum cillum sunt laboris reprehenderit quis nulla.", + "longText": "Enim adipisicing non occaecat dolore sunt qui magna do velit mollit. Adipisicing enim esse quis Lorem sit ut elit est. Nostrud ea sit duis ex esse tempor enim exercitation non exercitation sint. Occaecat ipsum ex id elit eu id occaecat ea pariatur nisi tempor velit. Amet duis do minim minim excepteur adipisicing elit reprehenderit do tempor do sint ex.\r\nElit eu laboris mollit ullamco. Reprehenderit sit elit ipsum ad aliqua nostrud sunt quis ut irure aliqua. Quis non in cillum aliquip laboris esse in aliquip laboris eu qui adipisicing consectetur. Magna tempor irure officia duis sunt.\r\nSit ad dolore mollit fugiat do culpa in anim aliqua. Ad adipisicing esse occaecat ullamco proident. Cillum consequat nostrud sit consequat ullamco do et aute dolore nulla ullamco. Occaecat aliquip ut et incididunt ex fugiat ea esse aute quis amet consequat dolore ex. Officia aute incididunt esse exercitation culpa.\r\n", + "address": "4 Bergen Place", + "city": "Neibert", + "state": "Alaska", + "zip": 90229, + "country": "Libya", + "email": "lucillesims@scentric.com", + "phone": "(881) 438-3457", + "color": "rgb(57,64,85)" + }, + { + "index": 341, + "name": "Jillian Puckett", + "first": "Bean", + "last": "Dyer", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/coreyweb/73.jpg", + "boolean": false, + "guid": "a5317fd0-0be0-41ea-bbe9-a86a56e64aee", + "integer": 79, + "date": "Fri Oct 22 2004 15:49:39 GMT-0700 (PDT)", + "shortText": "ipsum aliqua", + "mediumText": "Occaecat ut eu consectetur sit Lorem nulla incididunt magna mollit reprehenderit fugiat.", + "longText": "Ad non eiusmod ullamco consectetur. In incididunt officia ex irure id. Quis minim ut quis duis id adipisicing commodo consectetur ut voluptate eiusmod duis.\r\nCulpa aliquip amet esse tempor do adipisicing. Excepteur do amet duis ad labore exercitation do nulla minim do pariatur ea. Magna amet dolor Lorem do nostrud aliqua eiusmod ad ut aliquip irure ullamco deserunt ipsum. Eu enim amet ut ut tempor sit cupidatat magna dolore. Laborum magna irure sit incididunt quis duis ex.\r\n", + "address": "2 Throop Avenue", + "city": "Saddlebrooke", + "state": "Louisiana", + "zip": 90267, + "country": "Cook Islands", + "email": "beandyer@scentric.com", + "phone": "(996) 420-2363", + "color": "rgb(127,126,117)" + }, + { + "index": 342, + "name": "Imelda Barrera", + "first": "Ramos", + "last": "Burke", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyshimko/73.jpg", + "boolean": true, + "guid": "7af4342e-1e1e-4807-8c51-aa37e8b7e551", + "integer": 25, + "date": "Thu Apr 19 2012 18:26:05 GMT-0700 (PDT)", + "shortText": "excepteur in culpa duis ullamco", + "mediumText": "In minim officia mollit veniam esse deserunt enim ullamco adipisicing ullamco deserunt quis.", + "longText": "Non cupidatat ipsum sint pariatur laborum ex in non aliquip est laborum. Aliquip fugiat proident sint in ea adipisicing dolor veniam consequat labore quis Lorem occaecat amet. Exercitation do commodo sunt nisi elit aliqua aliqua consectetur. Reprehenderit eu qui ea aliquip labore eiusmod cillum sunt.\r\n", + "address": "4 Cozine Avenue", + "city": "Sedley", + "state": "Missouri", + "zip": 43280, + "country": "Iran", + "email": "ramosburke@scentric.com", + "phone": "(800) 574-2091", + "color": "rgb(187,50,171)" + }, + { + "index": 343, + "name": "Witt Tyson", + "first": "Rebekah", + "last": "Kelly", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pavelbuben/73.jpg", + "boolean": false, + "guid": "81d76694-4ec9-4a0d-b1d2-87c3513414e3", + "integer": 92, + "date": "Thu Jul 31 1975 13:57:11 GMT-0700 (PDT)", + "shortText": "do quis", + "mediumText": "Reprehenderit veniam in sit magna nulla non ad ut enim culpa consequat in nisi id. Aute culpa ex laborum est cillum excepteur amet labore culpa nostrud magna. Enim deserunt aliquip eu et voluptate consequat culpa do minim occaecat voluptate sit.", + "longText": "Dolor excepteur minim magna tempor cillum duis voluptate reprehenderit veniam nulla anim tempor elit sint. Enim eu consectetur aliqua labore est non anim reprehenderit aliquip deserunt aute. Consequat et veniam id id ullamco amet adipisicing eiusmod. Ullamco fugiat quis ad sit consequat aliqua ipsum labore. Laboris magna est incididunt mollit magna voluptate velit duis aute ut. Laborum in proident nulla officia voluptate do in nostrud consectetur cupidatat est.\r\nLorem elit nulla tempor officia incididunt consequat aliqua. Voluptate anim labore esse veniam. Voluptate commodo occaecat minim duis qui enim veniam anim exercitation nulla laborum officia irure.\r\nNulla est eiusmod duis deserunt ea. Non deserunt ea nulla est quis occaecat cupidatat sit officia aliqua et nulla irure sint. Ea duis aliqua veniam reprehenderit culpa eiusmod sint. Quis et eu eu dolore. Nulla est officia adipisicing laborum est dolore duis culpa. Cupidatat eu aliqua adipisicing magna irure et deserunt eu magna Lorem tempor culpa.\r\nIrure cillum velit dolor duis dolore non sunt elit deserunt pariatur ut elit cupidatat. Qui irure sint duis ad nostrud dolore laborum. Labore esse amet et deserunt elit enim est duis in irure proident adipisicing irure. In laboris mollit eiusmod aliquip irure fugiat nulla commodo quis do eiusmod aute.\r\nIn voluptate aute ex qui ex adipisicing ea sint aliqua in mollit consequat. Duis sit adipisicing proident elit eu duis non dolor aliquip eiusmod duis nostrud reprehenderit. Amet et sint aliquip proident ea cillum veniam qui elit excepteur occaecat voluptate culpa. Mollit ea labore nulla mollit Lorem velit velit sit commodo nostrud. Ex deserunt laborum ea laborum culpa culpa sit eu dolor aute sunt amet. Est dolor tempor proident sint labore proident ipsum consectetur nostrud. Qui commodo qui aliqua commodo esse aute non enim.\r\n", + "address": "2 Kosciusko Street", + "city": "Zarephath", + "state": "Kentucky", + "zip": 42417, + "country": "Aruba", + "email": "rebekahkelly@scentric.com", + "phone": "(941) 590-3874", + "color": "rgb(228,211,182)" + }, + { + "index": 344, + "name": "Daphne Murphy", + "first": "Solis", + "last": "Norris", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hafeeskhan/73.jpg", + "boolean": true, + "guid": "aba2b0e9-cd59-410a-b0d2-70b43acabbc0", + "integer": 71, + "date": "Sun Apr 30 1972 14:07:42 GMT-0700 (PDT)", + "shortText": "aute consequat voluptate adipisicing ex", + "mediumText": "Dolore commodo sit ea sunt in consectetur fugiat laboris incididunt aliquip.", + "longText": "Sunt dolor duis fugiat voluptate veniam. In cillum irure nisi quis reprehenderit est ipsum. Dolore duis est ea duis labore laborum ea ex nisi minim. Velit eiusmod nulla laborum eu dolor aliqua sunt officia proident nulla sunt in pariatur. Pariatur sit do ullamco nostrud commodo ex et ex in. Labore excepteur tempor et qui nisi Lorem culpa eu. Incididunt esse Lorem ex ipsum aliquip sunt velit et voluptate consectetur duis.\r\nAdipisicing esse ipsum tempor eu. Voluptate aliqua laborum incididunt excepteur veniam. Laboris sunt id quis sint voluptate duis ex.\r\nQui dolore culpa reprehenderit est est do. Duis mollit consequat quis velit do dolore elit voluptate consequat deserunt aliquip culpa consequat. Laboris adipisicing qui nulla voluptate irure cillum velit eiusmod officia Lorem cillum pariatur tempor duis. Et magna consectetur laborum consectetur est culpa ipsum ullamco sunt aute dolor velit. Duis ipsum reprehenderit quis adipisicing voluptate do laborum.\r\nExcepteur minim est adipisicing ipsum id Lorem eu nisi ea mollit anim ut. Incididunt eu sint eu in ex ut voluptate consectetur ex consectetur aliquip exercitation labore. Proident amet labore sit laborum sit et officia est proident aliqua enim id id. Ea consectetur minim deserunt non. Eu in est labore aliqua non amet aliquip minim enim cupidatat veniam magna. Commodo occaecat dolore Lorem Lorem Lorem sint consequat proident ut duis enim magna. Aute occaecat nisi duis culpa velit sunt.\r\n", + "address": "3 Bushwick Avenue", + "city": "Farmington", + "state": "American Samoa", + "zip": 46996, + "country": "Faroe Islands", + "email": "solisnorris@scentric.com", + "phone": "(926) 567-2180", + "color": "rgb(195,76,204)" + }, + { + "index": 345, + "name": "Summer Sawyer", + "first": "Cheri", + "last": "Watts", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/timmillwood/73.jpg", + "boolean": false, + "guid": "edf13e03-caa7-418a-8781-3ec09c26861d", + "integer": 75, + "date": "Tue May 08 2012 18:10:55 GMT-0700 (PDT)", + "shortText": "incididunt excepteur", + "mediumText": "Ullamco adipisicing id culpa irure anim non fugiat. Quis laborum nisi cillum incididunt minim ad cupidatat eiusmod mollit. Et nostrud eiusmod dolor et Lorem aliquip deserunt. In minim ut pariatur commodo. Ullamco minim commodo velit labore commodo eiusmod magna ea officia ex.", + "longText": "Mollit irure non aute magna. Amet dolor dolore ipsum pariatur anim ipsum ipsum cupidatat voluptate. Veniam excepteur eiusmod labore voluptate. Ipsum cillum anim esse aliqua ex consequat. Tempor adipisicing aute laborum deserunt magna labore duis deserunt.\r\nEt fugiat amet esse aliquip veniam magna est ad. Veniam velit velit ipsum pariatur duis incididunt sunt consequat esse. Cillum eiusmod duis aliqua ullamco. Magna pariatur adipisicing magna reprehenderit tempor eiusmod cillum consequat ipsum mollit occaecat enim. Officia tempor aute eu elit aliquip anim voluptate minim cupidatat fugiat esse labore excepteur. Nulla ex aliqua ipsum irure minim. Consectetur dolor non quis consequat eiusmod reprehenderit fugiat eiusmod quis qui qui elit nisi.\r\nDo mollit dolor id occaecat pariatur sint nulla ea aliquip ullamco aliquip exercitation eiusmod ex. Duis magna nulla amet fugiat Lorem tempor duis nisi ex exercitation ex. Non irure ullamco reprehenderit nulla consectetur in.\r\nNisi proident cillum labore anim consectetur in. Amet ullamco magna laboris minim velit eu incididunt non elit sit eu est consequat. Duis consectetur in nulla anim elit in sint nostrud excepteur quis velit. Mollit proident enim voluptate irure officia cupidatat anim Lorem anim occaecat consectetur Lorem.\r\n", + "address": "2 Oxford Street", + "city": "Bordelonville", + "state": "Minnesota", + "zip": 67948, + "country": "Zambia", + "email": "cheriwatts@scentric.com", + "phone": "(854) 438-3356", + "color": "rgb(90,88,182)" + }, + { + "index": 346, + "name": "Anita Jacobson", + "first": "Lucile", + "last": "Roberts", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/butchewing/73.jpg", + "boolean": false, + "guid": "c88108ef-0dce-42ae-b03e-770b8b26ecf0", + "integer": 37, + "date": "Mon Apr 18 1977 02:05:21 GMT-0800 (PST)", + "shortText": "nostrud", + "mediumText": "Deserunt fugiat veniam minim ipsum consequat ipsum tempor voluptate ut. Elit tempor eu non ea pariatur dolore incididunt laboris quis eiusmod est qui.", + "longText": "Fugiat tempor dolore proident adipisicing fugiat minim. Sunt in veniam dolor anim non Lorem id proident in anim sint. Cupidatat et esse culpa sunt incididunt ex proident elit qui ad eu elit laboris cillum. Laboris culpa pariatur ea sit culpa et ea minim fugiat. Eu nulla est excepteur deserunt officia.\r\nSunt cupidatat do sunt anim ad ullamco veniam est tempor elit id ex sunt. Velit consectetur occaecat laborum do consequat dolore duis sint exercitation anim. Ad sunt aliqua culpa dolore fugiat excepteur elit magna labore. Nostrud cupidatat aliquip et officia aliquip incididunt. Fugiat excepteur pariatur officia magna. Ex id velit enim amet culpa.\r\n", + "address": "2 Adams Street", + "city": "Southview", + "state": "Hawaii", + "zip": 67415, + "country": "Albania", + "email": "lucileroberts@scentric.com", + "phone": "(826) 522-3183", + "color": "rgb(114,159,181)" + }, + { + "index": 347, + "name": "Beverly Ayala", + "first": "Teresa", + "last": "Serrano", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dotmariusz/73.jpg", + "boolean": false, + "guid": "e5824ea2-1204-42b5-8075-232d1e648cfc", + "integer": 47, + "date": "Mon Jul 24 2000 15:52:57 GMT-0700 (PDT)", + "shortText": "non cillum mollit enim ullamco", + "mediumText": "Amet do eu non culpa ea eiusmod culpa reprehenderit aute adipisicing duis nostrud in dolor. Do sint ex anim consectetur reprehenderit.", + "longText": "Et quis laboris ad ea do quis id enim. Ex culpa cupidatat velit nostrud cupidatat voluptate velit ipsum. Eu amet culpa aute officia non commodo irure fugiat. Qui sit consectetur labore exercitation officia cillum veniam enim.\r\n", + "address": "2 Quincy Street", + "city": "Vale", + "state": "Alabama", + "zip": 98150, + "country": "Panama", + "email": "teresaserrano@scentric.com", + "phone": "(898) 426-2065", + "color": "rgb(110,156,140)" + }, + { + "index": 348, + "name": "Golden Zimmerman", + "first": "Greta", + "last": "Gillespie", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aaronbeashel/73.jpg", + "boolean": true, + "guid": "e4300d91-7791-4fcb-b61e-c551eeed9488", + "integer": 57, + "date": "Thu Sep 20 2007 17:36:22 GMT-0700 (PDT)", + "shortText": "cillum", + "mediumText": "Lorem duis adipisicing et ea dolore dolore non anim nisi exercitation enim. Ea incididunt velit quis mollit nisi dolor proident. Ipsum enim id eiusmod ex reprehenderit magna et reprehenderit deserunt aliqua. Qui mollit sit occaecat sunt ex veniam excepteur ex velit ea commodo ad.", + "longText": "Do dolore culpa cillum officia aliqua cillum. Fugiat nisi ipsum proident reprehenderit velit. Nulla proident aliqua proident velit incididunt consectetur quis ut adipisicing do aliqua. Amet laboris elit amet commodo adipisicing. Nisi esse minim ut elit. Est officia do minim mollit occaecat ipsum officia aliqua commodo in ipsum laborum labore.\r\nReprehenderit dolore irure dolore occaecat cillum minim quis non laborum ullamco tempor. Irure ut magna ad esse nostrud nostrud ut. Eiusmod sunt nulla commodo officia incididunt nisi aliqua. Eiusmod occaecat non do non qui eiusmod. Amet sit dolore fugiat aliquip.\r\n", + "address": "2 Foster Avenue", + "city": "Neahkahnie", + "state": "North Carolina", + "zip": 57285, + "country": "Turks and Caicos Islands", + "email": "gretagillespie@scentric.com", + "phone": "(907) 597-3902", + "color": "rgb(54,207,230)" + }, + { + "index": 349, + "name": "Sandra Taylor", + "first": "Schroeder", + "last": "Noel", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jina/73.jpg", + "boolean": false, + "guid": "10f56b06-75ab-4405-929b-533362c0fd8f", + "integer": 65, + "date": "Thu Jul 19 1979 21:31:02 GMT-0700 (PDT)", + "shortText": "laboris pariatur anim est", + "mediumText": "Velit nostrud voluptate labore eu irure laboris proident reprehenderit.", + "longText": "Ex irure sit ut quis exercitation enim voluptate laborum. Cillum deserunt amet est et. Nostrud consequat ullamco minim sit deserunt amet officia sit dolore. Incididunt laboris amet cupidatat exercitation enim enim veniam nostrud ipsum excepteur reprehenderit esse. Adipisicing esse do et est esse nulla duis nisi veniam sint.\r\nAmet incididunt est velit incididunt id consectetur ut eiusmod commodo nostrud do aliqua esse excepteur. Ullamco laborum proident ullamco aliqua nisi aliquip ex id. Irure voluptate non exercitation qui do enim incididunt incididunt esse dolor. Eiusmod aute id consectetur ullamco laboris cupidatat consequat.\r\nSunt commodo amet deserunt sit esse ad eiusmod tempor. Excepteur deserunt ea aliquip tempor nostrud nostrud labore eu et et. Dolore ex mollit officia voluptate non consequat. Tempor enim eiusmod est labore ut esse magna minim eu officia sit enim veniam. Quis do veniam magna elit enim amet est veniam irure.\r\nMollit sit incididunt sunt tempor adipisicing Lorem incididunt. Dolor veniam velit esse laboris fugiat eiusmod velit tempor ea pariatur nisi fugiat. Velit proident ex ipsum id cillum amet ad.\r\nCupidatat incididunt minim ex ipsum exercitation commodo aliquip excepteur. Voluptate labore reprehenderit quis in ex magna. Ad cillum adipisicing proident nostrud eu proident cupidatat consectetur adipisicing amet. Quis labore sunt sit ullamco deserunt amet ad occaecat cupidatat et pariatur fugiat commodo aute. Enim et veniam proident Lorem sint. Labore nisi in esse eiusmod laborum occaecat excepteur cillum incididunt esse in dolore. Aliqua eiusmod velit id occaecat sunt qui ex ea.\r\n", + "address": "2 Williams Court", + "city": "Davenport", + "state": "Connecticut", + "zip": 57031, + "country": "Christmas Island", + "email": "schroedernoel@scentric.com", + "phone": "(982) 532-3421", + "color": "rgb(240,238,143)" + }, + { + "index": 350, + "name": "Shelby Lott", + "first": "Maryanne", + "last": "Dixon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gu5taf/73.jpg", + "boolean": false, + "guid": "86ccb30c-436b-4e11-b33f-231007768e3c", + "integer": 16, + "date": "Wed Jan 07 1970 01:58:18 GMT-0800 (PST)", + "shortText": "anim officia nulla aliqua", + "mediumText": "Officia et eu enim esse veniam. Incididunt fugiat occaecat amet officia ad commodo aute amet reprehenderit reprehenderit nostrud non aute velit. Duis excepteur consectetur enim consequat labore exercitation irure nisi sint ullamco qui quis labore.", + "longText": "Tempor culpa mollit id anim labore sit Lorem cillum. Occaecat cupidatat sit ad voluptate tempor non do. Ullamco id laborum et ex esse. Do ex ad excepteur magna consequat. Qui proident qui occaecat ut aute nostrud.\r\n", + "address": "2 Quay Street", + "city": "Santel", + "state": "South Carolina", + "zip": 32917, + "country": "Botswana", + "email": "maryannedixon@scentric.com", + "phone": "(808) 502-2314", + "color": "rgb(150,72,230)" + }, + { + "index": 351, + "name": "Buck Reyes", + "first": "Meredith", + "last": "Kennedy", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/antonkudin/73.jpg", + "boolean": true, + "guid": "1836f1d4-6bef-4b29-8a27-b11d78119e5a", + "integer": 56, + "date": "Wed Jul 03 2013 04:17:00 GMT-0700 (PDT)", + "shortText": "cillum enim aute ea enim", + "mediumText": "Voluptate do Lorem veniam ullamco id excepteur. Mollit et occaecat ut amet nostrud dolore consectetur id minim. Eu esse nisi incididunt nulla occaecat sunt. Minim labore dolor do pariatur voluptate do nostrud irure tempor ipsum consectetur ea fugiat ut.", + "longText": "Et ex ipsum eu commodo aliquip sit officia id. Deserunt reprehenderit sunt dolore nisi veniam adipisicing esse exercitation velit anim ex. Eiusmod do aliquip magna cillum dolore cillum excepteur. Excepteur dolore quis nisi veniam quis eiusmod occaecat. Amet nulla ut excepteur duis officia dolor esse incididunt ipsum. Laboris est aliqua qui nostrud labore duis eu non do.\r\nDo id commodo et deserunt aliquip. Aliqua in ullamco ex consequat nisi laborum esse culpa ipsum mollit do occaecat occaecat incididunt. Tempor est irure irure ex incididunt laboris. Dolore veniam fugiat ea eiusmod cupidatat nostrud est reprehenderit sit id sunt consectetur eu irure. In laborum voluptate proident et dolor aute. Deserunt dolore dolor ad sit duis veniam.\r\n", + "address": "4 Herzl Street", + "city": "Sisquoc", + "state": "Michigan", + "zip": 13348, + "country": "Algeria", + "email": "meredithkennedy@scentric.com", + "phone": "(805) 554-3669", + "color": "rgb(179,239,148)" + }, + { + "index": 352, + "name": "Wooten Sloan", + "first": "Allen", + "last": "Wade", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/derekebradley/73.jpg", + "boolean": false, + "guid": "dc87dc7f-bf6e-4633-9a8e-2e7ce98a216b", + "integer": 94, + "date": "Fri Mar 13 1998 22:52:34 GMT-0800 (PST)", + "shortText": "consectetur ipsum eu velit", + "mediumText": "Lorem commodo sit nostrud culpa esse deserunt laboris magna. Elit esse id Lorem ut.", + "longText": "Sunt veniam est ex duis sit amet eiusmod ullamco cupidatat cillum Lorem. Deserunt ex do mollit consequat elit. Nostrud voluptate proident do commodo Lorem fugiat nostrud minim anim excepteur ad magna.\r\nQui et velit consequat Lorem occaecat irure anim esse. Labore veniam exercitation do excepteur velit pariatur excepteur consectetur aute voluptate enim exercitation non deserunt. Mollit irure magna id elit laborum. Elit pariatur aute pariatur nulla deserunt. Deserunt sit consectetur anim tempor duis laborum do quis enim.\r\nDolore dolore nostrud voluptate ipsum qui. Ea laboris culpa proident duis officia sit. Non do pariatur aute elit dolor aliqua cillum. Lorem ullamco eiusmod laboris mollit sint tempor consectetur laborum laboris deserunt exercitation. Eu fugiat nulla irure excepteur aliqua enim et consequat culpa. Amet dolor excepteur proident labore mollit mollit pariatur culpa incididunt occaecat dolor aliqua aliquip dolor.\r\nIn qui enim cupidatat quis magna do qui aliquip magna. Proident culpa nostrud nulla eiusmod occaecat sit id pariatur labore voluptate aute veniam. Eu amet labore labore aliqua amet adipisicing commodo. Non commodo est ea reprehenderit fugiat est ullamco voluptate excepteur ipsum sint est.\r\nCupidatat dolor aliqua amet ipsum incididunt non consectetur duis proident aliqua sit. Occaecat aliqua labore commodo qui consequat reprehenderit ut voluptate. Sint velit minim mollit elit occaecat laboris aliqua dolor enim do.\r\n", + "address": "2 Sandford Street", + "city": "Levant", + "state": "Maine", + "zip": 74609, + "country": "Switzerland", + "email": "allenwade@scentric.com", + "phone": "(971) 515-2074", + "color": "rgb(55,67,137)" + }, + { + "index": 353, + "name": "Luella Hogan", + "first": "Flores", + "last": "Wolfe", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karachentsov/73.jpg", + "boolean": true, + "guid": "3e88723e-2180-4ee0-8c96-fd9c48538abd", + "integer": 65, + "date": "Thu Sep 03 1998 10:25:29 GMT-0700 (PDT)", + "shortText": "commodo reprehenderit anim", + "mediumText": "Magna in quis irure duis. Nisi duis non pariatur magna ipsum excepteur ea. Ea exercitation culpa commodo consectetur. Do cillum Lorem nisi ipsum nulla cupidatat officia sunt pariatur ea. Dolor deserunt enim reprehenderit in in.", + "longText": "Officia cillum proident consequat quis non dolor nisi id sit amet laborum sint. Elit enim ex laborum amet nulla qui. Ut amet eiusmod mollit id.\r\nEt fugiat laborum adipisicing laboris adipisicing. Sint ea est non ut laborum velit irure officia cupidatat excepteur. Eu cillum occaecat minim id proident incididunt.\r\nLaboris enim aliqua id et duis laborum dolore mollit proident. Culpa commodo dolor labore tempor minim nulla minim esse cupidatat do. Adipisicing ut non ullamco magna do commodo est dolore elit ea est eu. Est dolore duis Lorem culpa adipisicing. Tempor qui sunt qui et. Anim veniam esse consequat ut elit Lorem voluptate excepteur non culpa. Quis veniam Lorem aliqua culpa.\r\nNisi duis ex sunt magna enim proident et sint proident minim. In excepteur id pariatur ullamco. Nulla ea cupidatat sunt ut pariatur minim duis.\r\n", + "address": "2 Grafton Street", + "city": "Falconaire", + "state": "Kansas", + "zip": 39969, + "country": "S. Georgia and S. Sandwich Isls.", + "email": "floreswolfe@scentric.com", + "phone": "(961) 502-3921", + "color": "rgb(81,99,101)" + }, + { + "index": 354, + "name": "Mckee Tillman", + "first": "Patsy", + "last": "Odonnell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmeffess/73.jpg", + "boolean": true, + "guid": "3cc7cc1e-1856-4b5a-a9f7-0e938e0206e5", + "integer": 14, + "date": "Fri Jan 11 1985 09:25:30 GMT-0800 (PST)", + "shortText": "minim in proident", + "mediumText": "Duis eiusmod pariatur consectetur et laboris magna. Est aute cupidatat enim proident qui ea quis officia anim reprehenderit officia deserunt nostrud deserunt.", + "longText": "Qui occaecat irure veniam aliqua nisi Lorem exercitation in consequat nostrud fugiat. Magna cupidatat incididunt tempor in. Esse cillum ullamco minim et nisi tempor nostrud tempor. Fugiat duis veniam enim enim consequat. Incididunt anim fugiat in Lorem sunt sit fugiat. Do ut anim officia aliquip irure consectetur ipsum eu ex magna esse et exercitation. Reprehenderit irure velit sunt minim aute proident nisi ad enim tempor nostrud dolor.\r\n", + "address": "2 Dekalb Avenue", + "city": "Sattley", + "state": "Iowa", + "zip": 56105, + "country": "Brazil", + "email": "patsyodonnell@scentric.com", + "phone": "(991) 576-3320", + "color": "rgb(151,157,82)" + }, + { + "index": 355, + "name": "Tammy Mckenzie", + "first": "Araceli", + "last": "Villarreal", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bmovement/73.jpg", + "boolean": true, + "guid": "645a7c4c-a0cf-4361-9c6d-5d32d77d5500", + "integer": 69, + "date": "Sun Dec 24 2006 07:06:15 GMT-0800 (PST)", + "shortText": "anim laborum nisi", + "mediumText": "Incididunt consectetur culpa nisi Lorem eiusmod cillum non nisi tempor mollit irure nisi ut cupidatat. Proident non magna consectetur ut consequat occaecat est consectetur culpa aliqua cupidatat consequat ea. Commodo et veniam qui magna velit non deserunt exercitation proident Lorem eu non. Mollit eu laboris labore ipsum id nisi aute culpa dolore in magna ad cillum. Ea adipisicing Lorem ad irure exercitation amet aliqua esse.", + "longText": "Ea laboris in irure labore cillum. Lorem aliqua ut amet aliqua sint sunt officia adipisicing ipsum minim velit. Elit in reprehenderit occaecat et et elit sint. In consequat quis nulla cillum cillum sint ullamco do officia. Excepteur id fugiat ullamco elit adipisicing veniam deserunt tempor. Nisi dolor tempor amet irure in amet consequat ea. Sit tempor amet excepteur in tempor irure ut ipsum amet velit culpa dolor occaecat fugiat.\r\nLorem consequat deserunt irure veniam culpa fugiat incididunt eu sunt excepteur commodo sit adipisicing cillum. Magna ea mollit anim ullamco nisi do laboris duis aliquip excepteur labore reprehenderit dolor. Amet ea proident cupidatat cupidatat magna magna amet proident aute tempor. Officia non culpa tempor reprehenderit nostrud ut anim quis nisi laboris ipsum nostrud deserunt. Magna proident elit eiusmod et incididunt deserunt est ad anim occaecat enim tempor ex. Id veniam ad commodo ad proident reprehenderit. Veniam in culpa do dolore excepteur pariatur mollit.\r\nCupidatat ex occaecat nulla irure excepteur. Duis sit do nisi officia. Ea eu commodo magna aliquip ea sint aute dolor mollit laborum aute reprehenderit Lorem sit. Proident laboris incididunt sit in sint. Veniam nisi sunt laboris eu aliquip sunt reprehenderit irure ad reprehenderit. In ea ullamco ullamco amet cillum irure pariatur veniam.\r\nDolor deserunt sunt sunt aliqua consequat est deserunt culpa proident labore proident sit laborum. Cupidatat aute nostrud ad non consequat laboris. Cupidatat dolor magna et occaecat laboris. Ipsum magna id amet non consectetur adipisicing veniam. Aliqua anim pariatur nostrud anim in sint sit deserunt anim. Laborum dolor sunt anim sunt eiusmod consectetur do aliqua aute magna ad ea. Enim amet exercitation culpa deserunt proident.\r\nCommodo nisi officia commodo Lorem irure occaecat qui. Est eu Lorem et labore excepteur elit enim. Minim occaecat eu cupidatat labore ad deserunt irure officia quis enim. Consequat eiusmod labore minim ex ipsum velit ea veniam. Elit minim do non eiusmod cillum incididunt proident. In excepteur exercitation nisi aliquip adipisicing consequat qui.\r\n", + "address": "2 Richards Street", + "city": "Bancroft", + "state": "Vermont", + "zip": 63605, + "country": "Anguilla", + "email": "aracelivillarreal@scentric.com", + "phone": "(922) 535-2085", + "color": "rgb(123,74,237)" + }, + { + "index": 356, + "name": "Joyce Carney", + "first": "Vance", + "last": "Boyd", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taiyab/73.jpg", + "boolean": true, + "guid": "0714e7c1-db9c-4bc9-ae14-47d72e9f36b2", + "integer": 29, + "date": "Sat Jan 18 1986 13:37:09 GMT-0800 (PST)", + "shortText": "Lorem non cillum laborum culpa", + "mediumText": "Laboris Lorem anim cillum et deserunt nostrud laborum ex laborum laboris laborum sint nostrud. In anim aliqua pariatur cupidatat adipisicing esse ex nulla pariatur sunt velit laborum cupidatat. Culpa irure elit occaecat ea in aliqua. Aliqua ex sint anim elit aute enim consectetur ea culpa pariatur. Reprehenderit culpa nisi nostrud cillum sint ullamco mollit sit velit ea officia pariatur.", + "longText": "Minim magna ipsum excepteur irure non qui pariatur excepteur. Minim velit ea ullamco irure quis est duis velit est enim do labore. Irure laboris mollit commodo fugiat. Elit dolor ipsum non veniam culpa id esse.\r\nAnim excepteur deserunt cillum fugiat quis dolor aliqua cillum occaecat. Occaecat deserunt incididunt voluptate cupidatat eu nulla do consequat laborum id veniam laborum. Laboris adipisicing cupidatat laboris sint elit fugiat ipsum mollit laboris sint proident dolore officia. Pariatur ut laboris aliquip culpa irure magna officia velit velit occaecat. Duis ipsum duis occaecat aute magna sunt ex veniam dolore laborum aliqua.\r\nUllamco deserunt minim et qui consequat esse. Cillum do elit magna culpa exercitation occaecat tempor reprehenderit nostrud ex do. Ex laborum irure aliquip ipsum. Excepteur cupidatat laboris consequat sint esse est aute voluptate est minim.\r\n", + "address": "3 Suydam Place", + "city": "Wiscon", + "state": "Nebraska", + "zip": 24690, + "country": "Mayotte", + "email": "vanceboyd@scentric.com", + "phone": "(950) 499-2028", + "color": "rgb(151,255,141)" + }, + { + "index": 357, + "name": "Briggs Cash", + "first": "Mason", + "last": "Norton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rigelstpierre/73.jpg", + "boolean": true, + "guid": "06751f30-d76a-46ef-a97a-3d8233acee4e", + "integer": 36, + "date": "Wed Oct 22 1997 23:32:22 GMT-0700 (PDT)", + "shortText": "qui aliquip laborum", + "mediumText": "Velit eiusmod est incididunt sint ipsum qui ullamco amet. Elit est velit adipisicing occaecat velit nisi irure tempor enim exercitation tempor sunt nulla elit. Incididunt ad quis officia nostrud aliqua incididunt commodo. Duis ex quis sint mollit laboris sint in ipsum enim.", + "longText": "Nisi excepteur culpa ipsum cillum aute cupidatat nisi. Culpa aliqua in excepteur et elit eu est irure laboris amet pariatur. Eiusmod culpa do nostrud sunt velit ea aliquip laboris nulla occaecat quis amet elit cupidatat. Excepteur sit mollit fugiat laborum nostrud sint pariatur. Officia ullamco consequat ex est quis. Dolor est laboris sint eu in laborum culpa.\r\n", + "address": "3 Williams Avenue", + "city": "Marbury", + "state": "Florida", + "zip": 96679, + "country": "Northern Mariana Islands", + "email": "masonnorton@scentric.com", + "phone": "(988) 478-3734", + "color": "rgb(122,225,185)" + }, + { + "index": 358, + "name": "Frank Vance", + "first": "Eva", + "last": "Christian", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vlajki/73.jpg", + "boolean": false, + "guid": "90639571-dc94-4c8f-98c8-db8781d4d7e2", + "integer": 11, + "date": "Thu Jan 05 1984 02:00:59 GMT-0800 (PST)", + "shortText": "laboris non cillum laborum amet", + "mediumText": "Nulla consequat aute non non esse elit nostrud labore dolor consectetur. Fugiat culpa dolore commodo aute et enim exercitation reprehenderit. Mollit velit anim labore est dolor. Id fugiat proident qui in Lorem eiusmod. Officia labore reprehenderit nulla irure aute enim tempor sint mollit et.", + "longText": "Duis ad proident anim sint eu. Qui aute dolore minim nisi proident cillum consequat laboris. Aliquip sunt sunt irure eiusmod esse laboris amet ad nisi occaecat exercitation ullamco aliqua ex. Ipsum minim labore ut officia ut ut minim officia qui. Qui aliqua commodo nulla labore nulla aliqua sunt laboris ullamco anim. Enim exercitation labore excepteur et eiusmod Lorem fugiat sunt nulla enim aliquip magna. Excepteur esse et nisi in excepteur reprehenderit excepteur duis magna cupidatat labore exercitation adipisicing enim.\r\n", + "address": "2 Cypress Avenue", + "city": "Westwood", + "state": "New Jersey", + "zip": 64807, + "country": "Pitcairn", + "email": "evachristian@scentric.com", + "phone": "(933) 555-3019", + "color": "rgb(65,246,66)" + }, + { + "index": 359, + "name": "Bennett Fitzgerald", + "first": "Alyce", + "last": "Roth", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/leeiio/73.jpg", + "boolean": true, + "guid": "abc6eb23-4f14-4711-aaa1-0356ef6ac47e", + "integer": 79, + "date": "Mon Dec 15 1986 02:54:47 GMT-0800 (PST)", + "shortText": "veniam adipisicing velit magna deserunt", + "mediumText": "Laboris fugiat cupidatat ad aute laboris aliquip qui magna cupidatat cupidatat reprehenderit occaecat do.", + "longText": "Incididunt pariatur qui et ad adipisicing laborum. Aliqua eiusmod qui occaecat incididunt laboris sit. Amet ut commodo amet reprehenderit sit ex labore labore reprehenderit velit irure officia esse. Fugiat dolor ullamco sit ex ipsum aliqua irure aute dolore dolor.\r\n", + "address": "3 Howard Avenue", + "city": "Imperial", + "state": "Wisconsin", + "zip": 43410, + "country": "Saint Vincent and The Grenadines", + "email": "alyceroth@scentric.com", + "phone": "(930) 449-2969", + "color": "rgb(122,168,204)" + }, + { + "index": 360, + "name": "Garrett Lawson", + "first": "Marlene", + "last": "Hatfield", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/brad_frost/73.jpg", + "boolean": true, + "guid": "ea670adf-3aa0-4b5f-9ffc-4e448f9ad69b", + "integer": 63, + "date": "Sun Nov 16 1986 08:23:14 GMT-0800 (PST)", + "shortText": "aliqua sit aliquip id elit", + "mediumText": "Anim qui adipisicing enim est consequat duis qui aliquip. Elit excepteur tempor in eu ex exercitation. Dolor ex velit amet laboris. Sit non nisi anim ut et quis qui non irure elit pariatur nulla.", + "longText": "Ut pariatur magna duis cupidatat enim proident eiusmod tempor do aute Lorem non occaecat. Amet anim id quis cupidatat nulla exercitation nulla dolore eu irure Lorem anim incididunt. Laboris id dolore ullamco exercitation nostrud mollit pariatur Lorem. Consequat labore ea Lorem elit duis cupidatat nostrud do nulla. Elit amet proident fugiat commodo nostrud ipsum incididunt. Incididunt sunt qui laborum officia sit proident aute. Laboris laboris do est voluptate eu id officia labore amet aliquip eiusmod.\r\nLorem tempor elit nisi sunt. Laboris eu ea id id. Esse ad duis laboris elit tempor sint officia enim qui nulla elit aliquip cillum qui. Ex id culpa consequat laboris et voluptate esse irure.\r\nMollit sunt elit duis sunt reprehenderit aliquip id consequat elit ea amet Lorem non culpa. Et ad qui est mollit laboris mollit aute amet ut. Veniam occaecat mollit aliquip cillum consequat sit sint eu Lorem voluptate pariatur ad ad irure. Id aliquip velit eiusmod veniam anim duis proident do esse culpa non aliqua. Irure duis aute fugiat aliquip esse sint mollit aute non magna aliquip. Aliqua Lorem officia veniam cillum ad. Laboris reprehenderit adipisicing occaecat labore cupidatat cupidatat consectetur elit fugiat.\r\nUt amet tempor qui irure ex sunt nisi nostrud. Ipsum dolor cillum nisi mollit cupidatat adipisicing tempor ipsum veniam mollit anim aute nulla. Dolor aliqua occaecat aliqua eiusmod Lorem voluptate laborum. Aliquip sit quis culpa quis velit ut minim anim quis aliquip voluptate laborum. Sint qui exercitation elit occaecat consequat fugiat in nulla voluptate. Consequat fugiat culpa nulla qui Lorem cillum commodo elit aliqua proident enim dolore dolor excepteur. Voluptate pariatur ad culpa eiusmod ad nisi.\r\nSint eiusmod non reprehenderit proident Lorem anim nostrud id id. Adipisicing cupidatat magna commodo culpa quis amet sunt amet dolore veniam duis veniam duis occaecat. Cillum exercitation elit fugiat non. Consequat enim deserunt et nisi id. Ut occaecat est amet ea Lorem occaecat minim irure dolor nulla esse fugiat in aliqua. Commodo commodo occaecat duis consectetur sint ad ea exercitation adipisicing amet adipisicing aute duis.\r\n", + "address": "4 Elm Avenue", + "city": "Bluffview", + "state": "Washington", + "zip": 66639, + "country": "Iceland", + "email": "marlenehatfield@scentric.com", + "phone": "(944) 414-3916", + "color": "rgb(156,157,84)" + }, + { + "index": 361, + "name": "Rosalinda Barber", + "first": "Rosalind", + "last": "Little", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alsobrooks/73.jpg", + "boolean": true, + "guid": "301b4435-b804-43a6-b90e-8b509a8d7482", + "integer": 30, + "date": "Mon Dec 21 2009 13:14:30 GMT-0800 (PST)", + "shortText": "ea veniam dolor enim", + "mediumText": "Excepteur et labore esse commodo in. In irure quis qui veniam cillum. Reprehenderit aliqua velit cillum fugiat velit eiusmod ad ex consectetur occaecat.", + "longText": "Aliquip minim ex adipisicing tempor labore qui deserunt laborum consequat. Cillum excepteur id cupidatat minim ex. Consequat officia voluptate aliqua cupidatat qui.\r\n", + "address": "4 Centre Street", + "city": "Efland", + "state": "Oregon", + "zip": 37697, + "country": "Andorra", + "email": "rosalindlittle@scentric.com", + "phone": "(912) 415-2087", + "color": "rgb(158,187,61)" + }, + { + "index": 362, + "name": "Krystal Lane", + "first": "Kitty", + "last": "Hodge", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thekishpatel/73.jpg", + "boolean": true, + "guid": "8918af69-f5ee-41e7-b442-d3e13fa03f20", + "integer": 88, + "date": "Tue Apr 11 1978 05:39:13 GMT-0800 (PST)", + "shortText": "adipisicing quis dolore ullamco exercitation", + "mediumText": "Nulla ipsum mollit sunt ad fugiat officia labore velit Lorem elit id. Tempor magna aliquip nulla laborum labore ea voluptate.", + "longText": "Nostrud culpa pariatur mollit nisi labore aliquip enim nulla reprehenderit. Laborum magna ut voluptate in occaecat irure non magna non aliqua sunt commodo anim. Consectetur officia irure proident enim. Sit amet nulla duis minim cillum consequat labore anim cillum. Cillum minim voluptate commodo ex aute duis nulla do. Incididunt cupidatat occaecat commodo labore pariatur eu sit commodo fugiat proident exercitation sint est.\r\nSunt voluptate sunt quis pariatur excepteur et. Id exercitation veniam cupidatat incididunt quis commodo duis cupidatat enim laboris elit. Consectetur irure reprehenderit consequat labore qui commodo quis excepteur irure nisi labore mollit Lorem voluptate. Aute dolore consectetur voluptate cillum anim qui incididunt.\r\n", + "address": "3 President Street", + "city": "Laurelton", + "state": "Illinois", + "zip": 32233, + "country": "Myanmar", + "email": "kittyhodge@scentric.com", + "phone": "(994) 498-3202", + "color": "rgb(139,225,83)" + }, + { + "index": 363, + "name": "Lorrie Carey", + "first": "Moran", + "last": "Bradshaw", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iqonicd/73.jpg", + "boolean": false, + "guid": "8040adde-26e1-416b-9053-e33e98a911a9", + "integer": 0, + "date": "Sat May 27 1972 21:40:25 GMT-0700 (PDT)", + "shortText": "culpa fugiat", + "mediumText": "Commodo cillum Lorem duis laborum minim cillum labore irure nostrud excepteur ut fugiat fugiat anim. Occaecat do eiusmod proident irure. Voluptate id nisi veniam tempor. Consequat non reprehenderit nulla esse irure magna pariatur occaecat minim nisi sunt velit. Labore reprehenderit ad consectetur et exercitation esse commodo.", + "longText": "Ad occaecat amet cillum nisi culpa pariatur sint Lorem ex. Ea ullamco Lorem officia exercitation pariatur cupidatat non mollit voluptate proident. Fugiat tempor irure pariatur eu minim nisi fugiat cupidatat. Ad anim ad qui occaecat. Do id veniam est cupidatat non proident occaecat deserunt fugiat incididunt.\r\nAliqua ea adipisicing elit est officia. Dolor voluptate ex labore proident aute laboris fugiat fugiat. Et fugiat enim qui et laborum sint. Aute excepteur ut ad duis. Voluptate duis adipisicing cupidatat ullamco magna.\r\nEu sint anim ea mollit ea labore pariatur velit adipisicing laborum velit. Irure eu ipsum consequat Lorem aute aliqua exercitation magna est anim commodo deserunt ea. Minim laboris adipisicing laboris in cillum culpa magna ea esse enim veniam. Non enim velit qui veniam commodo do incididunt. Aliqua quis reprehenderit consequat tempor ut excepteur fugiat ad tempor sit est ad est.\r\nUllamco quis et ea ex est deserunt ut. Adipisicing quis commodo laboris pariatur exercitation sit mollit labore. Dolore ut ad do magna incididunt ut adipisicing dolor eu eiusmod irure consectetur ipsum. Exercitation magna incididunt exercitation eiusmod. Esse veniam mollit Lorem qui eu officia aute.\r\n", + "address": "3 Hart Street", + "city": "Vandiver", + "state": "West Virginia", + "zip": 46407, + "country": "Saint Lucia", + "email": "moranbradshaw@scentric.com", + "phone": "(807) 537-3271", + "color": "rgb(54,143,210)" + }, + { + "index": 364, + "name": "Kirk Richard", + "first": "Delia", + "last": "Cervantes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamlechev/73.jpg", + "boolean": false, + "guid": "42e322d1-8045-429a-8eeb-8c62ba84d618", + "integer": 75, + "date": "Sat Nov 22 2003 15:26:15 GMT-0800 (PST)", + "shortText": "eu in consequat qui", + "mediumText": "Ullamco elit eu id excepteur incididunt Lorem ipsum pariatur laboris incididunt Lorem ullamco. Veniam consequat id sunt commodo fugiat magna velit laborum do Lorem enim in sunt. In non non magna deserunt duis nisi exercitation cupidatat eiusmod fugiat ea ex do in. Reprehenderit non consequat sit nostrud.", + "longText": "Dolor excepteur exercitation et ullamco. Non nulla duis qui cillum aliqua nostrud elit sunt dolor. Ex excepteur voluptate do minim non ea sint Lorem incididunt laborum sint. Officia elit labore reprehenderit proident. Laborum eiusmod occaecat eu nulla nisi voluptate. Dolor id in ullamco laborum ut ea est laborum adipisicing tempor et. Incididunt laborum consequat quis anim proident irure amet do.\r\n", + "address": "3 Amboy Street", + "city": "Tuttle", + "state": "Mississippi", + "zip": 27056, + "country": "Equatorial Guinea", + "email": "deliacervantes@scentric.com", + "phone": "(829) 471-3065", + "color": "rgb(94,71,106)" + }, + { + "index": 365, + "name": "Tate Mcdowell", + "first": "Adrian", + "last": "Mccullough", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elliotpopel/73.jpg", + "boolean": false, + "guid": "9e89b9c6-cf38-4f45-99ed-c7f3f5623d7c", + "integer": 86, + "date": "Sat Jul 23 1977 13:14:21 GMT-0700 (PDT)", + "shortText": "exercitation", + "mediumText": "In non excepteur est ex sunt laborum commodo esse ex. Elit officia laborum incididunt tempor consectetur ea incididunt duis aliqua culpa quis occaecat minim.", + "longText": "Aliquip nisi elit commodo quis exercitation aliquip et do magna quis aute excepteur tempor dolor. Laborum deserunt ullamco aute velit fugiat non labore aliquip. Non exercitation aliqua sunt eiusmod laborum occaecat cupidatat amet commodo enim occaecat amet. Duis laboris labore enim dolor nisi deserunt id cupidatat id. Deserunt esse Lorem minim proident laboris fugiat irure laborum consectetur cillum laborum proident ex. Nulla est excepteur nostrud eiusmod consectetur dolor magna nostrud elit dolore.\r\nElit magna do occaecat in ea elit reprehenderit cupidatat excepteur labore consequat est minim enim. Laborum culpa id commodo esse elit nulla. Irure nulla aliquip adipisicing deserunt nisi ut duis sint. Duis culpa id ex duis incididunt irure nostrud excepteur.\r\nDolor cillum nisi eiusmod ea Lorem sint. Aute duis proident aute in aliquip. Nostrud ut cupidatat ex sit pariatur tempor duis consequat quis quis mollit. Ullamco nostrud id consequat ut. Nostrud officia officia nostrud anim occaecat culpa laborum nostrud fugiat cupidatat irure ex aliqua tempor. Eiusmod pariatur adipisicing reprehenderit exercitation minim Lorem commodo deserunt velit dolor esse elit dolore. Mollit dolore ipsum eu do excepteur nulla magna ea aliquip ut velit aliquip exercitation.\r\nDuis dolor magna voluptate irure enim eu mollit commodo enim commodo nostrud. Laborum magna culpa aliqua aliquip consequat consequat incididunt sunt proident ex eu adipisicing. Sunt esse non exercitation excepteur quis quis fugiat. Qui anim sint nisi proident non quis cillum magna. Ipsum amet veniam anim esse sint et occaecat occaecat in.\r\nAdipisicing ad mollit consequat ut quis eiusmod exercitation quis elit veniam do. Lorem excepteur occaecat labore ex deserunt cupidatat irure officia dolor sunt adipisicing elit officia. Laboris labore aliqua aliqua dolore Lorem laboris ipsum in. Irure ut mollit adipisicing incididunt magna.\r\n", + "address": "2 Bedell Lane", + "city": "Chilton", + "state": "Rhode Island", + "zip": 97237, + "country": "Tanzania", + "email": "adrianmccullough@scentric.com", + "phone": "(810) 599-3339", + "color": "rgb(178,126,71)" + }, + { + "index": 366, + "name": "Terry Romero", + "first": "Barrett", + "last": "Burgess", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/diesellaws/73.jpg", + "boolean": true, + "guid": "f92c32bc-6e74-46d1-85b4-49fefcf41773", + "integer": 59, + "date": "Thu Mar 25 2004 20:56:10 GMT-0800 (PST)", + "shortText": "amet ex aliqua dolor", + "mediumText": "Ullamco mollit in excepteur et sit do ad nulla in ex. Deserunt dolore elit velit est cillum irure non dolor consectetur pariatur adipisicing aute qui officia. Quis minim cillum ex reprehenderit Lorem eu non consequat dolor nisi consequat qui. Ex do eu ad velit ad do ut dolor aliquip id. Aliqua ullamco elit cupidatat laborum laborum ut velit quis aliquip.", + "longText": "In duis aute elit nostrud sint ut veniam. Aute sunt tempor laborum et consectetur. Incididunt qui excepteur dolor proident in et aliqua anim nisi magna incididunt duis fugiat. Irure amet laboris excepteur consequat dolore est magna. Eu velit dolore velit eiusmod id mollit esse dolore ullamco enim aute reprehenderit commodo occaecat. Ea quis cillum cillum ea consequat dolor non ea aute ipsum.\r\nDolore qui consectetur Lorem deserunt cupidatat pariatur est magna consectetur veniam. Pariatur ullamco nostrud commodo cillum fugiat cillum id ipsum ad. Occaecat laboris irure est nostrud proident ipsum aliqua cillum fugiat nulla enim.\r\n", + "address": "2 Whitney Avenue", + "city": "Weeksville", + "state": "Georgia", + "zip": 31104, + "country": "Slovak Republic", + "email": "barrettburgess@scentric.com", + "phone": "(946) 534-2498", + "color": "rgb(219,133,212)" + }, + { + "index": 367, + "name": "Karen Collins", + "first": "Barton", + "last": "Diaz", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/juanpablob/73.jpg", + "boolean": true, + "guid": "98c26038-07d2-4135-bbd2-9a3f427c12e0", + "integer": 8, + "date": "Sat Sep 17 2005 00:39:48 GMT-0700 (PDT)", + "shortText": "aute aute nulla Lorem", + "mediumText": "Aliqua aliquip adipisicing veniam aliqua magna adipisicing dolor officia nisi nulla non voluptate ut.", + "longText": "Qui aliqua culpa sunt ea eu ipsum velit reprehenderit. Do eu veniam ad velit proident ea ea ut cupidatat elit sunt. Nisi cillum est tempor anim veniam. Sit nostrud exercitation veniam minim magna. Esse veniam amet est cillum dolore magna sunt ea minim aliqua incididunt reprehenderit est. Nulla pariatur consectetur officia aliqua veniam irure labore minim dolor amet cupidatat anim sint.\r\nCulpa id amet esse officia. Officia esse ex cillum velit. Cupidatat in in adipisicing exercitation deserunt. Amet id adipisicing ipsum deserunt.\r\n", + "address": "4 Garland Court", + "city": "Martinez", + "state": "New Mexico", + "zip": 87856, + "country": "Iraq", + "email": "bartondiaz@scentric.com", + "phone": "(915) 446-2455", + "color": "rgb(198,214,168)" + }, + { + "index": 368, + "name": "Carly Kirkland", + "first": "Malone", + "last": "West", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/whale/73.jpg", + "boolean": true, + "guid": "a0fe6dd2-da36-4fe8-9172-64d79b76016a", + "integer": 40, + "date": "Thu Sep 03 2009 05:16:20 GMT-0700 (PDT)", + "shortText": "dolor culpa", + "mediumText": "Incididunt nulla est do proident qui culpa ea non eu et velit.", + "longText": "Quis non exercitation in cupidatat ad. Irure pariatur anim magna est elit excepteur nulla elit est quis nisi tempor quis. Sint irure consectetur consequat nostrud. Excepteur officia eiusmod reprehenderit sit irure aliqua id minim esse consectetur dolore.\r\nIncididunt incididunt sint magna excepteur quis reprehenderit qui pariatur dolore magna est. Pariatur exercitation minim et culpa consequat eiusmod cillum nostrud Lorem cupidatat. Amet labore amet laborum qui qui id laborum. Officia magna ipsum proident mollit deserunt sit veniam nostrud reprehenderit do laborum voluptate. Excepteur laboris excepteur pariatur proident pariatur minim dolor. Fugiat veniam nostrud ut non duis fugiat ex culpa. Velit enim culpa voluptate culpa reprehenderit officia irure velit ad qui veniam non exercitation.\r\nLaborum fugiat ea ex sint. Veniam labore duis non sunt ad reprehenderit voluptate irure voluptate commodo elit non. Eiusmod labore elit magna irure dolor aliquip.\r\nDolore qui occaecat magna ex amet irure officia adipisicing consequat Lorem proident reprehenderit sint. Laboris esse eiusmod quis ex sunt dolor ipsum sunt Lorem labore laborum id eu. Quis dolore qui quis exercitation minim nostrud do aliquip qui deserunt commodo aute fugiat aliqua. Pariatur proident eiusmod pariatur sit esse eiusmod aliquip fugiat exercitation culpa duis eiusmod. Mollit pariatur commodo ex qui et incididunt.\r\n", + "address": "2 Livonia Avenue", + "city": "Bartley", + "state": "Arizona", + "zip": 65737, + "country": "Congo", + "email": "malonewest@scentric.com", + "phone": "(884) 560-3387", + "color": "rgb(203,128,144)" + }, + { + "index": 369, + "name": "Cline Porter", + "first": "Villarreal", + "last": "Berg", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kalmerrautam/73.jpg", + "boolean": true, + "guid": "bc0ae406-a0b0-46b8-a78c-e814bf6e352a", + "integer": 34, + "date": "Sat Dec 17 2011 17:11:11 GMT-0800 (PST)", + "shortText": "aliquip", + "mediumText": "Sit eu exercitation deserunt fugiat sunt. Duis amet Lorem sint fugiat aliquip sint nisi nulla officia. Mollit magna esse magna mollit ex aliquip sit voluptate occaecat. Sint ea reprehenderit pariatur ut proident consequat tempor do irure.", + "longText": "Sunt sunt culpa enim anim reprehenderit minim occaecat officia est exercitation exercitation. Magna irure consequat aliquip nisi sint. Ad excepteur et exercitation consectetur. Nulla magna pariatur commodo velit consectetur elit sunt voluptate laborum eiusmod sint cupidatat proident ex.\r\nConsectetur minim aute in eu tempor enim laboris deserunt. Proident laboris fugiat cupidatat ullamco ex. Laboris et eu qui tempor nisi non anim magna sunt est commodo qui et. In sint eu quis ea. Adipisicing ad nisi non mollit officia elit. Reprehenderit veniam aute consequat qui aliqua incididunt.\r\n", + "address": "4 Willmohr Street", + "city": "Russellville", + "state": "Texas", + "zip": 61324, + "country": "Cocos (Keeling Islands)", + "email": "villarrealberg@scentric.com", + "phone": "(934) 457-2444", + "color": "rgb(128,225,98)" + }, + { + "index": 370, + "name": "Davidson Parker", + "first": "George", + "last": "Pittman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicoleglynn/73.jpg", + "boolean": true, + "guid": "4d0d0e84-953f-4ab2-819d-ae72aa4552f7", + "integer": 2, + "date": "Sat Jun 23 1979 15:10:33 GMT-0700 (PDT)", + "shortText": "adipisicing Lorem", + "mediumText": "Est ullamco qui est cupidatat magna velit cupidatat do sunt officia ad.", + "longText": "Velit enim nostrud et ut elit nostrud laboris mollit. Pariatur sit sint proident officia ea sunt consectetur occaecat esse velit. Nulla Lorem ad anim ut aute nostrud amet sit labore sint ullamco nisi ad.\r\nEsse proident in magna elit ex esse et consequat incididunt eiusmod officia. Occaecat labore ut aliqua sunt labore minim Lorem ut velit magna occaecat sit sunt. Commodo ut magna cillum minim.\r\nDolor cupidatat et ullamco velit elit labore. Sint dolore incididunt anim nisi aliquip. Ullamco id laboris cillum id enim cillum exercitation non.\r\nLaboris qui Lorem ipsum dolor proident exercitation consectetur commodo incididunt. Ad pariatur cillum et aute. Nulla cillum sint quis laboris fugiat do ullamco incididunt aliqua aliquip eu aute.\r\nLorem irure nisi magna ex do voluptate tempor consequat. Aliquip dolore ullamco laboris reprehenderit Lorem elit. Dolor esse minim veniam eu ex reprehenderit. Sit do irure anim ipsum id duis culpa laboris dolore velit cillum nulla amet dolor. Exercitation enim proident ut aliqua culpa ipsum. Aute ad irure ipsum exercitation fugiat ut. Labore non do incididunt nulla veniam ex exercitation nostrud enim fugiat.\r\n", + "address": "3 Stryker Court", + "city": "Bourg", + "state": "District Of Columbia", + "zip": 63976, + "country": "Saint Kitts and Nevis", + "email": "georgepittman@scentric.com", + "phone": "(812) 518-3391", + "color": "rgb(128,255,152)" + }, + { + "index": 371, + "name": "Ingram Ware", + "first": "Caitlin", + "last": "Hart", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rickdt/73.jpg", + "boolean": true, + "guid": "b6de624e-cbfa-436a-9fcb-b5d584616793", + "integer": 24, + "date": "Thu Feb 14 1974 18:30:07 GMT-0700 (PDT)", + "shortText": "tempor reprehenderit nulla quis", + "mediumText": "Qui id adipisicing do deserunt laboris anim. Eiusmod magna dolor labore fugiat aute amet commodo ad sit. Esse occaecat labore qui culpa aute pariatur commodo velit laborum enim voluptate. Consequat sunt labore cupidatat ex labore id exercitation ad deserunt quis laboris et dolor.", + "longText": "Et consequat duis excepteur occaecat reprehenderit labore dolor nostrud. Aliqua irure ullamco reprehenderit incididunt dolore aliquip eiusmod. Et et in commodo quis.\r\nFugiat fugiat amet qui deserunt incididunt consequat ex anim culpa Lorem. Magna cillum incididunt ut consectetur esse quis veniam nulla aliqua esse velit consequat ipsum. Veniam ut amet officia tempor aliquip ad ad ad commodo ut et. Ad esse mollit adipisicing adipisicing cillum.\r\nUllamco dolore ullamco adipisicing in duis enim eiusmod sit. Proident nisi nostrud ea ipsum. Aliquip officia est ut Lorem ad incididunt qui tempor aliquip aute non esse. Id culpa ipsum proident duis eu sint elit eiusmod esse quis veniam nulla mollit. Elit mollit pariatur occaecat sunt duis et ipsum quis pariatur consequat ad culpa deserunt ex.\r\n", + "address": "2 Elliott Place", + "city": "Moscow", + "state": "Virgin Islands", + "zip": 16190, + "country": "Spain", + "email": "caitlinhart@scentric.com", + "phone": "(802) 458-3217", + "color": "rgb(245,222,100)" + }, + { + "index": 372, + "name": "Rodriguez Herring", + "first": "Blevins", + "last": "Richards", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/funwatercat/73.jpg", + "boolean": false, + "guid": "16027d94-5563-418b-b92e-879c2bfe66a2", + "integer": 27, + "date": "Thu Aug 04 1977 16:52:59 GMT-0700 (PDT)", + "shortText": "ea incididunt commodo", + "mediumText": "Fugiat culpa duis velit ullamco cupidatat esse pariatur deserunt laborum. Irure nostrud nulla culpa cupidatat est quis sunt veniam culpa. Aliqua anim mollit nulla aliquip quis dolore irure aliquip non est.", + "longText": "Anim laborum aliquip et culpa mollit eiusmod laboris. Consectetur tempor deserunt ullamco cillum elit sunt esse ut ullamco do aliquip. Irure pariatur occaecat id deserunt fugiat irure Lorem tempor excepteur ut dolor cupidatat reprehenderit adipisicing.\r\nIpsum sit ipsum aute ex sint magna commodo in anim enim consequat occaecat nisi. Qui do pariatur do ea. Consequat cupidatat sit aute fugiat qui laboris culpa elit irure excepteur. Duis ea elit et aliqua qui ipsum commodo proident adipisicing duis tempor. Duis ad nulla dolore minim anim dolore aute amet tempor.\r\nExercitation pariatur mollit cupidatat adipisicing deserunt pariatur incididunt. Sit deserunt consequat nisi do irure et duis quis. Cupidatat ea et ut velit ullamco ad dolore fugiat voluptate cillum.\r\nDolore ipsum anim nisi voluptate id ad non do dolor cupidatat duis dolor in. Excepteur esse aliquip ex dolor aute adipisicing duis dolore. Mollit amet deserunt occaecat qui cupidatat do et ea reprehenderit qui.\r\n", + "address": "2 Mill Street", + "city": "Sunriver", + "state": "Puerto Rico", + "zip": 60210, + "country": "Guinea-Bissau", + "email": "blevinsrichards@scentric.com", + "phone": "(880) 569-2358", + "color": "rgb(141,69,176)" + }, + { + "index": 373, + "name": "Larsen Petersen", + "first": "Kayla", + "last": "Wolf", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ssiskind/73.jpg", + "boolean": false, + "guid": "a7e99e07-e0c7-499a-a66b-a5b931143a55", + "integer": 25, + "date": "Fri Nov 24 1995 21:45:58 GMT-0800 (PST)", + "shortText": "elit exercitation", + "mediumText": "Minim in laboris culpa cupidatat ea nostrud sunt id dolore officia ea ipsum sit.", + "longText": "Id amet fugiat voluptate labore ea. Velit fugiat qui magna cillum ullamco duis eu qui pariatur. Do laboris irure nulla id. Minim enim commodo non ut sint. Consequat ut in consequat laborum pariatur commodo consectetur irure.\r\nDolor in aute mollit anim. Laboris incididunt occaecat ipsum Lorem velit nisi anim sunt consectetur. Occaecat aliquip ex irure adipisicing. Culpa elit dolore deserunt nisi. Laboris quis nulla in incididunt culpa proident culpa Lorem ea. Incididunt eiusmod culpa Lorem in cillum amet eu aute qui anim et qui sunt et.\r\nAmet veniam adipisicing minim minim proident sit commodo reprehenderit. Duis consequat do ex mollit minim consectetur. Nulla cillum enim esse sit commodo ad cupidatat ipsum veniam aliquip sunt. Ut dolore ullamco velit est minim laboris incididunt consequat.\r\nVoluptate excepteur Lorem ut id minim incididunt quis proident cupidatat consequat sunt magna dolor. Nostrud aliqua laborum exercitation dolor Lorem. Magna adipisicing cupidatat anim reprehenderit mollit aliquip esse nisi magna est. Laboris mollit consectetur ut tempor minim excepteur fugiat do consectetur tempor. Enim fugiat tempor labore occaecat elit est minim. Enim ex quis pariatur est eiusmod.\r\nDo velit nisi enim adipisicing qui consectetur reprehenderit aute occaecat exercitation consectetur. Cupidatat proident aute sit aliqua cupidatat velit adipisicing occaecat eu sint et proident ad quis. Qui laboris dolore id proident mollit labore aliqua sint aliquip. Minim reprehenderit consequat est voluptate proident irure aliqua reprehenderit do nisi. Nulla culpa culpa eu ea laborum minim ad culpa Lorem enim. Aliqua officia ut id et laboris quis eiusmod ex consequat aliquip voluptate.\r\n", + "address": "4 Sunnyside Avenue", + "city": "Jacksonwald", + "state": "Maryland", + "zip": 86841, + "country": "Cameroon", + "email": "kaylawolf@scentric.com", + "phone": "(905) 565-3468", + "color": "rgb(60,235,69)" + }, + { + "index": 374, + "name": "Holt Oconnor", + "first": "Newman", + "last": "Skinner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_purplebunny/73.jpg", + "boolean": true, + "guid": "b20aa0b1-320a-4487-8af0-78e7cbf30443", + "integer": 29, + "date": "Sun Apr 26 1981 19:50:41 GMT-0700 (PDT)", + "shortText": "non duis elit", + "mediumText": "Esse fugiat ut incididunt fugiat minim enim sit. Aliquip amet incididunt enim quis culpa et ut incididunt eu officia mollit adipisicing ex. Tempor velit magna deserunt voluptate occaecat id laborum occaecat labore id dolore.", + "longText": "Ut deserunt ut minim consequat. Non aute commodo minim proident ex ex id. Consectetur sunt reprehenderit consectetur Lorem eu sit ut reprehenderit aliqua eu occaecat.\r\nEiusmod occaecat dolor mollit adipisicing aute enim do. Aliqua ut sit tempor velit sunt. Minim eiusmod qui aute ea quis dolor et dolor excepteur qui sit eu incididunt qui. Ex id incididunt nisi sint dolore laboris reprehenderit officia velit.\r\nCupidatat dolor nostrud reprehenderit irure aliquip minim minim voluptate in Lorem labore eiusmod proident minim. Commodo reprehenderit eu velit magna fugiat ad cillum in deserunt elit tempor est commodo. Pariatur aliqua dolore proident cillum ex laboris culpa proident irure velit reprehenderit. Irure sit ad ipsum mollit ex. Reprehenderit nulla sit adipisicing excepteur dolore magna ullamco quis laborum minim enim ut.\r\nEnim sit Lorem nulla adipisicing ipsum cillum pariatur cillum aute culpa proident non Lorem dolor. Ea cupidatat anim labore duis nisi et ex id proident tempor. Qui sunt est aliqua in non do ea fugiat. Aute aliqua consectetur sunt culpa nisi sunt. Ipsum nulla quis ad ut elit proident ad culpa deserunt enim elit ea. Ea sint ea ipsum velit esse labore labore est ex aliquip nulla fugiat id dolor. Officia sunt ipsum est officia laborum in ea eiusmod irure laborum ea id magna non.\r\nAliquip nostrud nisi dolor aliquip commodo. Enim ex labore velit anim nisi consectetur excepteur labore reprehenderit. Lorem exercitation ut cillum et magna commodo labore esse nostrud duis Lorem. Cillum incididunt deserunt eu in cupidatat. Veniam cillum culpa voluptate irure cillum sit veniam elit velit labore. Dolore voluptate commodo labore nisi anim esse veniam deserunt sint anim amet velit.\r\n", + "address": "2 Neptune Avenue", + "city": "Croom", + "state": "Massachusetts", + "zip": 45897, + "country": "Niger", + "email": "newmanskinner@scentric.com", + "phone": "(895) 579-2625", + "color": "rgb(213,132,55)" + }, + { + "index": 375, + "name": "Ray Mcdonald", + "first": "Gladys", + "last": "Hamilton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linkthief/73.jpg", + "boolean": true, + "guid": "129213d5-185b-462e-9d98-ec5d7ebbf584", + "integer": 29, + "date": "Fri Oct 24 2008 13:24:33 GMT-0700 (PDT)", + "shortText": "sit in", + "mediumText": "Sit ut sit ut ullamco pariatur.", + "longText": "Nulla veniam officia ipsum cupidatat est sit deserunt officia eiusmod. Ut aliquip mollit sint qui do laborum esse id. Cillum mollit Lorem laboris deserunt quis reprehenderit do deserunt excepteur ullamco cillum. Qui sit consequat velit ipsum elit non officia laborum eiusmod ad aliquip velit. Minim consectetur reprehenderit nisi irure ullamco occaecat ipsum.\r\nEu fugiat do in ad dolore reprehenderit aute ullamco sit non. Incididunt qui esse fugiat nisi excepteur eiusmod mollit non deserunt qui sunt do. Velit deserunt ex culpa sunt ipsum elit veniam aute. Dolor occaecat officia eiusmod sint sint non aute consectetur quis ea.\r\n", + "address": "4 Lacon Court", + "city": "Iberia", + "state": "Oklahoma", + "zip": 71131, + "country": "Malta", + "email": "gladyshamilton@scentric.com", + "phone": "(966) 483-3351", + "color": "rgb(155,104,148)" + }, + { + "index": 376, + "name": "Clay Langley", + "first": "Burris", + "last": "Randall", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ffbel/73.jpg", + "boolean": true, + "guid": "51f80793-c017-41ad-9079-d752d4d47d9e", + "integer": 53, + "date": "Mon Jun 07 1982 18:22:42 GMT-0700 (PDT)", + "shortText": "elit", + "mediumText": "Irure in cillum eiusmod do laboris. Magna sit consectetur elit quis dolore quis ea esse. Minim velit adipisicing consequat mollit veniam. Minim eiusmod laboris nisi mollit ea labore commodo ipsum et ullamco duis.", + "longText": "Sit est fugiat sit nostrud laboris veniam aliqua enim aliqua eu ex cillum. Incididunt occaecat minim consectetur duis eiusmod. Pariatur laborum nostrud dolore minim excepteur sunt pariatur aute. Do anim quis ad enim est sint minim dolore laboris in fugiat cupidatat mollit pariatur. Ipsum est dolor aliqua aute. Sunt proident duis pariatur qui veniam sunt. Ea anim consequat nostrud reprehenderit ea ad non.\r\n", + "address": "4 McClancy Place", + "city": "Nash", + "state": "Ohio", + "zip": 18742, + "country": "Antigua and Barbuda", + "email": "burrisrandall@scentric.com", + "phone": "(844) 495-2795", + "color": "rgb(161,56,157)" + }, + { + "index": 377, + "name": "Whitaker Duffy", + "first": "Consuelo", + "last": "Vaughn", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/labibjaffar/73.jpg", + "boolean": false, + "guid": "d79e9e47-4d77-47c0-9b13-a19147d76339", + "integer": 69, + "date": "Tue Apr 18 1989 16:24:01 GMT-0700 (PDT)", + "shortText": "adipisicing", + "mediumText": "Cillum mollit amet fugiat aliquip proident. Cillum veniam ut do anim eiusmod officia laborum enim voluptate commodo.", + "longText": "Aliquip labore non amet cillum ipsum ex non commodo enim eiusmod ea. Est non do nulla laborum minim nostrud esse exercitation fugiat eiusmod. Aliquip labore dolor ad duis velit nisi exercitation fugiat proident cupidatat Lorem elit ullamco dolore. Cupidatat enim sunt id veniam exercitation voluptate consectetur pariatur. Irure labore tempor sint adipisicing nisi anim. Proident officia minim amet sunt enim in officia dolor voluptate ea magna ullamco.\r\n", + "address": "4 Senator Street", + "city": "Emerald", + "state": "Nevada", + "zip": 95049, + "country": "Kazakhstan", + "email": "consuelovaughn@scentric.com", + "phone": "(820) 453-3820", + "color": "rgb(211,124,127)" + }, + { + "index": 378, + "name": "Millicent Brewer", + "first": "Carpenter", + "last": "French", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tnrzdmr/73.jpg", + "boolean": true, + "guid": "fc81e8c8-56bf-4cc7-9a99-bc5e5336cc44", + "integer": 10, + "date": "Mon Dec 20 2004 03:29:39 GMT-0800 (PST)", + "shortText": "cillum elit dolore id", + "mediumText": "Consectetur laboris velit culpa nisi est nostrud ea laboris et. Voluptate incididunt qui cillum velit occaecat nisi deserunt. Ut nisi do veniam sunt deserunt adipisicing nostrud nostrud eu nulla consectetur amet elit.", + "longText": "Enim aliquip ipsum voluptate ut adipisicing anim dolor. Est est nisi est ex fugiat labore aute proident nisi amet deserunt anim nisi dolore. Eiusmod elit Lorem et officia cillum in proident cillum sint do. Laboris dolore ad cupidatat anim et eu.\r\nIn aute eiusmod esse commodo officia culpa Lorem quis laboris. Ipsum pariatur pariatur dolore amet ipsum amet ex laboris laboris. Magna elit sunt Lorem magna ea laborum non voluptate eu velit irure id excepteur. Adipisicing non pariatur culpa sit tempor ea anim officia aute. Magna eu cupidatat sint nostrud veniam sunt irure non. Lorem mollit eiusmod ea magna qui consectetur quis aliqua nulla nulla. Ipsum deserunt cupidatat irure fugiat et commodo ut.\r\nVelit anim eiusmod Lorem incididunt id deserunt mollit voluptate. Commodo id excepteur id occaecat sit. Qui amet proident ipsum est aute culpa et mollit et nulla occaecat minim minim. Magna ut enim exercitation laborum deserunt occaecat enim sunt veniam aliquip exercitation elit et. Nulla enim tempor fugiat eiusmod qui laborum ad est minim incididunt reprehenderit voluptate ad reprehenderit. Officia exercitation reprehenderit aliquip in id Lorem laboris laboris ipsum laborum minim ullamco eiusmod.\r\nConsectetur consequat irure consectetur reprehenderit aliqua quis ea fugiat ullamco reprehenderit. Fugiat fugiat elit voluptate in aliqua qui excepteur duis ipsum veniam occaecat eu sint amet. Aliquip deserunt ea ipsum ea pariatur in magna dolore voluptate.\r\nEnim eiusmod laboris officia exercitation irure laboris sit adipisicing non tempor nostrud officia. Quis ut esse deserunt qui laborum do velit eu amet dolore. Consequat adipisicing nulla officia ipsum veniam eiusmod. Occaecat deserunt veniam tempor sint labore nisi irure. Ullamco ad eu pariatur commodo aute ea cupidatat et consequat do commodo tempor. Adipisicing eiusmod culpa nostrud commodo adipisicing irure dolore aliquip labore. Ullamco commodo mollit consequat incididunt ut in officia occaecat voluptate.\r\n", + "address": "3 Drew Street", + "city": "Enetai", + "state": "Montana", + "zip": 76072, + "country": "Bahrain", + "email": "carpenterfrench@scentric.com", + "phone": "(981) 464-3639", + "color": "rgb(116,120,98)" + }, + { + "index": 379, + "name": "Blanchard Solis", + "first": "Kristie", + "last": "Cabrera", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyjantz/73.jpg", + "boolean": false, + "guid": "c2c84ffa-4a75-48e1-998f-924681ab4240", + "integer": 1, + "date": "Sat Jul 09 1988 08:58:08 GMT-0700 (PDT)", + "shortText": "excepteur velit quis dolore amet", + "mediumText": "Culpa magna fugiat est consequat deserunt elit eiusmod ullamco. Non esse consectetur id amet excepteur magna culpa mollit ea veniam elit.", + "longText": "Nulla et laboris qui aute commodo sunt enim occaecat ad eu. Enim eu consequat in id irure minim. Id pariatur commodo duis ea aute deserunt. Cillum consequat ea nostrud cillum proident.\r\n", + "address": "3 Aitken Place", + "city": "Germanton", + "state": "California", + "zip": 10214, + "country": "India", + "email": "kristiecabrera@scentric.com", + "phone": "(870) 486-2499", + "color": "rgb(60,117,146)" + }, + { + "index": 380, + "name": "Armstrong Leon", + "first": "Wolfe", + "last": "Hansen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ibrahemaq/73.jpg", + "boolean": true, + "guid": "ae0fcdb0-49fc-4ff8-85f2-7414f67b99f6", + "integer": 60, + "date": "Fri Feb 27 1970 07:01:10 GMT-0800 (PST)", + "shortText": "velit", + "mediumText": "Laboris adipisicing consectetur qui do nostrud occaecat in consectetur sit. Esse nisi commodo voluptate magna eu nisi fugiat amet nostrud.", + "longText": "Sunt ut labore sint sint labore dolor ullamco cupidatat velit tempor ea cillum. Veniam sit ex dolor sint irure ut. Nulla culpa ullamco ut ullamco tempor consectetur pariatur adipisicing reprehenderit laborum nostrud sint.\r\nEnim nisi aliquip pariatur non laboris ea. Aute aute pariatur commodo tempor sint pariatur quis ad ea pariatur Lorem cupidatat aute consectetur. Laboris ad laboris in cillum proident nostrud mollit consectetur irure nisi magna. Dolor nisi amet anim esse voluptate ipsum minim officia ut ex laboris cillum sunt elit. Tempor quis ex ullamco pariatur officia. Ad excepteur enim ea laborum id officia aliquip cillum est. Do ut labore aliquip dolor sit commodo.\r\nMinim excepteur esse esse enim proident eiusmod reprehenderit proident qui amet. Lorem culpa proident reprehenderit officia tempor magna sunt deserunt qui velit voluptate sunt. Ad ex nulla dolore duis veniam exercitation enim dolore excepteur consequat laborum officia ea fugiat. Et proident eiusmod incididunt quis do fugiat consectetur consectetur esse culpa magna magna.\r\nIn excepteur eu esse duis et excepteur. Qui incididunt eu dolore tempor pariatur occaecat. Dolor ex voluptate ut incididunt est mollit mollit aliqua Lorem sunt est irure ullamco in. Id culpa amet voluptate do aliquip laborum sit duis anim occaecat ea adipisicing do.\r\n", + "address": "4 Kent Street", + "city": "Carlton", + "state": "Marshall Islands", + "zip": 34631, + "country": "Qatar", + "email": "wolfehansen@scentric.com", + "phone": "(834) 587-3684", + "color": "rgb(135,161,252)" + }, + { + "index": 381, + "name": "Kerry Emerson", + "first": "Hurst", + "last": "Gilliam", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/croakx/73.jpg", + "boolean": false, + "guid": "454852cf-301c-42cc-88a5-fef2dce8ac2d", + "integer": 54, + "date": "Mon Jan 15 1990 07:32:08 GMT-0800 (PST)", + "shortText": "amet ullamco", + "mediumText": "Sunt tempor irure nulla do esse aliqua. Velit fugiat incididunt aliqua voluptate nisi qui ut.", + "longText": "Do labore aute veniam voluptate reprehenderit Lorem cupidatat excepteur est cupidatat adipisicing irure. Veniam consectetur fugiat esse et. Excepteur magna dolore duis ea occaecat. Voluptate occaecat id occaecat velit nostrud.\r\nFugiat sint eiusmod reprehenderit magna consequat esse. Dolor sint officia aliquip occaecat occaecat qui ipsum magna cupidatat excepteur ad et est laborum. Ut consectetur ex proident elit.\r\nAdipisicing incididunt excepteur ea labore proident proident et id in reprehenderit ut occaecat et. Et aliquip incididunt enim ea enim ea minim ut eiusmod. Velit mollit sunt voluptate laboris aliquip incididunt. Duis laborum do adipisicing non tempor nisi minim do aliquip laboris irure tempor ad dolore. Aliqua amet adipisicing eu Lorem esse fugiat fugiat velit.\r\nSunt irure ex reprehenderit nostrud minim magna. Commodo nostrud mollit pariatur reprehenderit consequat occaecat aliqua. Reprehenderit id non magna nisi amet sunt incididunt deserunt dolor quis cupidatat adipisicing voluptate sunt. Tempor proident magna amet culpa est est. Mollit sint eiusmod reprehenderit est. Lorem do culpa ut enim quis enim cillum elit ullamco deserunt fugiat commodo dolor.\r\n", + "address": "3 Vandam Street", + "city": "Carlos", + "state": "Indiana", + "zip": 18552, + "country": "Vatican City State (Holy See)", + "email": "hurstgilliam@scentric.com", + "phone": "(883) 509-3820", + "color": "rgb(92,147,218)" + }, + { + "index": 382, + "name": "Rosanna Mercer", + "first": "Jeannie", + "last": "Harrington", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_dukex/73.jpg", + "boolean": true, + "guid": "81b02f40-06df-4e1f-bb59-400a488d75c1", + "integer": 9, + "date": "Thu Apr 29 1982 09:20:09 GMT-0700 (PDT)", + "shortText": "velit exercitation laborum excepteur nulla", + "mediumText": "Lorem minim consequat sunt eu commodo. Irure occaecat do irure ex dolore. Dolore consequat occaecat aliqua aliqua do incididunt consectetur in et eiusmod. Laboris incididunt esse magna aliquip excepteur sint quis ipsum consectetur aute labore. Et non consequat reprehenderit ipsum incididunt nisi do.", + "longText": "Dolor esse nostrud in culpa. Elit cillum cupidatat cillum aute nulla labore sint aliquip enim exercitation. Nulla do tempor labore sit adipisicing. Ex sint deserunt in pariatur veniam. Ea do do aliqua cillum id mollit duis elit aute eiusmod pariatur cupidatat duis anim.\r\nCulpa officia ea amet non non nulla occaecat quis ut Lorem eiusmod velit ad ut. Ex deserunt ut pariatur excepteur fugiat dolor ex aute elit officia amet consectetur consectetur excepteur. Dolor culpa pariatur proident anim reprehenderit velit laboris velit aliquip.\r\nSit velit amet laboris incididunt qui excepteur irure excepteur. Nulla adipisicing pariatur enim nisi. Dolore ea veniam adipisicing mollit eiusmod. Eu sit ea in consequat proident ex magna veniam pariatur quis aute aliquip sint. Ullamco irure nisi anim tempor.\r\n", + "address": "3 Brooklyn Road", + "city": "Northchase", + "state": "Tennessee", + "zip": 58954, + "country": "Malaysia", + "email": "jeannieharrington@scentric.com", + "phone": "(869) 440-3471", + "color": "rgb(54,179,184)" + }, + { + "index": 383, + "name": "Hudson Gill", + "first": "Erma", + "last": "Medina", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gregsqueeb/73.jpg", + "boolean": true, + "guid": "5cc52dab-f9b6-4d23-9718-12faaca42aaa", + "integer": 29, + "date": "Fri Nov 07 1975 23:03:48 GMT-0800 (PST)", + "shortText": "elit consequat", + "mediumText": "Exercitation aliqua fugiat Lorem fugiat amet est elit. Incididunt voluptate sunt sint ut veniam. Non velit deserunt duis est excepteur consectetur excepteur commodo non ex consequat. Non et ullamco ipsum eiusmod.", + "longText": "Sint ea duis commodo sunt elit ut nulla. Tempor consectetur id aliqua voluptate. Anim sint occaecat nisi eu commodo nisi magna deserunt commodo fugiat quis aliqua.\r\nEiusmod aliquip incididunt dolore elit et fugiat in ex. Qui cupidatat duis tempor amet aute. Nulla et cillum culpa irure consequat sit exercitation ex quis ex. Qui sit ipsum non laboris esse cupidatat eu excepteur. Incididunt tempor sit in fugiat tempor excepteur culpa veniam in incididunt reprehenderit. Ad quis enim cillum quis anim.\r\n", + "address": "2 Decatur Street", + "city": "Hardyville", + "state": "Palau", + "zip": 41443, + "country": "Belize", + "email": "ermamedina@scentric.com", + "phone": "(806) 595-3481", + "color": "rgb(144,140,116)" + }, + { + "index": 384, + "name": "Dominique Valenzuela", + "first": "Stacey", + "last": "Foreman", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/csmnng/73.jpg", + "boolean": true, + "guid": "11147a9a-0058-436d-96c3-f7ae0639677c", + "integer": 82, + "date": "Sat Jul 25 1992 11:14:15 GMT-0700 (PDT)", + "shortText": "excepteur", + "mediumText": "Enim aliqua aute nostrud ad veniam eiusmod Lorem occaecat sit magna aliqua. Ad ut ipsum dolore pariatur officia sunt tempor velit minim ea consequat commodo deserunt cupidatat. Aliqua ad nostrud aliqua officia mollit ut dolor aliqua est mollit elit ad in veniam. Dolor et nostrud elit ea proident dolore excepteur sit adipisicing cillum enim. Reprehenderit mollit do adipisicing excepteur ullamco exercitation culpa ipsum in eu aliqua.", + "longText": "Reprehenderit ullamco esse aute et laborum pariatur consectetur tempor. Consequat eiusmod fugiat commodo incididunt laborum. Et eiusmod cupidatat incididunt dolor cupidatat sint in nisi anim duis sit labore ex occaecat. Excepteur ipsum officia ut qui ad tempor eu ad cillum commodo.\r\nMagna quis nisi nostrud sint et eiusmod laborum laborum ut. In labore labore veniam anim labore laboris reprehenderit aliquip voluptate aute ullamco duis. Aute tempor magna elit elit aute adipisicing est consequat enim occaecat culpa.\r\nIn aliqua adipisicing aliquip do consequat ipsum Lorem. Nisi nulla velit mollit deserunt laboris elit magna ullamco sint magna anim ut ullamco. Aliquip commodo qui ipsum tempor amet nostrud sit aliquip qui eiusmod minim deserunt esse. Incididunt adipisicing irure excepteur reprehenderit id officia sit amet reprehenderit reprehenderit nostrud ut. Officia deserunt officia qui magna incididunt non cillum esse cupidatat dolor quis eiusmod. Cillum amet minim dolor ipsum anim officia velit aliqua adipisicing anim mollit. Irure enim laborum ex esse id magna dolore non nulla nisi excepteur ad nulla aute.\r\n", + "address": "3 McDonald Avenue", + "city": "Robbins", + "state": "Virginia", + "zip": 22185, + "country": "Singapore", + "email": "staceyforeman@scentric.com", + "phone": "(829) 412-3655", + "color": "rgb(214,140,189)" + }, + { + "index": 385, + "name": "Dolores Morgan", + "first": "Gaines", + "last": "Mullen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ogmenemre/73.jpg", + "boolean": false, + "guid": "ee76f873-95bb-4f4d-84fd-c7313d26386b", + "integer": 51, + "date": "Mon Feb 22 1999 15:26:58 GMT-0800 (PST)", + "shortText": "officia proident", + "mediumText": "Aliquip proident ad incididunt veniam.", + "longText": "Esse excepteur ex sunt id sit laborum. Ut ea qui esse esse qui aliqua ut ex in. Dolore magna laborum veniam magna non ad eiusmod et eiusmod deserunt tempor occaecat. Eiusmod voluptate ut do non. Deserunt est laborum eu aute deserunt eiusmod amet consectetur elit ullamco laboris elit.\r\nConsectetur aliquip reprehenderit est sunt do est sint ad deserunt dolor est. Pariatur id Lorem nostrud elit proident in nulla anim. Duis sunt veniam fugiat sunt aliquip ea eiusmod consectetur nulla consectetur quis.\r\n", + "address": "4 Village Road", + "city": "Springville", + "state": "Wyoming", + "zip": 48245, + "country": "Trinidad and Tobago", + "email": "gainesmullen@scentric.com", + "phone": "(832) 562-2069", + "color": "rgb(177,196,203)" + }, + { + "index": 386, + "name": "Washington Bates", + "first": "Mccray", + "last": "Davenport", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ionutmaxim/73.jpg", + "boolean": false, + "guid": "97224884-727c-4a89-b596-60fbca7914a7", + "integer": 34, + "date": "Thu Nov 13 1980 22:28:43 GMT-0800 (PST)", + "shortText": "enim nostrud", + "mediumText": "Sunt fugiat esse ad sint sint duis ex tempor enim excepteur ullamco. Dolor ipsum occaecat laborum enim. Nisi ex cillum ex culpa laborum proident esse minim incididunt anim est occaecat deserunt cillum. Excepteur aliqua dolore duis do non adipisicing anim excepteur. Sit aliquip ut nisi aliquip labore do officia proident amet esse deserunt laborum sunt veniam.", + "longText": "Aute magna amet irure mollit ex. Deserunt exercitation irure aute eiusmod aute occaecat mollit reprehenderit sit ea esse esse. Laborum cillum Lorem Lorem officia velit minim cillum reprehenderit tempor velit exercitation deserunt ad velit. Irure nulla aliqua ex cupidatat adipisicing cillum amet ex quis deserunt.\r\nVoluptate amet nisi incididunt eiusmod consequat et laboris consequat est voluptate sunt enim. Adipisicing nostrud pariatur aute commodo minim veniam. Anim mollit velit esse cupidatat aliquip exercitation est id est. Cillum incididunt nulla duis non incididunt dolore ipsum est culpa pariatur duis quis.\r\nAd commodo laborum ex voluptate commodo non fugiat ut. Id labore quis aute eiusmod deserunt cupidatat. Consequat irure eu velit aliqua reprehenderit consequat qui labore magna. Sunt ad ad sit irure laboris enim sint do eiusmod Lorem velit cupidatat labore enim. Exercitation veniam sint nulla excepteur id reprehenderit laboris qui et adipisicing. Anim occaecat duis cupidatat dolore labore id duis ad ipsum do.\r\nCulpa fugiat minim cupidatat nisi occaecat reprehenderit sit. Ipsum laboris incididunt tempor irure adipisicing veniam. Nisi laborum cupidatat anim quis fugiat velit ea ad commodo cupidatat. Aliquip esse eu deserunt sint.\r\n", + "address": "4 Lincoln Avenue", + "city": "Deercroft", + "state": "Colorado", + "zip": 53863, + "country": "Namibia", + "email": "mccraydavenport@scentric.com", + "phone": "(970) 600-2028", + "color": "rgb(55,74,60)" + }, + { + "index": 387, + "name": "Estela Dotson", + "first": "Brewer", + "last": "Barnett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teylorfeliz/73.jpg", + "boolean": false, + "guid": "ec7da2db-8a36-430c-bb60-68be4ca38e6f", + "integer": 50, + "date": "Tue Sep 10 1985 22:13:34 GMT-0700 (PDT)", + "shortText": "pariatur do deserunt enim velit", + "mediumText": "Nulla consequat incididunt sint do. Mollit dolor veniam sunt nisi ex consectetur eu excepteur officia culpa.", + "longText": "Veniam proident laboris fugiat id. Ex ut consectetur tempor pariatur duis quis veniam eiusmod amet cupidatat amet enim. Est consectetur exercitation deserunt tempor laboris dolor velit dolore consectetur. Amet anim excepteur sunt sunt ut exercitation minim. Cillum velit aliqua enim magna sunt cillum exercitation esse.\r\nFugiat magna eu nulla anim est voluptate pariatur dolore tempor esse. Nostrud adipisicing laborum ea sint sint aliquip deserunt culpa ipsum sunt. Dolor deserunt ex quis duis dolor sint labore. Et tempor eu cillum est aliqua non. Proident dolore irure est labore duis. Cupidatat ullamco magna excepteur et ex adipisicing ullamco consectetur.\r\n", + "address": "4 Batchelder Street", + "city": "Unionville", + "state": "Utah", + "zip": 19511, + "country": "Paraguay", + "email": "brewerbarnett@scentric.com", + "phone": "(824) 468-3108", + "color": "rgb(251,142,227)" + }, + { + "index": 388, + "name": "Griffith Calhoun", + "first": "Elma", + "last": "Delaney", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/73.jpg", + "boolean": false, + "guid": "bcdb801c-da6b-4e33-8b60-cb63d7391110", + "integer": 26, + "date": "Thu Oct 07 2004 12:09:01 GMT-0700 (PDT)", + "shortText": "incididunt commodo est", + "mediumText": "Ullamco aliqua excepteur nisi veniam dolor veniam excepteur aute est. Sit in reprehenderit laborum non laboris incididunt esse quis veniam ex. In sit laboris enim ex mollit. Esse nisi ipsum sit adipisicing velit excepteur reprehenderit pariatur excepteur aute Lorem consequat. Aliquip culpa dolor commodo consectetur ad aute amet eu tempor velit eiusmod.", + "longText": "Do velit in aliqua id eu occaecat duis ex officia amet. Aliquip consectetur fugiat quis labore. Commodo commodo veniam incididunt aute sit in dolore excepteur eiusmod mollit sint nisi laborum incididunt.\r\n", + "address": "3 Willow Street", + "city": "Craig", + "state": "Idaho", + "zip": 23018, + "country": "Macau", + "email": "elmadelaney@scentric.com", + "phone": "(820) 569-3637", + "color": "rgb(73,159,77)" + }, + { + "index": 389, + "name": "Delgado Brennan", + "first": "Mercedes", + "last": "Livingston", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/S0ufi4n3/73.jpg", + "boolean": true, + "guid": "f39cc1c7-24fe-4b1d-a1ae-3a5b625510ee", + "integer": 14, + "date": "Wed May 28 2008 07:59:57 GMT-0700 (PDT)", + "shortText": "sint", + "mediumText": "Sit et labore aute exercitation cupidatat deserunt proident proident et ad occaecat. Sint occaecat adipisicing qui eiusmod id enim consectetur dolor qui dolore sunt ullamco. Laboris ex ad ad nostrud nisi laborum est sint occaecat elit. Ut ad anim aliquip voluptate aute eiusmod do minim ad do voluptate ullamco in occaecat. Irure deserunt culpa dolor consectetur eu ad magna officia nostrud ea.", + "longText": "Ex id adipisicing non ipsum sint tempor in anim. Fugiat consequat culpa dolor eu non sint quis velit nulla voluptate. Et commodo laborum laboris anim ut fugiat occaecat sunt pariatur. Commodo adipisicing cillum consectetur proident velit deserunt. Dolore veniam aute ipsum minim velit occaecat. Ut aute laborum quis in mollit. Quis labore sit sint elit deserunt nostrud deserunt elit ex cillum.\r\nElit incididunt cillum ad ullamco nisi eu esse nisi ipsum voluptate magna exercitation nisi sit. Adipisicing mollit dolore magna duis. Aliqua non Lorem voluptate nulla ad id excepteur ullamco magna id magna pariatur ea anim. Officia voluptate laborum reprehenderit consequat.\r\nMagna deserunt consequat dolor elit ullamco. Amet labore tempor esse ipsum excepteur officia ut irure reprehenderit dolor fugiat proident culpa. Enim eu eiusmod do ex sit ut aute sit dolore consequat et laboris labore sint. Elit elit laborum exercitation velit consectetur. Aute esse occaecat in nisi sunt veniam sint sit sunt dolor pariatur consectetur.\r\nConsectetur cupidatat amet id mollit dolore occaecat pariatur in ea proident consectetur. Minim eiusmod nulla proident ut pariatur incididunt ullamco mollit nulla occaecat excepteur fugiat eu. Sint veniam anim nostrud deserunt excepteur id labore aliquip consectetur.\r\n", + "address": "4 Summit Street", + "city": "Chloride", + "state": "Arkansas", + "zip": 87932, + "country": "Mauritania", + "email": "mercedeslivingston@scentric.com", + "phone": "(982) 574-2165", + "color": "rgb(166,233,208)" + }, + { + "index": 390, + "name": "Melanie Gilmore", + "first": "Michael", + "last": "Rodriquez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nepdud/73.jpg", + "boolean": false, + "guid": "7505cfd7-3696-48c3-8cb0-20a4ddd83340", + "integer": 30, + "date": "Sun Dec 27 1992 18:33:54 GMT-0800 (PST)", + "shortText": "cupidatat est in excepteur dolor", + "mediumText": "Consectetur est Lorem do dolore reprehenderit irure. Culpa et aliquip nulla pariatur aute sit aliqua incididunt enim. Elit nostrud excepteur nulla dolor aute ad sunt laboris sint reprehenderit est do. Irure irure reprehenderit adipisicing amet fugiat sunt ullamco nisi laborum non ad.", + "longText": "Voluptate officia eu dolore ullamco laborum enim id et adipisicing aute reprehenderit cillum. Incididunt et deserunt mollit elit incididunt qui dolore quis. Consectetur magna minim irure culpa sint tempor aliquip proident cillum elit velit. Elit pariatur aliquip cillum id enim.\r\n", + "address": "2 Havens Place", + "city": "Nettie", + "state": "Delaware", + "zip": 89009, + "country": "Ghana", + "email": "michaelrodriquez@scentric.com", + "phone": "(870) 537-3435", + "color": "rgb(69,106,81)" + }, + { + "index": 391, + "name": "Hamilton Sanford", + "first": "Quinn", + "last": "Deleon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/amir_hooseini/73.jpg", + "boolean": true, + "guid": "f4a9b5c2-7e54-4d86-ac2b-dd1367a2ddb7", + "integer": 84, + "date": "Mon Feb 27 2006 05:53:41 GMT-0800 (PST)", + "shortText": "consequat cupidatat dolore veniam", + "mediumText": "Do id aliquip esse Lorem anim mollit est velit laborum deserunt.", + "longText": "Quis commodo esse aute qui ea anim ex Lorem duis culpa ipsum. Nostrud sint et anim Lorem officia sit dolor ipsum voluptate fugiat proident incididunt. Deserunt magna eu aute aliquip culpa exercitation. Voluptate et sit non dolor reprehenderit non proident enim qui. Ea do labore nisi commodo deserunt qui esse incididunt mollit velit esse fugiat officia.\r\nVoluptate dolor Lorem cillum commodo esse adipisicing veniam est pariatur esse aliqua. Aliquip commodo tempor fugiat ea quis deserunt sint nostrud minim. Consequat occaecat reprehenderit deserunt nisi irure consectetur et veniam esse exercitation dolore quis enim. Lorem deserunt anim ut occaecat culpa. Magna reprehenderit quis sunt deserunt ipsum.\r\nLaboris ut labore aliqua ut in anim sint. Ex fugiat duis elit ullamco veniam excepteur laboris. Aliqua dolore consequat excepteur incididunt nisi laboris irure et adipisicing aliquip Lorem fugiat dolor. Irure magna do cupidatat qui sint cupidatat qui commodo aute nostrud incididunt.\r\nPariatur minim proident excepteur ad pariatur mollit ipsum. Id eu elit deserunt elit cupidatat duis cillum proident do voluptate commodo aliqua. Tempor deserunt eiusmod commodo officia est enim non fugiat excepteur. Laborum exercitation Lorem voluptate sit est esse laboris ea sunt nostrud ipsum. Elit nostrud exercitation ad consequat ipsum velit velit fugiat excepteur consequat exercitation qui. Fugiat ex aliqua officia velit occaecat sint dolore. Excepteur cupidatat sit dolor dolore et eu.\r\nQui laboris aute et exercitation elit sint pariatur ea nulla Lorem do laboris ipsum. Fugiat nostrud proident laboris laborum adipisicing. Eu consectetur in ad tempor nisi qui do ea Lorem id labore pariatur anim officia. Cillum commodo est ex commodo nostrud elit consequat est dolore enim minim cillum. Dolore tempor dolor irure cupidatat eiusmod magna sit pariatur occaecat. Consequat non sit pariatur consequat nulla dolore adipisicing.\r\n", + "address": "4 Gerald Court", + "city": "Wanship", + "state": "Federated States Of Micronesia", + "zip": 83910, + "country": "Moldova", + "email": "quinndeleon@scentric.com", + "phone": "(843) 402-3938", + "color": "rgb(178,174,101)" + }, + { + "index": 392, + "name": "Williams Wiggins", + "first": "Brooke", + "last": "Pitts", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kokikillara/73.jpg", + "boolean": true, + "guid": "4ed6c0c9-de4f-460e-807c-24402159047d", + "integer": 8, + "date": "Mon May 03 1976 22:14:52 GMT-0700 (PDT)", + "shortText": "velit elit", + "mediumText": "Voluptate ea officia laborum exercitation ullamco veniam aliquip mollit duis dolor eu et. Veniam exercitation fugiat aute ipsum cupidatat. Mollit ad id irure enim adipisicing. Ullamco aliqua voluptate laborum non commodo pariatur aliquip.", + "longText": "Dolor fugiat aliqua aliqua Lorem tempor proident elit cillum exercitation. Voluptate ipsum Lorem pariatur fugiat mollit exercitation occaecat consequat laborum enim Lorem. Elit exercitation tempor eu sint nostrud aliquip aliquip enim in. Anim incididunt ad laboris deserunt duis sit ut anim esse ea dolore ipsum nostrud. Id pariatur velit velit pariatur elit sunt aliqua excepteur. Enim commodo amet sunt id mollit adipisicing quis sunt incididunt aliqua eiusmod nostrud.\r\nOfficia id sunt nulla adipisicing laborum. Laborum laborum eiusmod velit commodo non labore eu. Non nostrud sint do Lorem. Excepteur ipsum est esse minim ullamco reprehenderit quis Lorem sit veniam magna cupidatat laboris. Incididunt est in officia qui sit sit dolore. Aute voluptate irure commodo ad mollit elit amet consequat elit cupidatat consectetur tempor.\r\nOccaecat Lorem aliquip amet sint enim. Ullamco sunt quis commodo cupidatat voluptate ea. Est sint commodo exercitation sunt duis duis mollit reprehenderit. Incididunt consectetur eu et esse et pariatur velit laborum tempor. Nulla ea ea est pariatur et non.\r\nIn irure pariatur non commodo est cillum ut esse. Amet aliquip proident culpa Lorem velit et nostrud amet. Esse Lorem anim nulla dolore cillum labore do irure est aliqua labore sint magna non. Quis consequat nulla ex deserunt ex. Eiusmod commodo magna voluptate qui ex. Ex anim exercitation deserunt duis proident ea voluptate non enim.\r\nAd fugiat dolor officia cupidatat aute dolor dolor consectetur sit. Aliqua magna occaecat nulla minim ea aute fugiat sint irure aliquip nostrud dolor. Amet et non duis fugiat enim excepteur ipsum nisi. Ex amet dolore ex reprehenderit elit consectetur sunt sint laboris et. Ad do consequat aliqua adipisicing tempor pariatur non excepteur nisi ipsum elit cupidatat. Aliqua exercitation pariatur ullamco sint exercitation irure cupidatat aliquip mollit elit veniam ex reprehenderit.\r\n", + "address": "3 Portal Street", + "city": "Berwind", + "state": "Guam", + "zip": 84129, + "country": "Costa Rica", + "email": "brookepitts@scentric.com", + "phone": "(951) 474-2640", + "color": "rgb(210,98,96)" + }, + { + "index": 393, + "name": "Lucia Maynard", + "first": "Moore", + "last": "Bass", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/christianoliff/73.jpg", + "boolean": false, + "guid": "044b1bae-19f0-48c3-a675-b3840c1f0350", + "integer": 13, + "date": "Sun Jun 29 2008 08:11:07 GMT-0700 (PDT)", + "shortText": "eiusmod", + "mediumText": "Est ullamco aute deserunt minim duis sunt dolore cillum tempor exercitation sit. Laboris voluptate labore sit eu adipisicing in occaecat excepteur elit ipsum in eu. Eiusmod est minim veniam do excepteur laborum amet aute. Laboris tempor deserunt cillum ipsum.", + "longText": "Laboris ad excepteur eiusmod non dolor sunt in proident velit. Incididunt laborum eiusmod enim pariatur exercitation ut. Laboris culpa fugiat consequat qui. Do aliquip incididunt et labore minim ex mollit. Occaecat id duis velit velit occaecat laborum ex officia. Veniam irure fugiat cillum dolore nostrud. Amet ea consectetur incididunt ut minim.\r\nAdipisicing quis consectetur consectetur adipisicing eiusmod excepteur ullamco nostrud sit tempor labore ad. Ea incididunt commodo occaecat qui ea veniam nulla sunt ex. Non aliquip incididunt aute cillum magna nisi. Aliqua culpa deserunt nulla ad fugiat. Enim non consectetur pariatur voluptate enim qui consectetur aliquip irure nisi. Minim eu commodo aliquip laboris elit sint quis.\r\nMagna commodo laborum fugiat commodo voluptate quis. Adipisicing laborum in anim exercitation proident. Magna est cillum voluptate consectetur reprehenderit. Velit veniam laboris fugiat anim est esse aliquip. Cupidatat aliquip excepteur voluptate laboris.\r\nOfficia anim laborum anim velit adipisicing et. Velit magna quis culpa ipsum. Id et culpa eu dolore ullamco aute ut cupidatat pariatur commodo anim nostrud qui sit. Qui nulla veniam quis elit sint et exercitation exercitation aute cupidatat nostrud. Aliquip fugiat aute nostrud magna amet dolore adipisicing elit ipsum sint labore nisi.\r\nPariatur aute voluptate veniam eu eu id tempor exercitation ipsum eu cillum velit. Elit fugiat commodo officia in. Laboris do sunt excepteur ut deserunt aliquip. Adipisicing commodo ipsum quis proident voluptate reprehenderit sint ea magna ipsum anim est occaecat. Aliqua do eu elit aute dolor culpa nisi cupidatat incididunt. Id eu veniam adipisicing veniam qui sint velit voluptate. Laborum amet ea minim minim nulla sint sit labore dolor pariatur.\r\n", + "address": "4 Newton Street", + "city": "Harviell", + "state": "Pennsylvania", + "zip": 25300, + "country": "El Salvador", + "email": "moorebass@scentric.com", + "phone": "(913) 577-3866", + "color": "rgb(103,233,105)" + }, + { + "index": 394, + "name": "Walker Workman", + "first": "Howard", + "last": "Fleming", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andrey_maxim/73.jpg", + "boolean": true, + "guid": "ec870357-2a02-4dff-b9c5-a4574e39ddcf", + "integer": 73, + "date": "Sun Jun 02 1974 13:38:40 GMT-0700 (PDT)", + "shortText": "officia dolore consequat", + "mediumText": "Aliqua ex nisi adipisicing tempor elit pariatur voluptate cillum dolore duis excepteur commodo do eiusmod. Exercitation nulla sint officia voluptate ut ipsum esse fugiat quis sint reprehenderit irure. Voluptate voluptate deserunt sit aliqua Lorem et labore. Magna qui eu nisi do cupidatat eu ea. Nulla sint eiusmod in ipsum est dolor qui.", + "longText": "Magna elit sunt qui ut dolor et. Enim adipisicing aliquip dolore ex consectetur dolor ut. Ex culpa fugiat id sunt sunt incididunt Lorem adipisicing nostrud magna dolore mollit enim est.\r\nPariatur ea magna anim sit incididunt veniam occaecat pariatur ullamco nulla. Sit commodo cupidatat elit commodo eu do officia nostrud. Eu consequat ipsum amet eiusmod elit commodo ut enim ex.\r\nIrure ipsum ipsum ullamco magna deserunt pariatur in consectetur. Mollit nisi mollit reprehenderit et laboris in esse irure minim. Ipsum culpa nostrud nisi fugiat sint culpa consequat incididunt nostrud culpa occaecat aliquip sit. Commodo cupidatat nulla qui cupidatat sint anim. Ad quis cillum magna adipisicing ad qui ex fugiat velit velit amet aliqua. Ea laboris laborum dolor amet sunt. Fugiat sit dolor ipsum ut.\r\nElit labore fugiat commodo reprehenderit nostrud culpa qui cupidatat deserunt eiusmod tempor est excepteur laboris. Aliqua aliqua elit occaecat magna ullamco nisi commodo enim. Reprehenderit et mollit mollit aliqua ex tempor sint minim magna eu. Voluptate ullamco voluptate excepteur ullamco ea consectetur non do. Officia deserunt duis ullamco Lorem officia esse. Consequat et quis cupidatat officia.\r\nDo esse reprehenderit incididunt quis voluptate sunt eu amet ad incididunt. Do occaecat amet in culpa anim id. Fugiat est fugiat Lorem enim adipisicing do qui officia. Proident elit labore consectetur Lorem eiusmod cupidatat mollit sit fugiat magna ex commodo minim. Ea nisi amet non enim culpa veniam aliqua ad labore.\r\n", + "address": "3 Exeter Street", + "city": "Wakulla", + "state": "New Hampshire", + "zip": 85378, + "country": "Oman", + "email": "howardfleming@scentric.com", + "phone": "(844) 545-2412", + "color": "rgb(126,110,68)" + }, + { + "index": 395, + "name": "Harper Chase", + "first": "Glenda", + "last": "Burns", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/muringa/73.jpg", + "boolean": false, + "guid": "d6866e9e-6cc1-4021-9e8e-c0657bd2f64c", + "integer": 36, + "date": "Sun Dec 12 1971 00:30:23 GMT-0800 (PST)", + "shortText": "ad aliquip consequat", + "mediumText": "Consectetur exercitation commodo ut labore incididunt velit laborum labore velit aute. Aliquip velit id enim sit. Nostrud magna est veniam excepteur commodo irure. Sunt ex sint irure nisi anim. Nisi dolore veniam tempor cupidatat irure incididunt culpa veniam sunt aute.", + "longText": "Duis enim ex officia reprehenderit consectetur esse. Adipisicing ea velit labore officia sint nisi do anim ex incididunt irure. Laborum amet fugiat laboris proident. Ex duis dolor dolor nisi Lorem do qui sunt incididunt exercitation nulla do deserunt pariatur.\r\nOfficia et dolor incididunt elit non quis. Deserunt ad esse enim tempor aliquip officia excepteur magna esse deserunt. Excepteur dolore veniam commodo non quis. Do Lorem ex est exercitation sit consectetur exercitation duis duis laborum. Aliquip elit ea nulla elit quis deserunt eu adipisicing id pariatur non occaecat. Irure dolore nulla nisi irure qui tempor quis ut minim.\r\nAnim officia et laboris culpa velit consectetur do voluptate ad voluptate Lorem. Nostrud fugiat ut ad amet est elit duis consequat cupidatat. Ad minim cillum dolore incididunt sunt enim deserunt. Dolor aliqua qui nulla aliquip enim magna incididunt. Minim enim occaecat dolor in aliqua. Laborum eu quis culpa in voluptate commodo culpa sint dolor Lorem duis elit. Incididunt sint et enim sit laboris pariatur laboris eu sit eu anim.\r\nEa elit minim tempor ut id ut ea et tempor aute magna eiusmod adipisicing exercitation. Culpa elit esse tempor proident sint duis consequat. Sint ullamco ex veniam aliquip aute labore anim adipisicing est magna velit nisi. Ipsum dolore labore proident id irure qui velit anim. Incididunt Lorem nisi ut amet in enim laboris labore proident fugiat officia irure. Occaecat dolor Lorem qui nulla. Aliqua officia ipsum et cillum aliquip adipisicing ex.\r\nEu incididunt deserunt cupidatat ex laborum in voluptate excepteur ea consectetur est incididunt. Occaecat qui aliqua consequat nostrud in ex labore dolor eiusmod. Enim duis eu laboris consectetur culpa aliquip commodo. Elit ullamco reprehenderit consequat proident et ex veniam ea consectetur aute minim. Voluptate ut in laborum exercitation laboris irure culpa esse deserunt adipisicing sunt.\r\n", + "address": "4 Hinsdale Street", + "city": "Belva", + "state": "North Dakota", + "zip": 11729, + "country": "Belgium", + "email": "glendaburns@scentric.com", + "phone": "(856) 471-3316", + "color": "rgb(157,180,79)" + }, + { + "index": 396, + "name": "Lynch Dillard", + "first": "Marta", + "last": "Trujillo", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ahmedelgabri/73.jpg", + "boolean": true, + "guid": "66702f6f-a19b-4e41-8b5c-0df08d432b1b", + "integer": 55, + "date": "Mon Nov 21 1983 17:47:19 GMT-0800 (PST)", + "shortText": "culpa qui ullamco", + "mediumText": "Lorem dolor esse veniam minim culpa aliquip dolore occaecat Lorem quis.", + "longText": "Ea est sunt et duis dolor irure voluptate. Nostrud esse do irure exercitation officia magna proident irure deserunt magna. Dolore minim exercitation qui exercitation proident. Excepteur ea occaecat irure qui ea et duis minim voluptate id culpa enim ad dolor. Enim anim aliquip sint aliqua veniam Lorem id.\r\n", + "address": "3 Eckford Street", + "city": "Savage", + "state": "Northern Mariana Islands", + "zip": 46157, + "country": "Kyrgyzstan", + "email": "martatrujillo@scentric.com", + "phone": "(867) 559-3000", + "color": "rgb(184,176,151)" + }, + { + "index": 397, + "name": "Blake Wilkins", + "first": "Lara", + "last": "Gentry", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bobbytwoshoes/73.jpg", + "boolean": false, + "guid": "e4e03f54-413f-4638-be7c-12175f24c458", + "integer": 5, + "date": "Sun Oct 10 1971 04:19:14 GMT-0700 (PDT)", + "shortText": "ex", + "mediumText": "Ullamco ut ex tempor est irure proident.", + "longText": "Labore id reprehenderit elit velit adipisicing amet voluptate exercitation adipisicing. Eiusmod anim officia sint Lorem ullamco cupidatat. Consectetur culpa nostrud elit nisi aute velit amet Lorem esse laborum sint exercitation.\r\nNon labore proident adipisicing duis veniam. Mollit ad irure Lorem minim ullamco elit aliqua occaecat excepteur. Veniam elit eiusmod quis minim enim ad Lorem est ut nulla voluptate amet Lorem ad. In dolore irure magna elit officia. Non velit anim Lorem eiusmod fugiat nostrud in reprehenderit officia commodo culpa ea sunt. Enim ut exercitation deserunt laborum laboris fugiat pariatur incididunt officia deserunt consectetur Lorem. Dolor nisi culpa dolor anim id laborum aute qui elit est quis occaecat esse id.\r\nEu ullamco aliquip enim qui cillum non anim reprehenderit. Nulla et tempor enim nulla consectetur. Reprehenderit nulla velit sunt consectetur exercitation consequat cupidatat. Anim dolor qui enim ex do labore dolore commodo voluptate ut laborum. Ut aute sint adipisicing reprehenderit est aliquip laborum esse dolore commodo aute excepteur fugiat est. Ex cupidatat commodo sit mollit veniam sint ex magna adipisicing occaecat laborum occaecat.\r\n", + "address": "4 Schenck Place", + "city": "Greenwich", + "state": "South Dakota", + "zip": 61210, + "country": "Swaziland", + "email": "laragentry@scentric.com", + "phone": "(909) 447-3849", + "color": "rgb(209,112,163)" + }, + { + "index": 398, + "name": "Lawson Peck", + "first": "Mullen", + "last": "Keller", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/milovanovicdu/73.jpg", + "boolean": false, + "guid": "27329629-6fcc-48e1-a7b9-e3158f75ea79", + "integer": 2, + "date": "Wed Jul 31 1974 10:57:47 GMT-0700 (PDT)", + "shortText": "ut", + "mediumText": "Irure ut velit ea nisi enim est fugiat magna non duis pariatur. Sint voluptate irure incididunt incididunt exercitation id magna culpa.", + "longText": "Ex labore ut aliquip magna. Laborum consectetur anim voluptate commodo Lorem nisi veniam incididunt dolor aliqua irure fugiat nostrud. Amet aliquip elit in sint. Proident voluptate nisi nulla culpa tempor. Fugiat dolor minim elit dolor elit ex incididunt Lorem non eu. Ad ex laboris ut magna eu sunt veniam excepteur velit officia ipsum reprehenderit commodo.\r\nEu irure ullamco aute qui ex mollit. Officia anim proident non officia. Aute in voluptate mollit eiusmod voluptate. Culpa esse deserunt nostrud culpa consectetur mollit. Minim fugiat amet cillum anim eu velit qui non et duis ut.\r\nDo labore enim tempor in ipsum dolore veniam consequat aliqua deserunt excepteur duis. Sunt ad elit in aliquip officia veniam tempor ad velit consectetur Lorem. Voluptate sint commodo ullamco nisi sunt minim enim labore labore. In sit laboris officia exercitation labore minim ex velit ullamco. Adipisicing ex consectetur mollit occaecat id. Officia minim dolore qui do magna exercitation. Nisi in ipsum aliqua adipisicing ad sit ad anim dolore ipsum officia elit.\r\n", + "address": "2 Rugby Road", + "city": "Kirk", + "state": "Alaska", + "zip": 73560, + "country": "Slovenia", + "email": "mullenkeller@scentric.com", + "phone": "(964) 598-3707", + "color": "rgb(210,88,176)" + }, + { + "index": 399, + "name": "Rosario Camacho", + "first": "Trina", + "last": "Perez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imughal7/73.jpg", + "boolean": true, + "guid": "2f75ea28-cf05-4abd-8600-a3f69265392c", + "integer": 41, + "date": "Mon Jul 19 1993 06:30:42 GMT-0700 (PDT)", + "shortText": "est fugiat tempor", + "mediumText": "Irure cupidatat et officia velit ut ipsum exercitation. Aliquip pariatur enim enim duis labore duis. Excepteur Lorem eu in id exercitation eu enim dolore occaecat deserunt consequat. Aute commodo amet incididunt cillum ipsum adipisicing in. Aute sunt consequat fugiat cillum qui velit deserunt nisi nisi cupidatat.", + "longText": "Minim elit nisi enim pariatur tempor consequat et voluptate. Proident officia ipsum aliqua esse deserunt ex id nisi. Labore reprehenderit sint fugiat duis Lorem consectetur enim labore nostrud sit commodo id anim sint.\r\nEa labore et consectetur in aliqua consectetur exercitation labore dolor laborum id labore irure irure. Commodo elit ex culpa amet ex velit eiusmod consequat. Nostrud consequat id excepteur consequat et ad labore. Tempor sint consequat exercitation consectetur ex ad laboris et. Laboris fugiat consequat minim commodo veniam cillum nostrud dolore voluptate minim aute.\r\nAdipisicing commodo aliquip occaecat incididunt consequat aliqua dolor in nulla aliquip veniam aliqua aute. Incididunt ex ut minim aute mollit fugiat proident voluptate Lorem minim. Ipsum eiusmod ullamco consectetur sint in. Qui magna occaecat cillum eu et consectetur. Cillum duis occaecat cillum ipsum aliquip fugiat laborum et eiusmod consectetur id deserunt. Minim minim qui ea cillum sit quis duis non anim.\r\nVelit mollit aute ex exercitation sit consequat incididunt voluptate. Non eu laboris nulla cillum anim eu minim elit eu occaecat culpa reprehenderit consectetur. Tempor cupidatat est aute cupidatat laboris culpa qui aute veniam cillum ut incididunt esse dolor. Laboris irure ex ad ut labore dolore irure mollit irure aliquip eu tempor proident Lorem. Lorem sit eiusmod do Lorem consequat quis id minim cupidatat ex sunt magna. Laboris tempor adipisicing adipisicing et sint cupidatat ad dolor exercitation et qui occaecat laborum et.\r\nDuis incididunt anim proident dolore tempor voluptate nulla sunt aliquip voluptate dolor enim. Laborum anim sunt anim adipisicing exercitation commodo eu esse. Proident labore nostrud et excepteur sit eiusmod exercitation culpa eu in id adipisicing voluptate. Pariatur officia aute mollit amet et nisi aute sit. Aute eiusmod consectetur excepteur magna quis enim sint velit velit excepteur fugiat. Non Lorem nostrud eu voluptate anim reprehenderit et aliquip nostrud ipsum Lorem. Magna fugiat laborum culpa anim sunt laboris consectetur culpa quis pariatur minim minim minim.\r\n", + "address": "4 Ridge Boulevard", + "city": "Crown", + "state": "Louisiana", + "zip": 12286, + "country": "Mali", + "email": "trinaperez@scentric.com", + "phone": "(848) 593-3474", + "color": "rgb(121,115,73)" + }, + { + "index": 400, + "name": "Savannah Nieves", + "first": "Sutton", + "last": "Oneill", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/creative_px/73.jpg", + "boolean": true, + "guid": "2a23bf3c-f5ec-4e78-90bc-ace28f8f2bab", + "integer": 2, + "date": "Thu Apr 23 1992 13:29:05 GMT-0700 (PDT)", + "shortText": "excepteur", + "mediumText": "Et aute minim non exercitation ut in aliqua officia consequat.", + "longText": "Elit officia excepteur aliqua deserunt est. Exercitation magna culpa ut aute. Laborum Lorem aliquip labore enim velit in. Dolore in do do dolor do do qui.\r\nLabore sunt laborum id sit esse pariatur amet ea. Nostrud irure excepteur Lorem ea duis adipisicing est ea voluptate. Ea consectetur dolor duis anim. Non laborum incididunt aliquip mollit pariatur. Amet laborum esse enim velit aute sit fugiat sit laborum commodo. In nulla veniam adipisicing et velit dolore culpa mollit ad dolore dolor commodo proident dolore.\r\nPariatur nisi eu sint ullamco proident elit dolore officia quis mollit nisi. Do officia cillum minim occaecat duis. Exercitation adipisicing reprehenderit esse aliqua non elit eiusmod deserunt qui.\r\nMinim culpa aliqua sit id ex. Qui do ea in sint cillum Lorem non. Consequat Lorem sunt est nulla Lorem exercitation culpa esse ex. Veniam dolor in Lorem cillum amet esse eiusmod minim voluptate aute ipsum ex ad. Elit magna laboris id occaecat aute sit tempor fugiat velit incididunt consectetur minim. Sint est dolore occaecat aliquip in sint amet eiusmod esse exercitation quis duis dolore adipisicing.\r\n", + "address": "2 Ridgewood Place", + "city": "Ventress", + "state": "Missouri", + "zip": 37064, + "country": "Cyprus", + "email": "suttononeill@scentric.com", + "phone": "(957) 407-3116", + "color": "rgb(163,237,93)" + }, + { + "index": 401, + "name": "Faye Graves", + "first": "Mildred", + "last": "Branch", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gabrielizalo/73.jpg", + "boolean": true, + "guid": "12b69605-f47d-4b63-b96d-48e2e24c1031", + "integer": 82, + "date": "Wed Feb 04 1981 06:07:39 GMT-0800 (PST)", + "shortText": "tempor occaecat ullamco", + "mediumText": "Velit aute non nisi elit laborum. Id nisi reprehenderit culpa incididunt eu labore est excepteur aute laborum officia enim. Qui proident deserunt voluptate commodo elit id irure voluptate. Consequat quis dolor id ea tempor ipsum culpa.", + "longText": "Velit sit eu nulla sunt nulla veniam velit mollit nostrud reprehenderit cillum velit. Nostrud non deserunt culpa Lorem quis. Sit elit ex tempor amet officia cupidatat. Dolore laboris et est consectetur elit dolor. Exercitation consectetur qui pariatur laborum pariatur aliquip irure veniam dolore laboris.\r\nLabore incididunt cupidatat elit nostrud ipsum aliquip ipsum commodo incididunt reprehenderit exercitation ipsum. Voluptate et ipsum qui nisi irure esse cillum ut. Tempor culpa et excepteur incididunt adipisicing laboris aliqua mollit minim incididunt. Dolor dolor fugiat anim culpa culpa id reprehenderit voluptate laboris occaecat. Esse Lorem sit cillum non consequat mollit minim non tempor aliquip culpa. Pariatur velit amet ad reprehenderit esse cillum veniam in ad. Nisi dolore irure dolore deserunt.\r\nNon amet elit pariatur nisi id dolor in adipisicing nisi elit sit. Adipisicing cillum sint tempor deserunt aute exercitation do pariatur. Nulla et eiusmod do dolore elit ullamco magna mollit. Irure deserunt consectetur Lorem ex elit consequat consequat laboris.\r\nDuis aute sint nisi tempor in ipsum laboris. Cillum magna exercitation mollit eu amet proident reprehenderit cupidatat irure. Ea minim dolor magna id aliquip. Ex commodo proident adipisicing sint velit non eiusmod sit in exercitation non laboris. Consequat nulla laborum sint qui dolor sint amet non. Qui sint dolore occaecat cillum proident ullamco ipsum incididunt duis sit duis fugiat consequat.\r\nQuis occaecat nulla officia quis nulla sunt reprehenderit nostrud. Cillum anim duis irure do nulla id. Sunt eiusmod quis dolor aliqua occaecat non. Sit velit elit sit laborum et cupidatat est veniam aliqua enim. In dolore veniam amet duis incididunt. Elit est quis minim nisi consectetur consequat sunt enim culpa eiusmod ea elit cupidatat. Officia reprehenderit in do consequat.\r\n", + "address": "4 Farragut Place", + "city": "Grayhawk", + "state": "Kentucky", + "zip": 53142, + "country": "Georgia", + "email": "mildredbranch@scentric.com", + "phone": "(888) 489-2923", + "color": "rgb(206,181,98)" + }, + { + "index": 402, + "name": "England Cameron", + "first": "Heath", + "last": "Roach", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/xtr1mal2/73.jpg", + "boolean": false, + "guid": "7eecdcf4-46f8-401c-aff2-9c22abf751ae", + "integer": 92, + "date": "Mon Jul 02 1990 04:55:35 GMT-0700 (PDT)", + "shortText": "velit", + "mediumText": "Cillum minim qui ex officia magna velit sunt nisi. Non reprehenderit sint pariatur minim elit commodo reprehenderit proident elit occaecat non duis voluptate. Aliquip ullamco ut duis officia do magna minim cupidatat in. Ex irure officia occaecat laboris tempor velit reprehenderit quis anim ipsum sit.", + "longText": "Cupidatat excepteur officia veniam id tempor sit amet. Deserunt mollit aliquip labore cupidatat sint laboris velit voluptate aute consectetur exercitation sit sint. Labore et pariatur laboris quis labore. Irure consectetur labore sit et. Aute consectetur veniam veniam id nulla pariatur deserunt. Deserunt nulla proident id nulla.\r\nUt nostrud tempor et laborum laboris aliquip ullamco exercitation exercitation elit culpa non culpa in. Cupidatat consectetur exercitation ea excepteur culpa sint eiusmod culpa reprehenderit Lorem fugiat laboris. Veniam sint mollit dolor consequat sunt officia. Irure ipsum culpa et non. Aliqua nisi amet Lorem nisi enim commodo aliquip occaecat duis aute eu cupidatat ut. Pariatur Lorem tempor consequat in irure pariatur mollit sunt reprehenderit dolore officia.\r\n", + "address": "2 Maujer Street", + "city": "Morningside", + "state": "American Samoa", + "zip": 87621, + "country": "Djibouti", + "email": "heathroach@scentric.com", + "phone": "(947) 435-3218", + "color": "rgb(247,200,211)" + }, + { + "index": 403, + "name": "Michele Reynolds", + "first": "Mayo", + "last": "Gray", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eugenerifan/73.jpg", + "boolean": false, + "guid": "826af78f-bd69-4f81-a45e-1a38d5afb1a8", + "integer": 54, + "date": "Mon Nov 02 2009 06:31:46 GMT-0800 (PST)", + "shortText": "exercitation adipisicing et", + "mediumText": "Aliqua ex amet anim proident nostrud et id Lorem aliqua. Quis reprehenderit veniam cupidatat fugiat.", + "longText": "Ipsum ullamco commodo aliqua non consectetur culpa in. Et nulla nulla adipisicing sit sunt irure ea commodo ex cupidatat enim excepteur. Aliqua eu dolore commodo culpa est nostrud velit exercitation irure. Ad est fugiat duis ipsum non Lorem deserunt esse.\r\nAliquip reprehenderit id voluptate ullamco anim sunt aliquip veniam proident esse magna officia eiusmod. Nostrud nostrud cillum sunt fugiat incididunt irure pariatur veniam incididunt irure Lorem irure velit velit. Eiusmod occaecat proident culpa Lorem labore culpa ad. Eu dolor ad cupidatat sunt fugiat sint. Ea sunt quis amet nulla labore dolor occaecat consequat ea nulla. Sint magna qui et veniam cillum.\r\nOccaecat sunt aliqua adipisicing non consequat in ipsum esse sunt elit reprehenderit. Enim adipisicing cupidatat voluptate deserunt aliqua reprehenderit aliquip excepteur dolore non Lorem est do. Dolor ipsum non ex id tempor tempor mollit. Consequat cupidatat ad elit nulla ex nostrud nisi dolor nulla cillum labore dolor dolor.\r\nFugiat exercitation nulla irure aliqua id. Laboris reprehenderit cillum quis cillum Lorem exercitation Lorem ipsum deserunt. Velit sint aute adipisicing aliquip voluptate et culpa ullamco aliqua.\r\nNon cillum magna elit sunt aliqua ea. Veniam eu esse in est proident non reprehenderit nulla enim. Nisi non sunt et laborum minim non qui nisi nisi elit excepteur nisi. Ex excepteur consequat mollit sunt proident velit et deserunt sint excepteur et. Ullamco qui ipsum labore culpa aliquip. Qui pariatur veniam non velit qui nisi non veniam incididunt Lorem laboris occaecat. Ut duis qui labore anim amet dolor.\r\n", + "address": "4 Eagle Street", + "city": "Allentown", + "state": "Minnesota", + "zip": 44111, + "country": "Tokelau", + "email": "mayogray@scentric.com", + "phone": "(992) 459-3031", + "color": "rgb(215,198,143)" + }, + { + "index": 404, + "name": "Dorthy Simon", + "first": "Gena", + "last": "Calderon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imcoding/73.jpg", + "boolean": false, + "guid": "6afa8867-330b-419e-b186-df524f163ef0", + "integer": 1, + "date": "Mon Jun 09 2014 19:43:18 GMT-0700 (PDT)", + "shortText": "esse", + "mediumText": "Incididunt ea id eu id mollit eu. Culpa fugiat dolor minim mollit.", + "longText": "Dolor exercitation dolor minim cillum anim ut ex elit sunt laborum voluptate est ea non. Sunt tempor deserunt aute ut aliqua. Nostrud eu ullamco in est eu ea mollit qui. Ad mollit fugiat quis ex elit. Proident duis cupidatat ex amet sint dolore laboris elit. Excepteur cupidatat minim id consequat dolor.\r\nTempor ipsum eu commodo ipsum ut. Elit elit eiusmod fugiat ullamco labore. Mollit est ea nulla ea cupidatat excepteur.\r\nDeserunt duis ipsum adipisicing in laboris sit. Esse incididunt in aliqua non anim esse consectetur. Exercitation dolor deserunt eiusmod incididunt et ea culpa. Mollit anim non mollit adipisicing est. Pariatur aliqua dolore ullamco aliqua.\r\nEt id laboris sit adipisicing adipisicing eu occaecat et quis sint. Proident voluptate ad et velit. Quis aliqua elit deserunt consectetur sunt. Incididunt sit qui ex excepteur et culpa et. Non occaecat ea amet commodo Lorem. Minim mollit eu eiusmod id ipsum esse ut mollit do do.\r\n", + "address": "3 Vermont Court", + "city": "Williston", + "state": "Hawaii", + "zip": 55240, + "country": "San Marino", + "email": "genacalderon@scentric.com", + "phone": "(888) 431-2447", + "color": "rgb(169,113,77)" + }, + { + "index": 405, + "name": "Estella Bird", + "first": "Candice", + "last": "Grant", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/madhan4uu/73.jpg", + "boolean": true, + "guid": "acee6de8-e101-4121-92a2-004058e99752", + "integer": 82, + "date": "Sat Sep 14 2002 06:24:28 GMT-0700 (PDT)", + "shortText": "id pariatur in tempor", + "mediumText": "Reprehenderit nulla consectetur minim minim ut consequat id tempor anim labore. Occaecat reprehenderit in consequat velit occaecat Lorem.", + "longText": "Nulla tempor et esse nostrud minim aliqua mollit ullamco elit consectetur cupidatat. Non non aliqua labore aute Lorem magna excepteur tempor. Velit exercitation veniam elit proident do nostrud et adipisicing et consectetur est dolore. Quis minim cupidatat occaecat Lorem aute labore ea et do nisi nisi consectetur. Do aute commodo labore elit laboris. In ipsum quis voluptate nulla est officia eu.\r\n", + "address": "4 Wythe Avenue", + "city": "Rivera", + "state": "Alabama", + "zip": 33941, + "country": "Vanuatu", + "email": "candicegrant@scentric.com", + "phone": "(991) 536-3705", + "color": "rgb(157,106,60)" + }, + { + "index": 406, + "name": "Clarissa Bray", + "first": "Rojas", + "last": "Robles", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tirsope/73.jpg", + "boolean": false, + "guid": "bfc3f083-ca88-443f-8639-1467b45a7b5e", + "integer": 54, + "date": "Fri Jul 03 1970 19:21:58 GMT-0700 (PDT)", + "shortText": "consectetur duis ullamco est", + "mediumText": "Excepteur qui sint nulla pariatur reprehenderit ex fugiat anim ut. Id voluptate quis incididunt sint sint aliqua aliquip excepteur sit officia ad dolore. Aute eu elit tempor laborum eu voluptate ipsum duis sunt. Reprehenderit fugiat ex Lorem aute quis nostrud commodo Lorem.", + "longText": "Labore ad nostrud ad eu dolor pariatur sit exercitation tempor voluptate do eu deserunt. Consectetur culpa culpa veniam nisi eu elit minim est est. Mollit cillum sit pariatur quis. Cupidatat ex reprehenderit ad eu ad amet id esse aliqua. Adipisicing sint adipisicing ex consectetur magna quis sint culpa irure pariatur laboris exercitation ea ex. Elit fugiat proident dolor amet minim cillum et sint. Non nostrud nulla ipsum eu.\r\n", + "address": "4 Clifton Place", + "city": "Walton", + "state": "North Carolina", + "zip": 22683, + "country": "Somalia", + "email": "rojasrobles@scentric.com", + "phone": "(829) 530-3596", + "color": "rgb(58,225,142)" + }, + { + "index": 407, + "name": "Jody Schultz", + "first": "Baird", + "last": "Robinson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lorenzosinisi/73.jpg", + "boolean": false, + "guid": "7a26e07a-6210-47eb-8a15-d60b73f0b0ba", + "integer": 34, + "date": "Sat Oct 25 1980 07:30:41 GMT-0700 (PDT)", + "shortText": "dolor qui", + "mediumText": "Aliqua sunt magna esse aute veniam occaecat tempor aliquip aliquip adipisicing aliquip qui deserunt incididunt.", + "longText": "Laboris dolore anim pariatur laboris in veniam irure. Lorem laborum nulla amet dolore cupidatat. Dolor est reprehenderit eiusmod labore excepteur duis mollit veniam ipsum sunt magna. Minim ut aliquip sunt ut irure voluptate voluptate duis ea. Exercitation occaecat mollit cupidatat sint dolore aliquip cupidatat aute minim exercitation ipsum occaecat. Consequat sit tempor esse ut culpa tempor duis irure duis quis. Enim incididunt sint consequat adipisicing veniam fugiat eiusmod.\r\nMinim mollit voluptate amet laborum fugiat eiusmod duis esse aute ea tempor. Ea minim ipsum sint pariatur amet voluptate ipsum. Excepteur magna pariatur esse culpa ipsum do. Ad deserunt excepteur aliquip cillum non eiusmod excepteur non labore ut nostrud fugiat. Minim sunt duis dolor ex ipsum reprehenderit. Magna incididunt reprehenderit tempor reprehenderit voluptate. Irure magna non minim quis sunt laboris ut velit velit eu consequat ad.\r\nEst et sunt consequat adipisicing elit non pariatur nostrud reprehenderit sit. Pariatur irure veniam veniam aliquip velit fugiat adipisicing. Consectetur ex mollit tempor cillum commodo ad magna dolore Lorem. Consectetur non esse ex esse irure consectetur ullamco proident eu ex ullamco. Ipsum ut tempor Lorem exercitation et voluptate nulla aute commodo. Adipisicing nostrud laboris quis elit minim.\r\nProident ea irure ex qui qui deserunt ex consequat est ex et elit consequat ut. Sunt deserunt tempor dolor esse reprehenderit excepteur est. Mollit eu occaecat anim voluptate.\r\n", + "address": "4 Montieth Street", + "city": "Lowell", + "state": "Connecticut", + "zip": 26397, + "country": "Maldives", + "email": "bairdrobinson@scentric.com", + "phone": "(881) 497-3274", + "color": "rgb(109,107,114)" + }, + { + "index": 408, + "name": "Sullivan Singleton", + "first": "Lupe", + "last": "Shields", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/celikovic/73.jpg", + "boolean": false, + "guid": "77364f56-0bf3-44a2-b715-57adc5471291", + "integer": 76, + "date": "Sun Jan 30 2000 05:01:36 GMT-0800 (PST)", + "shortText": "eiusmod enim officia", + "mediumText": "Deserunt sunt nulla ex reprehenderit nulla laborum fugiat consectetur aliqua est. Dolor qui laborum non anim in. Nisi amet commodo ullamco id excepteur ipsum veniam. Id quis nulla amet sint pariatur. Velit irure exercitation ut excepteur pariatur anim amet deserunt.", + "longText": "Ullamco labore cupidatat qui ad consequat consequat incididunt ullamco non. Id tempor est laboris non. Pariatur incididunt veniam irure Lorem aute. Eu reprehenderit do adipisicing adipisicing officia est consectetur laboris ut et et consequat duis ut.\r\nFugiat excepteur dolore culpa excepteur excepteur laboris Lorem non esse do ad. Duis consectetur aliqua voluptate veniam velit culpa incididunt incididunt ad anim. Quis id elit officia in ut.\r\nCupidatat dolor excepteur in mollit proident nostrud duis consequat in. Duis ullamco eu qui culpa. Nostrud culpa eu cupidatat occaecat. Eu reprehenderit ex nisi voluptate aliqua aute.\r\n", + "address": "4 Knickerbocker Avenue", + "city": "Alafaya", + "state": "South Carolina", + "zip": 66270, + "country": "Israel", + "email": "lupeshields@scentric.com", + "phone": "(945) 571-2010", + "color": "rgb(61,207,100)" + }, + { + "index": 409, + "name": "Bullock Harrell", + "first": "Morse", + "last": "Haynes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_kshitish/73.jpg", + "boolean": false, + "guid": "4176d27b-2ff0-44dd-9f1e-17963821d222", + "integer": 45, + "date": "Sat Feb 20 1999 17:08:27 GMT-0800 (PST)", + "shortText": "id nostrud fugiat irure culpa", + "mediumText": "Reprehenderit quis elit id amet laborum labore.", + "longText": "Nulla pariatur in cupidatat qui fugiat. Id incididunt ad aute consequat velit anim ad velit fugiat labore. Sunt magna do dolore ullamco Lorem Lorem enim et aliquip mollit esse id sunt. Nisi reprehenderit magna sit non officia Lorem eu fugiat. Elit non occaecat laborum in sunt consequat amet in non.\r\nSit ipsum mollit proident pariatur ea esse. Culpa magna aliqua ipsum excepteur ea esse laborum aliquip occaecat reprehenderit nostrud ex ea. Non esse exercitation nulla nostrud esse in sunt. Esse tempor aliqua sit veniam proident aute sint nulla do velit eiusmod. Qui duis occaecat tempor do aliquip irure cillum elit. Culpa Lorem et est nisi ut qui consequat exercitation magna nisi ad officia magna voluptate.\r\nTempor enim sit deserunt do nisi amet enim ipsum ea dolore eu. Proident excepteur aliqua sit sit qui duis ad nostrud adipisicing qui. Exercitation eiusmod velit aliquip officia voluptate anim laborum anim duis in enim qui consectetur. Ad est occaecat occaecat do ex esse ipsum ipsum Lorem veniam. Minim et et sunt non sit irure ad amet minim in et anim reprehenderit voluptate. Irure anim id nisi eiusmod eu eiusmod proident aute sunt. Consequat et aute ipsum ullamco do aute ad do Lorem ipsum in minim.\r\n", + "address": "4 Louise Terrace", + "city": "Blodgett", + "state": "Michigan", + "zip": 68968, + "country": "Reunion", + "email": "morsehaynes@scentric.com", + "phone": "(933) 478-3987", + "color": "rgb(127,118,223)" + }, + { + "index": 410, + "name": "Tammi Gordon", + "first": "Cooke", + "last": "Chandler", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/2fockus/73.jpg", + "boolean": true, + "guid": "c65f8ce1-2436-4ef2-9dc8-74fcc3a09b55", + "integer": 7, + "date": "Wed Jan 12 2005 21:50:12 GMT-0800 (PST)", + "shortText": "laboris est ipsum", + "mediumText": "Id dolore quis voluptate dolor ullamco enim velit cillum mollit dolor occaecat officia.", + "longText": "Laborum est amet mollit esse exercitation exercitation culpa commodo laborum irure enim commodo aliquip amet. Eu ea commodo occaecat cupidatat velit adipisicing reprehenderit amet. Reprehenderit in Lorem voluptate amet consectetur id incididunt reprehenderit in quis commodo est deserunt non. Pariatur pariatur in elit labore ut esse esse irure. Tempor mollit labore laborum voluptate ut. Ut occaecat mollit mollit cillum aliquip ipsum quis voluptate veniam. Cillum ad exercitation incididunt culpa ex in reprehenderit eiusmod deserunt voluptate.\r\nDo eiusmod esse aliquip eiusmod veniam deserunt do non dolor pariatur. Occaecat dolore minim irure proident laborum in nostrud sit. Ipsum deserunt duis reprehenderit duis occaecat fugiat voluptate aute aliquip consectetur consequat eiusmod. Qui laborum sunt incididunt id quis eu consectetur adipisicing mollit commodo eiusmod ipsum amet.\r\nCulpa anim officia ea occaecat occaecat occaecat occaecat mollit ipsum commodo dolore laboris. Ut anim velit amet laboris velit et aliqua aliquip incididunt consectetur culpa aliquip sint cupidatat. Enim eu adipisicing ut non. Amet duis nostrud est ad dolore non cupidatat veniam in. Voluptate nostrud sint aliqua voluptate culpa qui Lorem tempor.\r\nCommodo Lorem officia aute ut do mollit sint labore ex fugiat ullamco eu ut consectetur. Nulla nisi laborum anim et qui ullamco est dolore enim pariatur ex velit. Sit ullamco aliqua reprehenderit ea anim aliquip velit ut amet culpa eiusmod cillum. Aute eu sit aute proident Lorem dolor ea pariatur. Nisi pariatur consequat tempor occaecat consectetur deserunt irure magna adipisicing anim.\r\n", + "address": "3 Bergen Avenue", + "city": "Tolu", + "state": "Maine", + "zip": 88956, + "country": "Taiwan", + "email": "cookechandler@scentric.com", + "phone": "(975) 467-3292", + "color": "rgb(138,124,136)" + }, + { + "index": 411, + "name": "Jeanine Shaw", + "first": "Kasey", + "last": "Guerrero", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dnevozhai/73.jpg", + "boolean": false, + "guid": "be3a2408-087f-4d1d-ba80-0cffdd225a29", + "integer": 82, + "date": "Sun May 13 2001 01:14:30 GMT-0700 (PDT)", + "shortText": "sint", + "mediumText": "Non quis officia mollit labore velit est in Lorem culpa laboris voluptate et. Exercitation dolor non sit magna Lorem consequat.", + "longText": "Labore ea elit irure eiusmod deserunt aliqua. Aliqua velit esse voluptate sunt duis dolor ad in nostrud consectetur proident. Amet aliquip excepteur veniam commodo dolore do voluptate non. Lorem sunt duis anim officia sunt culpa laborum dolor occaecat.\r\nOfficia cillum est enim labore minim esse voluptate culpa consectetur Lorem aliquip. Quis incididunt esse dolor Lorem nulla nostrud aliquip duis aliqua laboris ut. Qui nisi proident voluptate nostrud anim. Sunt culpa est elit exercitation magna sint.\r\nEst mollit quis fugiat deserunt quis ullamco dolore enim exercitation occaecat nulla aute anim ullamco. Nisi consequat consequat consequat pariatur nostrud ad nostrud voluptate irure anim adipisicing ex in sint. Sunt culpa incididunt laborum laborum in adipisicing excepteur dolor tempor ad. Reprehenderit et mollit sint duis irure sit enim ex dolore est duis sunt incididunt. Eiusmod deserunt et est laborum est ipsum reprehenderit pariatur sunt duis. Sunt minim magna consectetur do occaecat. Duis ut tempor ullamco sunt dolor sit deserunt nisi amet.\r\n", + "address": "3 Conduit Boulevard", + "city": "Itmann", + "state": "Kansas", + "zip": 88741, + "country": "Cuba", + "email": "kaseyguerrero@scentric.com", + "phone": "(807) 548-3703", + "color": "rgb(77,230,193)" + }, + { + "index": 412, + "name": "Mcmahon Reeves", + "first": "Amanda", + "last": "Holloway", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sebasribas/73.jpg", + "boolean": false, + "guid": "d7d7d64e-e5c2-426c-b930-5d2e09aba244", + "integer": 32, + "date": "Thu May 08 1986 15:44:35 GMT-0700 (PDT)", + "shortText": "ut", + "mediumText": "Dolor aute Lorem irure occaecat. Dolore culpa eu ex id eu ad ad quis.", + "longText": "Nisi officia commodo consequat consequat aliquip. Eu non esse sit sit ipsum duis exercitation tempor. Voluptate officia eiusmod consequat sunt esse exercitation sint tempor nulla cillum ad Lorem qui ea. Id dolore elit ullamco ex ea commodo reprehenderit consequat. Anim dolore id ullamco laborum commodo dolore proident ex.\r\nEnim minim elit adipisicing occaecat occaecat veniam. Dolor culpa occaecat adipisicing proident ex id. Incididunt ullamco aute ex anim est ullamco magna nisi. Occaecat duis mollit id duis ipsum reprehenderit proident ut elit consectetur non deserunt eiusmod commodo.\r\nIrure do nulla consequat fugiat. Aliqua proident est voluptate consectetur culpa reprehenderit labore aute voluptate aliqua anim laborum. Voluptate consectetur commodo et enim enim sint eiusmod ut consectetur quis ipsum. Proident dolor ipsum duis cillum sunt.\r\nEsse culpa non esse consectetur mollit reprehenderit commodo velit esse nulla sit ad. Ex ad amet exercitation irure velit reprehenderit. Qui officia incididunt commodo minim fugiat exercitation ut magna amet voluptate ullamco.\r\nEnim occaecat consequat officia ad incididunt magna nulla ea laborum in consectetur laborum Lorem laboris. Deserunt esse cillum nulla anim. Ea laborum amet ex aliquip aliquip.\r\n", + "address": "3 Kingston Avenue", + "city": "Herlong", + "state": "Iowa", + "zip": 83835, + "country": "Turkey", + "email": "amandaholloway@scentric.com", + "phone": "(818) 520-3833", + "color": "rgb(198,210,85)" + }, + { + "index": 413, + "name": "Fox Patterson", + "first": "Samantha", + "last": "Frazier", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cepreygolubev/73.jpg", + "boolean": true, + "guid": "24f589f7-f6f9-4cab-9292-d754c16d9e45", + "integer": 63, + "date": "Fri Mar 16 2007 14:40:33 GMT-0700 (PDT)", + "shortText": "adipisicing velit Lorem", + "mediumText": "Anim amet dolore eiusmod sit ea officia duis aliqua ipsum ea consequat Lorem. Lorem sunt non amet ullamco elit. Aliquip reprehenderit pariatur mollit officia irure irure dolor incididunt voluptate qui sit duis esse amet. Tempor aliqua magna excepteur ad aliqua. In fugiat et aliqua irure excepteur dolore ipsum voluptate.", + "longText": "Consequat sit pariatur exercitation esse tempor adipisicing labore amet nulla elit elit fugiat. Laborum id in ad laborum officia nulla id cillum occaecat. Esse consectetur fugiat veniam ex minim eiusmod nostrud.\r\nExercitation officia velit officia occaecat voluptate ipsum ipsum et fugiat id enim laboris veniam. Commodo eu velit reprehenderit cupidatat. Do incididunt anim irure laborum ut voluptate est aute elit anim. Duis dolor dolore ex sit adipisicing ipsum voluptate voluptate anim. Non adipisicing aute nostrud anim magna id qui quis.\r\nEst sint irure eu pariatur elit id non cupidatat. Exercitation nisi ea commodo in nulla pariatur anim sunt adipisicing culpa esse sint. Quis et culpa ad anim cillum mollit excepteur. Cillum fugiat amet reprehenderit nisi ullamco. In ipsum commodo nisi ut reprehenderit. Deserunt eiusmod labore enim consequat.\r\nSit eu est irure excepteur ea esse magna minim adipisicing consequat ad ut esse. Laboris ut duis culpa nulla cillum sunt sint velit. Excepteur aute aliquip aute id adipisicing aute nulla ex incididunt consequat occaecat cillum. In consectetur aute veniam adipisicing et non dolor aliqua qui eiusmod ea aliquip elit. Ut fugiat aliqua nisi deserunt excepteur eu aute minim culpa aute mollit.\r\nQui et laborum deserunt proident dolore mollit fugiat labore. Dolore et ullamco laboris sit adipisicing do voluptate ullamco nulla amet eu voluptate. Mollit nisi officia nisi incididunt minim culpa commodo irure elit quis in.\r\n", + "address": "2 Roosevelt Court", + "city": "Mammoth", + "state": "Vermont", + "zip": 32042, + "country": "Solomon Islands", + "email": "samanthafrazier@scentric.com", + "phone": "(831) 425-2424", + "color": "rgb(239,229,222)" + }, + { + "index": 414, + "name": "Gloria Mcclain", + "first": "Marisol", + "last": "Marshall", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamphilipjoyce/73.jpg", + "boolean": true, + "guid": "0eb44c61-37e0-4715-9356-2231abd957a0", + "integer": 93, + "date": "Thu Nov 03 2005 21:43:21 GMT-0800 (PST)", + "shortText": "quis nisi ad ut commodo", + "mediumText": "Consequat tempor ad id sint consectetur officia aliqua excepteur duis. Voluptate cupidatat id est eu velit id voluptate aute sunt cillum elit minim nulla tempor.", + "longText": "Magna tempor elit reprehenderit aliquip laboris eu commodo et consectetur laborum officia magna. Veniam fugiat minim ut occaecat incididunt nisi. Sunt adipisicing quis aliqua sit in aliquip eiusmod laborum.\r\n", + "address": "2 Scott Avenue", + "city": "Emison", + "state": "Nebraska", + "zip": 11179, + "country": "Malawi", + "email": "marisolmarshall@scentric.com", + "phone": "(850) 423-2670", + "color": "rgb(179,133,229)" + }, + { + "index": 415, + "name": "Mcintyre Cochran", + "first": "Courtney", + "last": "Faulkner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/russell_baylis/73.jpg", + "boolean": true, + "guid": "07e7e322-9ff5-428a-a8d7-1d9e39a2bc7c", + "integer": 19, + "date": "Tue Aug 26 1975 19:13:06 GMT-0700 (PDT)", + "shortText": "ullamco fugiat", + "mediumText": "Ipsum veniam commodo consectetur occaecat. Aliqua velit dolor aliqua pariatur eu proident enim do eu mollit proident consectetur ipsum.", + "longText": "Sunt in veniam dolor anim cupidatat Lorem proident pariatur culpa. Pariatur ipsum consectetur nostrud officia dolor magna esse anim aliqua. Exercitation ex nisi enim irure veniam eiusmod et ipsum sint do. Consectetur eu minim minim aute aliquip consequat laborum exercitation commodo ex adipisicing culpa.\r\nNulla anim velit amet laboris. Commodo deserunt et duis consectetur consequat aute est pariatur consequat do tempor. Voluptate reprehenderit irure esse minim. Qui tempor id eiusmod id aliquip sit quis quis anim exercitation nulla. Laborum cillum veniam cupidatat incididunt adipisicing magna non laboris labore aliquip. Minim sit sint id ea in adipisicing et ex cillum reprehenderit. Pariatur tempor ea fugiat in irure.\r\nEa culpa proident aliquip officia sint irure Lorem consectetur. Ad reprehenderit adipisicing mollit nostrud ad amet ipsum aliqua dolore dolor eiusmod in. Lorem sit in aliquip esse aute sunt id nostrud ex culpa reprehenderit mollit. Qui laboris anim culpa id fugiat veniam. Reprehenderit exercitation sint pariatur mollit sint sunt. Velit excepteur consectetur proident non labore non aute incididunt duis. Excepteur amet occaecat occaecat commodo ut do velit tempor aliqua laborum.\r\nMinim veniam dolor id id culpa cillum enim sunt qui esse pariatur pariatur aliquip. Esse et ad dolor aliquip. Adipisicing fugiat do elit exercitation eiusmod fugiat ea ullamco mollit non. Minim occaecat ipsum dolore elit anim velit occaecat cupidatat. Irure irure reprehenderit fugiat ad mollit ullamco esse sit. Fugiat veniam reprehenderit amet ullamco nostrud irure ea reprehenderit.\r\n", + "address": "4 Nassau Street", + "city": "Bowden", + "state": "Florida", + "zip": 14172, + "country": "Samoa", + "email": "courtneyfaulkner@scentric.com", + "phone": "(861) 587-3003", + "color": "rgb(87,119,212)" + }, + { + "index": 416, + "name": "Sheppard Pacheco", + "first": "Shepard", + "last": "Hopper", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kijanmaharjan/73.jpg", + "boolean": false, + "guid": "25a22dc2-f676-4e38-b172-8b3d6598cafd", + "integer": 98, + "date": "Thu Jun 19 2003 12:30:27 GMT-0700 (PDT)", + "shortText": "incididunt ad ad nulla elit", + "mediumText": "Consectetur magna dolore consequat consectetur officia labore culpa aute deserunt officia laboris exercitation. Duis labore consectetur ex id id ullamco voluptate commodo ut ea cillum.", + "longText": "Ea do adipisicing enim mollit cillum officia sunt amet exercitation esse. Incididunt deserunt dolore deserunt sunt ut tempor. Quis magna consectetur commodo nisi eiusmod cupidatat ea velit. Consectetur Lorem cillum laborum velit enim esse et officia ipsum consectetur sit.\r\nDo cillum irure aliqua nostrud elit proident sunt deserunt pariatur sunt ad. Esse adipisicing fugiat sunt irure duis eu non officia eiusmod fugiat. Quis ut officia commodo elit ad veniam ut eu amet do. Mollit eiusmod Lorem adipisicing officia cillum culpa deserunt ullamco reprehenderit eu labore voluptate. Irure reprehenderit consequat tempor laboris exercitation aliquip velit nulla. Tempor quis adipisicing et esse. Lorem ea nulla consequat culpa aliquip tempor amet.\r\n", + "address": "4 Buffalo Avenue", + "city": "Tampico", + "state": "New Jersey", + "zip": 90074, + "country": "United Kingdom", + "email": "shepardhopper@scentric.com", + "phone": "(985) 565-3301", + "color": "rgb(103,234,218)" + }, + { + "index": 417, + "name": "Hobbs Chapman", + "first": "Byers", + "last": "Craig", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/73.jpg", + "boolean": true, + "guid": "355ebabb-a1d0-4ed7-adfb-e8a0515d4ee5", + "integer": 3, + "date": "Fri Mar 26 2010 15:05:55 GMT-0700 (PDT)", + "shortText": "cupidatat", + "mediumText": "Aute sit fugiat nostrud enim proident ad quis reprehenderit irure. Enim esse ex sunt dolore id occaecat proident fugiat cillum non ex dolore.", + "longText": "Nisi excepteur cillum incididunt ipsum ullamco esse do sit duis deserunt pariatur. Eiusmod commodo veniam excepteur deserunt veniam aliquip aute nisi dolore ut do cupidatat. Aliqua tempor occaecat amet sit do laboris ea dolor mollit duis laborum dolore aute deserunt. Nulla non duis sunt do eiusmod sunt labore dolore excepteur cillum reprehenderit veniam elit reprehenderit. Occaecat Lorem incididunt amet ad ullamco minim ullamco enim nostrud aute occaecat duis Lorem. Ea labore in nostrud pariatur ea fugiat deserunt. Laborum eu enim officia amet sint et qui in id.\r\nFugiat minim adipisicing anim duis eiusmod id deserunt ea minim esse est nostrud laboris cupidatat. Ex ut reprehenderit commodo veniam. Aliquip duis incididunt proident ut sit aliquip occaecat commodo reprehenderit qui. Enim enim dolor non quis magna esse aliqua labore labore officia ut ut anim. Ex dolor velit aliqua pariatur.\r\nDolor enim ad non dolor do qui nulla exercitation eiusmod cillum elit minim non. Esse sint voluptate ullamco et sit esse. Ut ullamco non eiusmod anim quis anim ullamco irure amet. Amet ut pariatur ad mollit eu occaecat aliqua adipisicing. Dolore et sint veniam qui ad veniam fugiat aliqua dolor. Deserunt eiusmod et reprehenderit consequat enim quis deserunt dolor.\r\nCillum amet aliquip laborum eiusmod. Consequat commodo aliquip velit quis fugiat velit. Lorem nulla nostrud deserunt aliquip Lorem sunt et. Ea sunt duis officia Lorem elit do commodo. Tempor nostrud incididunt sunt nisi fugiat ex eu. Commodo nisi do duis non culpa consectetur ut exercitation ad in. Laborum laborum tempor sit laborum labore reprehenderit voluptate.\r\n", + "address": "2 Aberdeen Street", + "city": "Maplewood", + "state": "Wisconsin", + "zip": 44000, + "country": "French Guiana", + "email": "byerscraig@scentric.com", + "phone": "(830) 519-3986", + "color": "rgb(189,244,220)" + }, + { + "index": 418, + "name": "Lisa Yates", + "first": "Lea", + "last": "Underwood", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/noufalibrahim/73.jpg", + "boolean": true, + "guid": "dc5b7819-35b2-4a5e-b228-74fa3c7bdf7a", + "integer": 38, + "date": "Mon Nov 07 2011 03:37:10 GMT-0800 (PST)", + "shortText": "laborum ipsum enim et quis", + "mediumText": "Nulla proident ut aliquip consectetur occaecat aliqua laboris incididunt. Reprehenderit labore laborum sint non mollit reprehenderit amet ullamco proident dolore cupidatat ad adipisicing. Cupidatat consectetur mollit enim sit ipsum sunt consequat.", + "longText": "Lorem adipisicing velit in ipsum aliqua ad anim nulla tempor id eu laboris. Sunt velit minim elit laboris tempor irure culpa laboris laborum qui pariatur est. Ea laboris id nostrud exercitation non. Aute irure do eiusmod in. Anim pariatur proident enim ex commodo cupidatat nisi dolore non est cupidatat reprehenderit. Id deserunt amet aliquip in quis do ipsum duis ipsum deserunt commodo culpa incididunt irure. Deserunt aliquip incididunt eiusmod laboris et culpa qui Lorem ad magna voluptate ad est.\r\nMollit velit ut eu magna non proident ullamco. Aliquip incididunt consectetur nostrud sunt sint eu labore magna ex. Reprehenderit labore cupidatat voluptate eiusmod pariatur consequat proident aliquip. Ea irure ad aliqua eu exercitation ullamco laborum duis. Ea et quis esse magna sunt quis tempor irure elit veniam sunt nulla irure nisi.\r\nIrure consequat veniam esse ea nostrud excepteur ipsum. Dolore minim tempor in ad ex aliquip amet. Sint id excepteur commodo ipsum ullamco consequat ut nisi nulla.\r\nQuis sunt reprehenderit ad quis. Fugiat commodo adipisicing ex irure consectetur ullamco ullamco culpa ullamco aliqua laborum aliquip duis incididunt. Lorem Lorem est fugiat ex veniam minim amet magna minim quis incididunt ullamco nostrud. Qui nostrud reprehenderit sint non sint irure adipisicing mollit mollit proident consequat nostrud esse pariatur. Ex aute velit magna enim veniam enim id eiusmod. Adipisicing Lorem eiusmod ea minim anim do deserunt pariatur aliquip qui ullamco velit qui.\r\nMollit occaecat voluptate sint ea dolor non ullamco nostrud enim minim duis sit amet. Enim ex reprehenderit nisi ipsum deserunt. Aliqua sit Lorem esse qui et deserunt esse.\r\n", + "address": "4 Apollo Street", + "city": "Gilgo", + "state": "Washington", + "zip": 82570, + "country": "Latvia", + "email": "leaunderwood@scentric.com", + "phone": "(828) 506-3671", + "color": "rgb(157,198,63)" + }, + { + "index": 419, + "name": "Casey Long", + "first": "Ella", + "last": "Ingram", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/avclarkey/73.jpg", + "boolean": false, + "guid": "9594164f-bed6-4350-84a7-8006ac0ac9a1", + "integer": 72, + "date": "Sun Nov 13 1988 09:05:46 GMT-0800 (PST)", + "shortText": "irure labore", + "mediumText": "Esse aliquip est ullamco velit. Amet tempor est consectetur consequat voluptate. Tempor ipsum fugiat enim et. Id officia cupidatat magna ullamco enim occaecat exercitation in sunt enim do nisi culpa cupidatat.", + "longText": "Eiusmod in et sit voluptate culpa sit velit et irure minim tempor ipsum. Aliqua elit consectetur ea aliqua excepteur eiusmod cillum dolor in ullamco. Commodo quis qui laborum labore minim. Ipsum est do proident labore incididunt nisi. Adipisicing magna velit sit consequat mollit proident commodo quis. Laboris quis elit adipisicing labore consectetur incididunt in reprehenderit enim. Magna cillum enim id veniam velit aliquip amet deserunt ea.\r\nReprehenderit ea ullamco do id tempor in duis nulla pariatur. Eiusmod adipisicing in consectetur exercitation. Fugiat enim veniam occaecat esse exercitation eu ullamco cillum quis consequat.\r\nAliqua non enim sunt amet cillum id proident do nulla eiusmod eu. Fugiat in nisi incididunt irure enim. Occaecat culpa tempor culpa anim laborum dolore consectetur Lorem eu.\r\nOfficia et aliqua aliqua ex occaecat est magna officia enim. Commodo officia dolor officia esse aute eiusmod. Velit quis reprehenderit reprehenderit laborum occaecat voluptate. Eiusmod dolor culpa irure do mollit excepteur ullamco aute est culpa. Ad ullamco incididunt minim eu mollit irure esse adipisicing laborum mollit cupidatat dolore.\r\n", + "address": "2 Dorchester Road", + "city": "Kersey", + "state": "Oregon", + "zip": 52838, + "country": "Netherlands Antilles", + "email": "ellaingram@scentric.com", + "phone": "(939) 546-2501", + "color": "rgb(50,99,109)" + }, + { + "index": 420, + "name": "Kent Fitzpatrick", + "first": "Lara", + "last": "Vinson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/arindam_/73.jpg", + "boolean": true, + "guid": "8c5b6ef8-755b-48a6-9d5c-2fbfc73015b9", + "integer": 94, + "date": "Wed Nov 13 1991 18:16:19 GMT-0800 (PST)", + "shortText": "labore", + "mediumText": "Esse ipsum culpa magna consequat fugiat magna aute.", + "longText": "Elit dolore incididunt non anim cupidatat magna exercitation quis ut eiusmod adipisicing mollit excepteur ut. Voluptate sunt velit cupidatat consectetur occaecat est sint eiusmod. Ullamco sint do magna quis culpa sit id pariatur reprehenderit reprehenderit cupidatat aliqua reprehenderit. Et cillum est nisi laborum nisi officia sint ut deserunt eiusmod in. Incididunt dolore duis eiusmod eiusmod officia.\r\nEiusmod occaecat sint mollit aliqua dolore velit ea laboris cupidatat adipisicing ullamco duis commodo. Laborum commodo officia tempor ea id eu aliquip quis veniam Lorem nostrud in duis fugiat. Quis aliquip esse cupidatat cillum quis sint. Aute sunt qui dolore laboris.\r\nTempor sunt tempor minim fugiat cupidatat occaecat aute adipisicing eu minim mollit fugiat exercitation. Tempor occaecat sint ad enim sit occaecat Lorem nisi. Sunt sunt occaecat nisi nisi eiusmod fugiat labore adipisicing sit sint ut.\r\nConsequat minim ad laboris et est. Voluptate cupidatat amet dolore consectetur deserunt nulla laboris proident consectetur nulla. Ex voluptate magna velit ex cillum do. Adipisicing adipisicing esse magna amet consectetur pariatur aute cupidatat eiusmod velit. Fugiat sint occaecat tempor qui cillum ad nulla. Aliquip aliqua in aute dolor laborum cupidatat adipisicing mollit excepteur tempor do sunt adipisicing in. Ipsum ex dolore cupidatat non minim ullamco velit cillum irure aute irure occaecat.\r\n", + "address": "2 Reeve Place", + "city": "Grahamtown", + "state": "Illinois", + "zip": 69832, + "country": "Colombia", + "email": "laravinson@scentric.com", + "phone": "(965) 578-3210", + "color": "rgb(152,231,185)" + }, + { + "index": 421, + "name": "Claudia Ochoa", + "first": "Maynard", + "last": "Giles", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmakardaras/73.jpg", + "boolean": true, + "guid": "97fdeebe-aaf9-4f67-a240-254056b3fbc4", + "integer": 43, + "date": "Thu Oct 04 2007 14:11:47 GMT-0700 (PDT)", + "shortText": "commodo nostrud", + "mediumText": "Consectetur aliquip reprehenderit magna id ex sint nostrud aute aliquip adipisicing. Laboris mollit aute ad ea pariatur proident laborum in sint consectetur velit anim.", + "longText": "Ea sint id dolore in enim non nulla tempor dolor excepteur non quis minim occaecat. Velit eu nostrud in eiusmod irure ea nulla in dolore Lorem consectetur ex in tempor. Ad duis ullamco dolor elit Lorem est dolore irure et non enim. Tempor laborum dolor velit consequat incididunt.\r\n", + "address": "2 Dikeman Street", + "city": "Wawona", + "state": "West Virginia", + "zip": 90747, + "country": "Wallis and Futuna Islands", + "email": "maynardgiles@scentric.com", + "phone": "(868) 426-2611", + "color": "rgb(82,210,230)" + }, + { + "index": 422, + "name": "Deleon Madden", + "first": "Jeri", + "last": "Roy", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/georgespillman/73.jpg", + "boolean": true, + "guid": "0eeed2b0-573c-4b2a-8cf7-24f3929d42f6", + "integer": 3, + "date": "Mon Jul 24 2006 08:25:36 GMT-0700 (PDT)", + "shortText": "tempor", + "mediumText": "Veniam mollit ut veniam anim ex proident nostrud. Qui dolore aute velit non voluptate sit ad reprehenderit sunt mollit. Reprehenderit fugiat occaecat duis mollit.", + "longText": "Reprehenderit exercitation nisi consequat veniam duis quis id aliqua ut ex aliqua sunt ipsum. Ad ad amet qui mollit officia Lorem exercitation dolore nulla. Quis commodo mollit sunt labore aliquip ipsum. Excepteur nisi non esse duis aliqua commodo officia consequat amet aliqua voluptate exercitation in nulla.\r\nConsectetur aute sit quis qui laboris. Laboris anim nulla in voluptate. Commodo magna nisi nisi commodo consectetur enim est do exercitation nisi. Mollit aliquip sint ea qui laborum.\r\nConsectetur eiusmod magna nisi mollit sint sunt id nostrud dolor eu. Exercitation mollit fugiat anim nisi nisi irure ipsum tempor eu. Est nisi consequat occaecat voluptate ad velit mollit amet. Elit est quis laboris culpa proident occaecat adipisicing officia cillum ea reprehenderit. Do quis ex aliqua culpa.\r\nIn minim proident enim nisi quis consequat. Deserunt veniam occaecat laborum laborum ex ipsum cupidatat commodo commodo adipisicing dolor in. Ex et est irure irure consequat ut sint in voluptate laborum eu nulla officia aute. Non enim magna nostrud deserunt minim pariatur irure elit ex qui minim. Exercitation nostrud dolore cupidatat dolore excepteur excepteur ad qui ex. Enim non occaecat ea enim officia exercitation proident irure nulla occaecat reprehenderit elit nostrud id. Culpa pariatur fugiat mollit labore non officia magna exercitation anim esse et.\r\n", + "address": "2 Lafayette Walk", + "city": "Kennedyville", + "state": "Mississippi", + "zip": 49852, + "country": "Bouvet Island", + "email": "jeriroy@scentric.com", + "phone": "(840) 457-2791", + "color": "rgb(127,95,131)" + }, + { + "index": 423, + "name": "Alexander Carroll", + "first": "Spears", + "last": "Obrien", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fireupman/73.jpg", + "boolean": false, + "guid": "36236dec-3738-49d8-befd-946c2774fd1e", + "integer": 88, + "date": "Tue Jul 01 1986 19:56:06 GMT-0700 (PDT)", + "shortText": "aute non ex Lorem", + "mediumText": "Proident Lorem aliqua laboris adipisicing ullamco velit consequat exercitation nisi. Laborum enim duis nulla reprehenderit est eu ad laboris ad.", + "longText": "Adipisicing tempor commodo nulla sint tempor veniam deserunt do eiusmod. Do tempor voluptate cillum ipsum veniam voluptate occaecat enim cillum anim mollit ad adipisicing. Consequat consequat aute dolor anim ut. Incididunt Lorem mollit anim esse veniam.\r\nCillum consequat proident consectetur ex proident ad cupidatat laboris do officia. Amet deserunt eu eiusmod aliquip esse ipsum laboris. Do dolor nostrud dolore sint quis nulla pariatur quis adipisicing. Culpa exercitation incididunt ullamco culpa sit.\r\nDolore irure sunt eiusmod tempor. Esse deserunt ex elit Lorem et nulla esse officia ipsum culpa. Lorem sunt duis tempor nostrud enim ea excepteur ad. Ea ut commodo minim et adipisicing veniam exercitation ad et dolor et tempor et. Minim duis Lorem excepteur ipsum ipsum ea esse velit voluptate dolore tempor sunt nulla incididunt. Excepteur est est consectetur in. Aliquip nisi ipsum deserunt nulla.\r\n", + "address": "3 Doone Court", + "city": "Fulford", + "state": "Rhode Island", + "zip": 83826, + "country": "Niue", + "email": "spearsobrien@scentric.com", + "phone": "(832) 502-3659", + "color": "rgb(138,211,151)" + }, + { + "index": 424, + "name": "Debora Gibson", + "first": "Crane", + "last": "Lawrence", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kylefrost/73.jpg", + "boolean": false, + "guid": "0a2de76d-c5db-4e74-89e0-3ff39bf504ad", + "integer": 29, + "date": "Fri Apr 01 1977 03:54:28 GMT-0800 (PST)", + "shortText": "reprehenderit", + "mediumText": "Esse veniam veniam in do incididunt non culpa laborum.", + "longText": "Ullamco exercitation deserunt enim est ea. Ullamco irure ipsum dolore labore do nisi in minim occaecat irure reprehenderit sit. Elit culpa officia ut labore nulla duis ullamco magna culpa veniam. Cupidatat irure esse voluptate amet sit aliquip est pariatur ut deserunt enim labore. Nulla occaecat cupidatat et ex amet qui esse. Eu ullamco adipisicing aliquip consectetur voluptate officia magna incididunt officia reprehenderit.\r\nNon id magna esse tempor commodo reprehenderit quis culpa dolore mollit cupidatat non. Ullamco sit aute consectetur aliquip et amet eu dolore dolor amet occaecat. Cillum labore cupidatat esse veniam irure dolor minim minim dolore excepteur do minim exercitation est. Tempor dolor Lorem ipsum cupidatat aliqua ea est velit excepteur excepteur anim magna esse consectetur. Labore fugiat laboris excepteur mollit qui esse aliquip aliqua tempor. Eiusmod magna eiusmod incididunt exercitation nostrud dolore consectetur sunt ullamco. Cillum aliquip et cillum officia est nostrud enim sit irure proident elit ipsum.\r\n", + "address": "3 Dean Street", + "city": "Freeburn", + "state": "Georgia", + "zip": 97509, + "country": "Sweden", + "email": "cranelawrence@scentric.com", + "phone": "(871) 449-2232", + "color": "rgb(249,221,142)" + }, + { + "index": 425, + "name": "Effie Witt", + "first": "Tamika", + "last": "Mcfarland", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/quser/73.jpg", + "boolean": false, + "guid": "24996c53-4fce-4e30-9a15-01ad7f8a690e", + "integer": 72, + "date": "Sun Nov 03 1991 09:36:14 GMT-0800 (PST)", + "shortText": "dolore ullamco do dolor", + "mediumText": "Ad ex aliquip minim exercitation ex incididunt adipisicing sit sit aliqua. Laboris voluptate sint Lorem officia pariatur nostrud non amet ea consectetur esse. Amet aliqua id est irure minim duis nostrud laboris laborum reprehenderit. Ea anim proident nisi adipisicing dolor. Magna mollit do irure do veniam minim proident.", + "longText": "Laboris aute duis aliquip pariatur adipisicing irure adipisicing sunt irure commodo nulla occaecat amet veniam. Nostrud ex voluptate elit nulla voluptate culpa dolore excepteur. Qui ea ex adipisicing proident sint adipisicing ea. Nulla consequat enim et consequat ad ullamco magna anim tempor excepteur. Amet officia irure adipisicing in eiusmod minim eu sunt in veniam culpa. Quis eu aliqua proident in aute proident ea. Adipisicing occaecat laborum consectetur elit aute velit ullamco ad cillum ipsum non aliquip.\r\nCommodo qui incididunt deserunt enim excepteur ut fugiat. Consectetur aliquip incididunt est minim nostrud irure officia enim occaecat quis minim pariatur. Cillum aliquip commodo excepteur incididunt officia tempor ea occaecat in tempor magna.\r\n", + "address": "4 Homecrest Avenue", + "city": "Tioga", + "state": "New Mexico", + "zip": 47382, + "country": "Bolivia", + "email": "tamikamcfarland@scentric.com", + "phone": "(822) 428-3372", + "color": "rgb(123,143,247)" + }, + { + "index": 426, + "name": "Marissa Winters", + "first": "Bradford", + "last": "Tate", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maikelk/73.jpg", + "boolean": true, + "guid": "03ba235d-b8bd-446d-a82f-209ef1f02bc3", + "integer": 21, + "date": "Sat Feb 21 1987 11:19:00 GMT-0800 (PST)", + "shortText": "deserunt mollit", + "mediumText": "Velit non amet irure dolore nisi proident nisi.", + "longText": "Et ad occaecat ipsum amet aliquip sit nisi. Adipisicing ut esse dolore aliquip ut. Aliqua sunt anim ullamco voluptate eiusmod est et nulla amet duis voluptate enim elit. Ea consequat ea aliquip nulla enim in enim mollit ea consequat.\r\n", + "address": "3 Bush Street", + "city": "Trinway", + "state": "Arizona", + "zip": 66056, + "country": "Barbados", + "email": "bradfordtate@scentric.com", + "phone": "(895) 532-2566", + "color": "rgb(254,114,222)" + }, + { + "index": 427, + "name": "Keri Holt", + "first": "Pate", + "last": "Ford", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ifarafonow/73.jpg", + "boolean": true, + "guid": "fe01b1c1-e14b-4167-92b2-6eef711b41a3", + "integer": 74, + "date": "Sun Jul 01 1979 19:51:30 GMT-0700 (PDT)", + "shortText": "eiusmod pariatur sunt sit", + "mediumText": "Tempor officia velit commodo aute laborum nostrud incididunt id id et. Esse cillum do deserunt sit tempor nisi ipsum sint proident sint. Aute officia esse voluptate pariatur ut. In consequat eiusmod exercitation nostrud reprehenderit et.", + "longText": "Voluptate pariatur eu eu voluptate enim cillum consequat proident pariatur esse est veniam. Qui nisi nulla laborum adipisicing irure occaecat. Mollit amet ullamco velit et reprehenderit amet. Ex ex quis do et anim fugiat exercitation nulla fugiat. Fugiat deserunt irure voluptate consequat reprehenderit Lorem sint ullamco. Ipsum non labore occaecat incididunt amet esse elit enim nostrud eu Lorem nisi.\r\nId culpa non enim aliquip dolore. Laborum nostrud minim deserunt excepteur exercitation voluptate eiusmod. Adipisicing pariatur occaecat voluptate reprehenderit aute. Aliquip incididunt non adipisicing veniam adipisicing occaecat do irure occaecat aliqua veniam laboris. Nulla veniam minim reprehenderit laboris in ut id nulla eiusmod dolor ut voluptate. Tempor enim nostrud ut velit eu cupidatat amet.\r\nAute ipsum ex nulla ut labore ex exercitation nulla anim. Pariatur sit voluptate reprehenderit enim amet. In duis sint excepteur anim proident elit proident non adipisicing exercitation aliquip. Reprehenderit occaecat duis ipsum eu et ad elit do sunt fugiat aliqua. Ea enim mollit dolore qui reprehenderit pariatur nostrud. Aliqua voluptate adipisicing ipsum occaecat cupidatat est do esse sunt enim aliquip sit adipisicing nulla.\r\nId ullamco amet ad deserunt. Pariatur duis ea excepteur proident ad cupidatat consectetur mollit et sint officia voluptate. Sunt et aliqua anim quis proident culpa cillum. Deserunt consequat dolore do anim eiusmod magna. Quis dolor adipisicing anim aliquip exercitation quis adipisicing. Culpa ipsum ea enim anim aliqua occaecat aliquip non reprehenderit dolor. Non proident labore enim est.\r\nProident reprehenderit sunt est aliqua. Dolor ex voluptate occaecat Lorem velit minim do voluptate aute in aliqua. Aute ut voluptate Lorem eu occaecat non deserunt nulla Lorem do minim magna. Duis sit nisi commodo aliquip enim pariatur. Cillum velit officia proident irure dolor.\r\n", + "address": "3 Aviation Road", + "city": "Baker", + "state": "Texas", + "zip": 94487, + "country": "Haiti", + "email": "pateford@scentric.com", + "phone": "(933) 513-2608", + "color": "rgb(74,250,221)" + }, + { + "index": 428, + "name": "Billie Dennis", + "first": "Noreen", + "last": "Chambers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ananya159/73.jpg", + "boolean": true, + "guid": "1277af24-5433-4c02-a123-9dbc3554824d", + "integer": 91, + "date": "Tue Jun 01 1999 05:28:24 GMT-0700 (PDT)", + "shortText": "anim consectetur minim esse", + "mediumText": "Sunt eu velit irure ipsum velit.", + "longText": "Culpa ipsum irure eiusmod et ad esse cillum. In ipsum qui dolor dolor. Ex deserunt incididunt duis exercitation quis est esse. Anim adipisicing ipsum aute qui mollit. Occaecat veniam excepteur velit nostrud cillum in nostrud ex magna ex.\r\nNostrud ipsum do deserunt ipsum consequat cupidatat elit fugiat duis duis consequat magna ea. Do labore ea do et cupidatat mollit et eiusmod. Exercitation exercitation aliqua ea irure duis. Lorem ipsum eu veniam ad nulla nisi ipsum in eu laborum pariatur ipsum cupidatat officia. Adipisicing pariatur velit commodo ipsum sint fugiat elit esse dolore ipsum ut exercitation officia excepteur.\r\n", + "address": "2 Jerome Street", + "city": "Fostoria", + "state": "District Of Columbia", + "zip": 51169, + "country": "Heard and McDonald Islands", + "email": "noreenchambers@scentric.com", + "phone": "(921) 600-2756", + "color": "rgb(240,228,68)" + }, + { + "index": 429, + "name": "Norris Henderson", + "first": "Rhea", + "last": "Velasquez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/horaciobella/73.jpg", + "boolean": true, + "guid": "f6c07756-a3f1-410c-a912-acb877dca497", + "integer": 10, + "date": "Thu Jul 17 2008 11:56:06 GMT-0700 (PDT)", + "shortText": "adipisicing irure cillum", + "mediumText": "Sint duis irure cupidatat aliqua nostrud magna aliquip do do quis mollit occaecat.", + "longText": "Dolor et duis nisi est elit dolore amet enim et ad officia duis. Pariatur adipisicing aliquip reprehenderit exercitation qui occaecat consequat excepteur anim est do mollit amet. In eu eiusmod ea elit. Laborum duis culpa reprehenderit reprehenderit.\r\nOccaecat culpa aliquip elit sunt proident mollit ad reprehenderit occaecat consequat. Id pariatur commodo consectetur cillum laboris et dolor ea voluptate. Laborum magna nisi sunt eu ut mollit amet esse consectetur sunt. Est qui ea cillum excepteur ullamco velit excepteur in ea incididunt ipsum. Tempor reprehenderit velit non adipisicing dolore non nisi proident consequat sit. Nulla est incididunt sint proident do sunt ipsum adipisicing Lorem ad.\r\nNulla excepteur enim ipsum est. Dolor magna consequat ex magna nostrud duis eiusmod enim nulla reprehenderit esse fugiat irure amet. Et officia voluptate aliqua dolore fugiat voluptate nisi mollit occaecat ipsum qui. Fugiat sint magna et cillum aliqua cupidatat deserunt cupidatat aute laboris.\r\nEiusmod consequat ea aute cillum do enim quis commodo excepteur magna labore elit. Voluptate nisi velit dolore consequat elit irure fugiat. Sunt veniam ea enim ullamco esse excepteur quis voluptate excepteur Lorem nostrud amet. Ad commodo labore excepteur velit sunt ut. Ullamco consectetur esse voluptate eu minim deserunt nulla ipsum reprehenderit deserunt laborum.\r\nDuis adipisicing reprehenderit enim qui. Sit duis fugiat dolore consequat mollit incididunt irure ullamco proident quis minim qui ex irure. Est magna laboris magna minim aute excepteur commodo ullamco duis duis nulla sunt deserunt. Irure sunt ea do ipsum aliquip nisi nulla ex ex nostrud. Elit amet voluptate commodo id minim ut est ut minim adipisicing in. Eu nostrud anim irure do eu consectetur anim esse eiusmod officia laboris.\r\n", + "address": "2 Fillmore Place", + "city": "Castleton", + "state": "Virgin Islands", + "zip": 22826, + "country": "United States", + "email": "rheavelasquez@scentric.com", + "phone": "(801) 444-3966", + "color": "rgb(186,114,65)" + }, + { + "index": 430, + "name": "Carrillo Park", + "first": "Ola", + "last": "Allison", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thatdesigner/73.jpg", + "boolean": true, + "guid": "3a544cbd-1319-4b62-b664-89f96dc2d58f", + "integer": 79, + "date": "Wed Feb 03 1999 14:08:18 GMT-0800 (PST)", + "shortText": "tempor", + "mediumText": "Id et eiusmod ad sunt laborum. Veniam magna veniam ea incididunt occaecat quis veniam et laboris aliquip ea Lorem ut. Eu officia incididunt eu veniam.", + "longText": "Voluptate reprehenderit nostrud non adipisicing ad ex enim. Id incididunt veniam pariatur ut id qui fugiat reprehenderit laboris consequat officia. Aliquip exercitation excepteur elit aliqua esse tempor nulla laborum.\r\nIn mollit reprehenderit irure duis cupidatat ad velit irure ad. Est et laborum non reprehenderit. Est elit non aliquip pariatur do dolore Lorem enim exercitation tempor. Amet culpa ut nostrud dolor fugiat.\r\nNon duis aliquip laboris consequat nisi sunt ad velit ipsum eu deserunt sit labore. Qui velit ipsum cupidatat ad irure nisi adipisicing eu. Reprehenderit deserunt cillum ut exercitation labore enim deserunt elit. Incididunt sint reprehenderit aliquip eiusmod consectetur quis ad pariatur ea dolor ea minim ex. Non labore labore amet excepteur aliquip amet anim do in eiusmod sunt laboris nisi. Est qui qui laboris veniam elit elit sunt in. Tempor commodo ex ea laborum.\r\nDolore dolore dolore labore velit fugiat commodo consectetur. Ullamco qui quis labore velit exercitation irure voluptate nulla duis occaecat. Ad quis ullamco magna occaecat esse dolore et id reprehenderit enim nisi commodo irure.\r\nFugiat proident deserunt nulla et pariatur ullamco do. Enim cillum nulla sint in laboris cillum excepteur anim irure ad sint laboris tempor nostrud. Enim pariatur amet sint non nisi commodo. Cupidatat qui incididunt sit labore ex enim Lorem aute excepteur veniam consequat nisi labore. Proident dolor excepteur aute et proident. Veniam excepteur veniam laboris deserunt sint.\r\n", + "address": "3 Noel Avenue", + "city": "Seymour", + "state": "Puerto Rico", + "zip": 59608, + "country": "Jamaica", + "email": "olaallison@scentric.com", + "phone": "(813) 560-2883", + "color": "rgb(206,102,76)" + }, + { + "index": 431, + "name": "Aileen Manning", + "first": "Sophia", + "last": "House", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/snaphappydad/73.jpg", + "boolean": false, + "guid": "832335a5-d05a-4d43-8c98-091dad23386f", + "integer": 82, + "date": "Fri Feb 17 2012 22:56:46 GMT-0800 (PST)", + "shortText": "amet est Lorem velit tempor", + "mediumText": "Cupidatat incididunt do aliqua velit occaecat officia occaecat amet occaecat Lorem veniam eu ipsum cillum. Amet esse aliqua in qui excepteur commodo veniam ut velit.", + "longText": "Officia esse consectetur proident consequat. Ex eiusmod cupidatat labore velit anim fugiat amet ipsum labore. Ut velit id ullamco occaecat et. Labore amet consequat excepteur adipisicing ut nisi dolore consectetur tempor veniam mollit reprehenderit quis. Esse ad irure elit et.\r\n", + "address": "3 Cove Lane", + "city": "Mappsville", + "state": "Maryland", + "zip": 46354, + "country": "Sao Tome and Principe", + "email": "sophiahouse@scentric.com", + "phone": "(829) 411-2721", + "color": "rgb(188,234,157)" + }, + { + "index": 432, + "name": "Angeline Welch", + "first": "Riggs", + "last": "Albert", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cristianovalim/73.jpg", + "boolean": true, + "guid": "ff60a0af-9800-4828-beec-cc4ad3e7a4f5", + "integer": 75, + "date": "Wed Oct 28 1992 15:16:43 GMT-0800 (PST)", + "shortText": "laborum aliquip minim", + "mediumText": "Minim est qui proident deserunt nostrud commodo nisi non in veniam duis. Nisi minim aliqua cupidatat est dolore consequat nisi. Proident ut incididunt aute ea qui id reprehenderit veniam commodo.", + "longText": "Eu velit exercitation id amet. Incididunt eu nulla occaecat sunt pariatur culpa magna incididunt mollit id consectetur exercitation. Dolor pariatur voluptate aliquip quis aliquip anim amet qui commodo elit fugiat. Non dolore Lorem laboris voluptate voluptate ex anim eiusmod quis id magna proident.\r\nElit aliqua velit consequat velit laboris officia ut cillum mollit nulla culpa. Ut ea qui minim deserunt aliquip cillum ea proident duis. Laborum fugiat consequat ex magna irure proident reprehenderit officia consectetur fugiat excepteur laborum et. Est veniam non elit nisi minim. Ex sunt elit minim incididunt eu officia excepteur mollit nisi ad. Do est nisi magna et tempor culpa. Elit irure ex ut cillum ipsum ipsum ex esse dolor.\r\n", + "address": "4 Irvington Place", + "city": "Kempton", + "state": "Massachusetts", + "zip": 55149, + "country": "Belarus", + "email": "riggsalbert@scentric.com", + "phone": "(964) 471-3289", + "color": "rgb(143,144,152)" + }, + { + "index": 433, + "name": "Wilder Parks", + "first": "Guzman", + "last": "Gay", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pmeissner/73.jpg", + "boolean": true, + "guid": "34d47442-340f-4017-a323-333b9d8966a7", + "integer": 46, + "date": "Sat May 01 1982 19:47:12 GMT-0700 (PDT)", + "shortText": "fugiat nisi fugiat", + "mediumText": "Lorem ipsum ipsum elit ad reprehenderit do culpa proident qui labore ea cillum tempor aute. Velit nisi anim excepteur commodo tempor. Id reprehenderit reprehenderit adipisicing exercitation aliqua ipsum dolore est cillum pariatur in quis est. Ad adipisicing irure qui ullamco eiusmod excepteur laborum.", + "longText": "Lorem id elit est velit veniam ullamco voluptate et do. Non ea ad minim Lorem in. Laborum amet enim magna et qui eu ullamco labore do minim in magna esse veniam. Incididunt nostrud nulla ut excepteur et et. Laborum labore qui adipisicing consectetur adipisicing incididunt excepteur Lorem eu nulla tempor ipsum. Ipsum labore dolore in qui irure pariatur proident laboris tempor ipsum culpa est ea cillum. Lorem sunt eu proident enim.\r\n", + "address": "4 Cumberland Street", + "city": "Enlow", + "state": "Oklahoma", + "zip": 93935, + "country": "Russian Federation", + "email": "guzmangay@scentric.com", + "phone": "(995) 459-2856", + "color": "rgb(54,118,212)" + }, + { + "index": 434, + "name": "Nash Valencia", + "first": "Leanne", + "last": "Stafford", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akbarbobojonov/73.jpg", + "boolean": false, + "guid": "0594778f-1bb9-4338-88af-480e9dcce7ec", + "integer": 12, + "date": "Wed Aug 07 1985 09:48:17 GMT-0700 (PDT)", + "shortText": "exercitation", + "mediumText": "Incididunt commodo exercitation do eu laborum do fugiat aute dolore nostrud proident tempor. Aute laborum elit dolor sint aliquip mollit laboris tempor ea irure incididunt magna. Id aliquip sit do magna.", + "longText": "Consectetur voluptate duis cupidatat incididunt laborum. Magna non laboris reprehenderit duis consequat cupidatat aliquip ex aliquip pariatur. Adipisicing incididunt pariatur magna adipisicing amet dolore pariatur laboris nulla esse duis labore. Dolore est aute do do culpa pariatur. Consequat ea minim qui laborum culpa velit id fugiat nostrud sint. Ipsum irure cillum quis officia eu laboris.\r\nLorem ex duis eu deserunt minim cupidatat et non non et sunt. Pariatur ut culpa et non non voluptate ut velit sunt eu non. Cillum exercitation veniam nostrud est id laboris. Tempor do et consectetur reprehenderit ut dolor deserunt fugiat consectetur velit. Nulla elit deserunt dolor do cupidatat amet velit consectetur. Consectetur in nostrud sunt deserunt est aute cupidatat mollit aliquip sint cupidatat sit esse. Ut eu ut veniam sunt do proident cillum velit voluptate.\r\nCupidatat et aute tempor dolore. Aute exercitation sunt eiusmod ut consequat ut pariatur et excepteur. Tempor ea deserunt duis incididunt aute minim cupidatat veniam non elit.\r\nEiusmod occaecat culpa ipsum enim deserunt qui irure. Reprehenderit dolor quis dolor dolore culpa aliquip ipsum. Enim aliquip ullamco minim laboris do non laborum sint id incididunt voluptate. Do ea enim cupidatat deserunt ipsum nulla mollit ullamco laborum sint.\r\nElit minim et cupidatat voluptate aliqua proident mollit amet qui cupidatat. Enim cillum commodo consequat adipisicing dolore occaecat sit consectetur incididunt pariatur tempor. Ea eu do ea elit et.\r\n", + "address": "2 Hopkins Street", + "city": "Sunwest", + "state": "Ohio", + "zip": 99728, + "country": "Croatia (Hrvatska)", + "email": "leannestafford@scentric.com", + "phone": "(976) 400-2448", + "color": "rgb(172,121,148)" + }, + { + "index": 435, + "name": "Mann Lindsey", + "first": "Angelita", + "last": "Holland", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pjnes/73.jpg", + "boolean": true, + "guid": "b158f0bc-58b6-497c-b8e9-827e2fd5adcb", + "integer": 86, + "date": "Tue Mar 30 1999 04:50:25 GMT-0800 (PST)", + "shortText": "nulla", + "mediumText": "Cupidatat sint laboris irure irure quis irure laborum anim ex aliquip ad. Ullamco anim cillum ex aliqua cillum reprehenderit ipsum exercitation ea non laborum nulla. Consectetur dolor duis anim irure duis dolor qui sint aliquip est pariatur ullamco.", + "longText": "Laboris minim commodo qui ad mollit non sunt laborum dolore irure ad dolore aliquip sit. Eu ullamco nulla magna velit non. Cupidatat nulla reprehenderit qui elit nisi mollit adipisicing anim. Irure laborum aute culpa nisi et voluptate esse minim.\r\nEt proident ipsum ex reprehenderit deserunt nostrud amet commodo nulla eu tempor culpa sit. Aute fugiat dolor commodo quis laboris nulla ea laboris. Et excepteur laborum aute et.\r\nPariatur et excepteur irure tempor duis consectetur nisi pariatur in ea ut commodo ad. Esse sint tempor qui consectetur ad nisi ut reprehenderit sit excepteur. Dolore mollit voluptate ipsum ad in aliqua nisi. Officia nulla aliquip tempor do culpa velit. Ut Lorem non cillum ipsum. Qui exercitation non velit elit quis voluptate ipsum adipisicing occaecat minim. Est consectetur duis minim irure reprehenderit.\r\nVoluptate deserunt duis ut elit ut cillum officia nulla sint do. Elit deserunt est mollit mollit et ullamco dolore. Amet consequat pariatur cupidatat velit. Eiusmod elit qui mollit nisi ipsum enim. Ullamco eu commodo est consequat. Voluptate excepteur adipisicing ad sit velit duis enim fugiat et sit nisi veniam ipsum occaecat.\r\nAnim exercitation mollit ullamco sunt pariatur excepteur anim exercitation velit ex enim fugiat. Ullamco excepteur ex sint nulla laboris qui anim sunt nisi. Esse ea exercitation dolore adipisicing. Quis amet aute consequat occaecat officia ea nulla.\r\n", + "address": "3 Williamsburg Street", + "city": "Hiwasse", + "state": "Nevada", + "zip": 20139, + "country": "Indonesia", + "email": "angelitaholland@scentric.com", + "phone": "(939) 494-2894", + "color": "rgb(245,81,217)" + }, + { + "index": 436, + "name": "Herring Barry", + "first": "Fanny", + "last": "Mills", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/balintorosz/73.jpg", + "boolean": true, + "guid": "80d4034b-37c2-4d36-8a84-8902d6dbd1e8", + "integer": 7, + "date": "Thu Feb 26 1987 04:22:07 GMT-0800 (PST)", + "shortText": "culpa veniam laborum", + "mediumText": "Eu culpa qui cillum nulla occaecat irure proident laboris. Enim Lorem eiusmod minim magna ea eu reprehenderit eu ea nulla aute. Et in laborum aliqua consectetur consectetur aute sint velit fugiat dolore.", + "longText": "Minim ea magna laboris commodo in fugiat qui non reprehenderit. Sint tempor labore qui ullamco nisi tempor consequat tempor quis. Aute dolore minim nulla magna ut ex commodo mollit dolor ipsum dolor. Eu eu labore deserunt et occaecat excepteur consectetur cupidatat mollit nisi.\r\nTempor aute culpa sit occaecat consequat. Culpa ullamco proident aliquip labore. Reprehenderit pariatur aute fugiat irure adipisicing sint anim anim occaecat adipisicing labore ipsum deserunt consectetur. Voluptate eiusmod eu pariatur proident nostrud sint labore. Sit adipisicing ipsum proident non incididunt mollit minim labore elit nulla elit et occaecat.\r\nSit culpa veniam id minim minim dolore elit culpa ut enim est. Ex adipisicing deserunt ex officia commodo sit nostrud labore aute est sit. Elit eu sint consequat cillum deserunt eu anim nostrud reprehenderit cupidatat occaecat consequat. Sint anim est ullamco non sint dolore excepteur.\r\n", + "address": "2 Grand Avenue", + "city": "Gasquet", + "state": "Montana", + "zip": 88459, + "country": "Nauru", + "email": "fannymills@scentric.com", + "phone": "(961) 418-2958", + "color": "rgb(207,161,63)" + }, + { + "index": 437, + "name": "Davenport Knowles", + "first": "Carol", + "last": "Acevedo", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/martinhn/73.jpg", + "boolean": true, + "guid": "20017740-0bff-43ce-a66b-b139bdd82fdf", + "integer": 10, + "date": "Sat Aug 12 1989 13:36:36 GMT-0700 (PDT)", + "shortText": "tempor fugiat ex do", + "mediumText": "Culpa quis minim eiusmod veniam ullamco cupidatat velit dolore cillum aute duis reprehenderit. Enim cupidatat dolore qui ex dolor magna mollit amet adipisicing dolor.", + "longText": "Voluptate ex duis culpa est ullamco magna ullamco id. Magna ullamco aliquip anim laborum velit deserunt consectetur sunt irure. Anim nulla ullamco veniam sint ex culpa eu minim dolor excepteur. Adipisicing ex tempor duis ea. Labore enim pariatur dolore irure et elit ad ipsum exercitation mollit aliqua deserunt. Minim labore ea dolor duis tempor veniam id incididunt occaecat non incididunt dolor sit.\r\nLaboris voluptate duis deserunt aute sunt et voluptate proident est nulla. Labore aute esse est nisi in excepteur laborum irure. Fugiat sint qui esse excepteur duis qui do labore. Non incididunt elit nulla ex officia cupidatat elit culpa id aliqua. Ex aute esse ex reprehenderit. Veniam excepteur aliquip irure laborum eiusmod. Elit qui sunt mollit dolor non fugiat est qui nostrud est do consequat aute officia.\r\nConsequat occaecat incididunt enim excepteur nostrud dolor amet duis ea irure sit. Veniam et reprehenderit labore officia ex ipsum officia consequat voluptate. Incididunt duis commodo deserunt aute deserunt dolore sunt Lorem. Veniam non ea laborum mollit aliquip qui eu fugiat duis. Fugiat id sunt aute mollit elit sit incididunt veniam tempor. Consectetur pariatur consectetur labore et non et commodo qui mollit minim enim esse. Et proident elit minim est occaecat.\r\nDo aliquip excepteur nulla elit. Laboris consequat do officia veniam laboris. Non quis velit velit ipsum sint amet ut aliqua quis laboris est pariatur ut officia. Eu esse consequat irure dolore quis in sit. Labore ipsum minim ad ut voluptate ea non. In voluptate magna esse est elit voluptate labore irure minim aliqua velit laborum et nulla. Ipsum nostrud est consequat tempor velit culpa sint fugiat dolor.\r\nLorem esse aliqua cillum excepteur labore proident ipsum dolor enim ut aliquip laboris ut. Ullamco aliqua pariatur enim dolore est irure. Quis nisi officia mollit nostrud consectetur pariatur ad id adipisicing aute laboris qui reprehenderit tempor. Nulla non nostrud excepteur duis excepteur quis. Ex do voluptate sit Lorem ea irure eu velit culpa.\r\n", + "address": "2 Lincoln Terrace", + "city": "Eggertsville", + "state": "California", + "zip": 49607, + "country": "Ireland", + "email": "carolacevedo@scentric.com", + "phone": "(873) 489-2712", + "color": "rgb(215,231,234)" + }, + { + "index": 438, + "name": "Sonia Moses", + "first": "Patel", + "last": "Thompson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/73.jpg", + "boolean": false, + "guid": "e3a9a23d-000c-47aa-8039-4fce46c5565c", + "integer": 26, + "date": "Sun Jan 13 1991 10:21:14 GMT-0800 (PST)", + "shortText": "enim tempor ea", + "mediumText": "Deserunt consectetur velit proident ipsum aute sunt ullamco incididunt consequat aliqua sit mollit. Sit deserunt minim eu laborum quis cupidatat nulla id sit esse ea ad amet.", + "longText": "Dolor anim incididunt ullamco esse qui occaecat in dolore Lorem. Nisi eiusmod laboris ullamco quis consequat pariatur et cupidatat ad exercitation. In eu cillum occaecat amet tempor cillum. Exercitation id ullamco mollit non. Eiusmod culpa reprehenderit consectetur officia officia ad elit adipisicing est ut ea. Fugiat dolor nostrud occaecat consequat elit nulla ex. Ullamco pariatur incididunt nisi voluptate consequat deserunt proident exercitation ad labore ad.\r\nExcepteur tempor dolor eu duis Lorem deserunt elit ipsum. Cillum velit dolor esse Lorem commodo. Sint cupidatat ex deserunt voluptate adipisicing eiusmod sit proident aliqua excepteur. Consequat cillum irure sint ex reprehenderit incididunt est.\r\nCommodo minim cupidatat voluptate aliqua laborum deserunt sint elit nisi officia sit nostrud. Lorem exercitation laborum mollit adipisicing quis. Ad officia nisi cillum consequat non sunt sunt. Nulla id labore ut qui deserunt aute officia voluptate dolor laboris laboris reprehenderit do. Irure esse Lorem labore enim culpa eu amet ut aliquip esse exercitation elit. Nulla do id anim exercitation commodo pariatur nostrud incididunt aliquip irure. Deserunt ea do velit veniam duis culpa aliqua elit consequat amet aliqua qui.\r\nAliquip et nostrud tempor occaecat amet nulla duis non amet. Ipsum mollit mollit tempor nostrud sint aliqua ea aliquip non pariatur esse nulla cillum magna. Adipisicing excepteur Lorem cillum nisi sint magna laboris do ipsum aliquip eiusmod veniam ullamco.\r\n", + "address": "2 Prescott Place", + "city": "Norwood", + "state": "Marshall Islands", + "zip": 70002, + "country": "Luxembourg", + "email": "patelthompson@scentric.com", + "phone": "(883) 472-3011", + "color": "rgb(207,132,88)" + }, + { + "index": 439, + "name": "Gabrielle Black", + "first": "Holmes", + "last": "Valentine", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vovkasolovev/73.jpg", + "boolean": false, + "guid": "4bc9e815-0354-4c95-b76c-945cd74c26d0", + "integer": 40, + "date": "Mon May 10 2010 09:38:40 GMT-0700 (PDT)", + "shortText": "Lorem", + "mediumText": "Eiusmod velit ea exercitation voluptate qui labore voluptate amet proident. Ullamco nulla cupidatat id in anim. Cupidatat nisi culpa nostrud laboris aute labore sunt elit in mollit aliquip. Incididunt incididunt consequat aliqua ullamco velit.", + "longText": "Consequat sint ad reprehenderit nisi quis aliqua laborum sint elit pariatur labore magna officia. Occaecat culpa do laboris amet mollit ex velit. Proident fugiat sint laborum nostrud aute ex in veniam fugiat. Adipisicing velit ex non aliqua ex amet ex adipisicing enim consequat mollit occaecat irure cillum. Ad eu eiusmod cupidatat consectetur commodo laborum duis in sit labore laborum cillum. Enim qui cupidatat amet non fugiat.\r\nPariatur mollit consequat eiusmod consectetur labore velit cupidatat mollit sit nostrud laborum. Aliquip occaecat sunt aute occaecat exercitation enim quis excepteur amet id. Ullamco sunt est consequat do voluptate. Incididunt do anim do voluptate do ut deserunt minim enim non. Occaecat proident aute officia fugiat do sint in reprehenderit. Duis incididunt labore nisi laboris reprehenderit tempor non adipisicing enim ad pariatur commodo consectetur minim.\r\nTempor elit est et esse. Sit sint culpa laborum id et cupidatat qui cupidatat. Veniam veniam pariatur dolore ipsum quis officia aliquip eiusmod amet aliqua occaecat tempor laboris irure. Aute in pariatur cillum irure. Fugiat in nisi Lorem sit sint amet amet. Proident eu voluptate irure ipsum cupidatat aliquip cupidatat tempor ea labore enim. Cupidatat duis velit irure eiusmod pariatur reprehenderit eu excepteur enim nostrud mollit commodo.\r\nVelit mollit Lorem enim ullamco nostrud exercitation. Enim occaecat Lorem aliquip nulla velit fugiat. Ullamco voluptate non fugiat non minim voluptate velit. Duis dolor laborum qui est enim ut. Nulla reprehenderit esse ea nisi sit et non nulla voluptate laboris ullamco. Labore in fugiat esse culpa dolor duis anim sunt duis do sint officia non. Laborum dolor pariatur consequat ullamco fugiat.\r\n", + "address": "3 Pleasant Place", + "city": "Fairforest", + "state": "Indiana", + "zip": 30882, + "country": "Afghanistan", + "email": "holmesvalentine@scentric.com", + "phone": "(990) 581-2101", + "color": "rgb(140,238,67)" + }, + { + "index": 440, + "name": "Lakisha Cross", + "first": "Pena", + "last": "Compton", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/urbanjahvier/73.jpg", + "boolean": false, + "guid": "cd35d1ad-004f-43fa-a754-2ab807d0ab4d", + "integer": 1, + "date": "Mon Feb 27 2012 17:16:59 GMT-0800 (PST)", + "shortText": "adipisicing anim velit esse", + "mediumText": "Dolor excepteur non id laboris. Consectetur in duis sint labore duis ut. Consequat elit adipisicing amet cillum non tempor pariatur.", + "longText": "Ipsum non enim aliqua culpa velit enim deserunt proident laboris sunt. Sunt esse officia qui est ut ad cillum eu est cupidatat Lorem proident incididunt. Officia duis culpa duis in exercitation irure officia quis aliquip. Tempor nulla consequat exercitation eu nulla.\r\nEu enim labore excepteur proident. Commodo aliqua Lorem aute dolore ullamco ipsum mollit exercitation veniam. Labore enim veniam ea aliquip esse non id aliqua aliquip nostrud aliquip eu voluptate. Do reprehenderit velit proident ad occaecat sit dolor. Occaecat proident tempor aute nisi ipsum commodo dolore ipsum labore do laborum ea in. Non esse ut qui anim sint cupidatat amet est in consequat aliqua eiusmod. Reprehenderit consectetur amet commodo incididunt do amet laboris.\r\nVeniam magna consequat consequat eiusmod aliqua nulla commodo aliquip magna aute. Excepteur culpa ea consectetur sint velit sunt nulla Lorem ex. Irure in amet cupidatat duis occaecat pariatur.\r\nUt commodo laboris incididunt amet exercitation consectetur adipisicing eu. Aliqua in ex cillum Lorem reprehenderit cillum esse non ut cupidatat. Dolore et dolore duis exercitation sunt fugiat. Irure commodo eiusmod est fugiat ipsum anim ullamco ut. Duis amet duis non sint. Fugiat excepteur dolore et aliqua veniam aute elit mollit sit eu. Eiusmod dolore in magna voluptate reprehenderit pariatur non qui in qui Lorem ipsum.\r\nConsequat mollit tempor do sunt Lorem do est reprehenderit. Lorem aliqua culpa irure duis laborum non ut elit ad. Ad ipsum cillum nisi est aute nisi ad et. Aliquip voluptate voluptate elit amet in laboris fugiat. Non voluptate amet ut cillum exercitation veniam. Ea Lorem nostrud aliquip ex.\r\n", + "address": "4 Belvidere Street", + "city": "Whitestone", + "state": "Tennessee", + "zip": 30601, + "country": "St. Pierre and Miquelon", + "email": "penacompton@scentric.com", + "phone": "(979) 573-3861", + "color": "rgb(191,149,118)" + }, + { + "index": 441, + "name": "Concetta Whitaker", + "first": "Lora", + "last": "Mccarthy", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/betraydan/73.jpg", + "boolean": false, + "guid": "4527d6de-ed39-4b47-8916-33b23feda2f9", + "integer": 64, + "date": "Tue Jul 24 2012 12:23:04 GMT-0700 (PDT)", + "shortText": "voluptate", + "mediumText": "Id pariatur aliqua ea id id duis qui sint mollit commodo.", + "longText": "Incididunt voluptate do id labore. Voluptate aliqua tempor quis anim magna quis pariatur et quis voluptate dolor occaecat. In veniam commodo sunt quis consectetur non minim. Laboris velit fugiat aliqua deserunt nostrud amet sint ad Lorem Lorem cupidatat cillum. Ullamco enim minim et eu non Lorem eu laborum magna duis velit esse reprehenderit laboris. Ad enim irure dolor laboris excepteur fugiat exercitation occaecat commodo aliqua ex.\r\nMinim ex est culpa ipsum cupidatat ullamco exercitation cupidatat exercitation veniam cillum. Proident enim elit cupidatat sunt aliqua non minim officia. Laboris veniam laboris id cillum labore occaecat quis cupidatat velit excepteur aute nostrud est anim. Non do ut dolore veniam dolor labore reprehenderit sunt velit officia.\r\n", + "address": "4 Remsen Avenue", + "city": "Northridge", + "state": "Palau", + "zip": 32997, + "country": "Montserrat", + "email": "loramccarthy@scentric.com", + "phone": "(878) 505-2614", + "color": "rgb(124,101,157)" + }, + { + "index": 442, + "name": "Tammie Juarez", + "first": "Liza", + "last": "Daniel", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justme_timothyg/73.jpg", + "boolean": false, + "guid": "0ed69dca-4d57-43c4-835b-b4f0d9654df4", + "integer": 11, + "date": "Sun Jul 08 2012 11:35:08 GMT-0700 (PDT)", + "shortText": "cillum", + "mediumText": "Culpa nulla aliqua nulla adipisicing reprehenderit. Labore nisi non dolore deserunt ut elit anim ullamco ullamco eiusmod cupidatat. Nisi proident qui culpa deserunt velit aliquip cillum deserunt tempor exercitation dolore eu. Do non anim aliquip id dolore anim velit qui ut sunt consequat deserunt. Eiusmod ea proident culpa exercitation enim occaecat.", + "longText": "Minim ex labore Lorem eiusmod laboris voluptate irure est. Dolore occaecat excepteur commodo ullamco deserunt irure cillum. Nisi nostrud in sint sunt excepteur culpa sunt do eu aute deserunt. Irure pariatur proident sit proident exercitation ex aute aliquip eiusmod est Lorem adipisicing laborum officia. Aute consectetur dolor occaecat incididunt cillum eiusmod culpa anim cupidatat est exercitation est. Sunt culpa quis cillum et sint dolor pariatur enim non nostrud dolore sunt proident do.\r\nQui enim do qui aliqua velit ullamco irure culpa aliqua adipisicing velit in tempor aute. Amet consectetur officia do elit. Aute laborum esse ullamco dolore id ullamco velit Lorem. Fugiat dolore et velit velit ut.\r\nSunt non anim veniam proident id est magna ullamco exercitation consequat est. Laborum culpa eiusmod non eu ipsum occaecat excepteur minim occaecat velit magna. Voluptate aliquip tempor do excepteur est enim. Do tempor laboris ut laborum in tempor Lorem occaecat dolore. Est id veniam dolore dolor eiusmod enim ea adipisicing fugiat ad nostrud ullamco ex. Occaecat nisi et ea eiusmod duis Lorem labore enim non veniam labore.\r\nMagna occaecat dolor nisi sint est magna magna tempor sunt. Minim amet sunt exercitation incididunt ea dolore tempor tempor magna pariatur aliqua. Mollit amet et in veniam. Reprehenderit do ut cupidatat incididunt. Eu anim Lorem laboris qui cillum officia amet aute minim magna proident officia.\r\n", + "address": "2 Friel Place", + "city": "Waverly", + "state": "Virginia", + "zip": 15976, + "country": "Norway", + "email": "lizadaniel@scentric.com", + "phone": "(837) 444-2117", + "color": "rgb(169,145,105)" + }, + { + "index": 443, + "name": "Bettie Osborne", + "first": "Daugherty", + "last": "Randolph", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justinteractive/73.jpg", + "boolean": true, + "guid": "3d66fd94-2bfe-43f5-9b83-14c609449f27", + "integer": 7, + "date": "Sat Jan 20 2007 20:48:29 GMT-0800 (PST)", + "shortText": "velit", + "mediumText": "Veniam quis ea ipsum adipisicing quis excepteur proident laboris fugiat id reprehenderit aute occaecat.", + "longText": "Sunt anim reprehenderit eu in sit culpa enim. Magna voluptate pariatur fugiat commodo fugiat ad voluptate ipsum ut elit ullamco dolor amet. Ut cupidatat consectetur velit velit est labore. Ex cillum ad duis excepteur irure officia eiusmod labore in culpa exercitation duis anim non. Deserunt ullamco consequat tempor tempor incididunt esse laboris.\r\nProident ex dolor anim laboris aliqua velit sit est. Aute aute velit eiusmod non irure nostrud pariatur anim tempor pariatur ipsum labore do. Lorem laborum ipsum minim eu nulla minim ullamco culpa in ex velit veniam aliqua cillum. Exercitation aliquip sit proident nostrud. Dolor ipsum aute nulla Lorem dolore amet dolor nisi enim irure.\r\nIpsum deserunt cupidatat ea nisi anim aliquip et excepteur pariatur nisi dolor. Quis exercitation ea pariatur eiusmod. Sint qui Lorem eu velit aute.\r\n", + "address": "3 Utica Avenue", + "city": "Glenbrook", + "state": "Wyoming", + "zip": 52525, + "country": "Guam", + "email": "daughertyrandolph@scentric.com", + "phone": "(978) 484-3479", + "color": "rgb(158,76,101)" + }, + { + "index": 444, + "name": "Valenzuela Swanson", + "first": "Buckner", + "last": "Dawson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/psdesignuk/73.jpg", + "boolean": true, + "guid": "4fe81672-768e-44ba-b3d5-c57fbb9c3507", + "integer": 27, + "date": "Mon Feb 03 1975 20:36:41 GMT-0800 (PST)", + "shortText": "fugiat fugiat", + "mediumText": "Eiusmod eu elit do in occaecat dolor consectetur non mollit. Officia eiusmod consectetur veniam laboris consequat velit commodo exercitation tempor officia commodo. Voluptate elit Lorem elit non elit. Dolor consequat exercitation cillum labore do cillum irure exercitation. Lorem et irure velit eiusmod sit ut.", + "longText": "Amet enim eiusmod anim culpa non ipsum dolor deserunt adipisicing fugiat. Ut irure ipsum et incididunt veniam proident ex veniam. Magna eu dolor do minim elit culpa labore. Commodo non amet qui nisi nisi anim ex. Sit ipsum nulla fugiat ea exercitation duis in sint ex ea. Minim est ut minim in laboris est esse culpa minim pariatur exercitation ex. Ex voluptate sint sunt velit in adipisicing.\r\n", + "address": "4 Bridge Street", + "city": "Byrnedale", + "state": "Colorado", + "zip": 22776, + "country": "Gibraltar", + "email": "bucknerdawson@scentric.com", + "phone": "(822) 533-3432", + "color": "rgb(72,149,99)" + }, + { + "index": 445, + "name": "Bernice Hood", + "first": "Dionne", + "last": "Russo", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teclaro/73.jpg", + "boolean": true, + "guid": "604ff26f-12a6-4e76-bbcc-b8004c60fc12", + "integer": 25, + "date": "Sat Sep 15 2001 19:47:51 GMT-0700 (PDT)", + "shortText": "id commodo aute eu", + "mediumText": "Aliquip ut proident ad consequat proident velit magna. Non excepteur Lorem labore et fugiat quis laboris anim ut fugiat tempor consectetur laborum aute. Ullamco dolor nulla esse nisi aliquip fugiat fugiat dolor.", + "longText": "Elit ipsum voluptate laborum veniam cillum reprehenderit aliqua quis incididunt id excepteur. Reprehenderit qui fugiat nostrud quis. Ad nostrud amet do quis pariatur laborum in reprehenderit. Irure ipsum qui aute deserunt deserunt amet adipisicing eu dolor minim. Ad dolor aliquip quis sit nulla culpa nulla commodo aliqua non. Proident enim consequat elit tempor ut non est. Qui aliquip dolor ut consequat officia reprehenderit ea minim nisi cillum irure.\r\nCillum eu nisi consequat ipsum est aliqua cillum ad et laborum. Lorem incididunt occaecat ex ullamco et nostrud sint elit proident sunt adipisicing eu quis. Voluptate mollit sit sunt ad velit nisi commodo cupidatat. Nisi tempor nostrud minim magna id occaecat aliquip aute.\r\nEiusmod elit sit adipisicing reprehenderit nisi eiusmod incididunt eiusmod laboris mollit mollit do. Do aliqua adipisicing nostrud eu voluptate. Officia ut aliquip excepteur aute consequat sit pariatur amet id dolor.\r\nMagna cillum aliquip laborum anim aliquip in officia excepteur id dolore excepteur nostrud ullamco commodo. Excepteur enim anim esse occaecat quis cupidatat consectetur. Reprehenderit tempor fugiat laborum labore fugiat eiusmod quis.\r\n", + "address": "2 Verona Place", + "city": "Connerton", + "state": "Utah", + "zip": 18395, + "country": "Hungary", + "email": "dionnerusso@scentric.com", + "phone": "(890) 461-3250", + "color": "rgb(229,252,247)" + }, + { + "index": 446, + "name": "Schneider Small", + "first": "West", + "last": "Buckner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eyronn/73.jpg", + "boolean": true, + "guid": "4fdfdfc4-3a77-47b8-acab-91a565572331", + "integer": 44, + "date": "Fri Jul 16 2004 09:13:39 GMT-0700 (PDT)", + "shortText": "sunt esse Lorem", + "mediumText": "Irure dolor minim dolore voluptate ut laborum Lorem nostrud nostrud voluptate nisi sunt culpa. Proident pariatur sit id occaecat do qui reprehenderit laboris exercitation qui ad.", + "longText": "Labore nostrud consequat laboris amet do sint pariatur. Commodo incididunt amet reprehenderit laboris enim eu nostrud ea velit. In nisi proident ullamco in deserunt elit labore. Irure exercitation ipsum officia sint magna tempor do et sit.\r\nMollit nulla aliquip pariatur excepteur dolore sint ipsum mollit qui consectetur id. In amet laborum ea deserunt duis ipsum dolor magna aliquip non ea reprehenderit proident. Excepteur labore dolore reprehenderit elit. Est commodo esse est ea. Amet cupidatat exercitation eiusmod id sit.\r\nAliqua dolor anim est in esse ex id ad incididunt mollit occaecat ad sint. Lorem dolore ipsum ad amet cillum excepteur sint anim pariatur. Ipsum consectetur irure dolore fugiat duis anim id. Esse non est id mollit quis proident qui ex labore sit. Consequat mollit veniam nisi irure cupidatat nostrud.\r\n", + "address": "2 Fuller Place", + "city": "Felt", + "state": "Idaho", + "zip": 83579, + "country": "Kenya", + "email": "westbuckner@scentric.com", + "phone": "(972) 592-3400", + "color": "rgb(90,160,183)" + }, + { + "index": 447, + "name": "Jones Fields", + "first": "Trujillo", + "last": "Morales", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gulian/73.jpg", + "boolean": true, + "guid": "c09e1f92-8061-47f3-a5ae-13fe4589613e", + "integer": 97, + "date": "Wed Feb 14 2007 05:02:54 GMT-0800 (PST)", + "shortText": "tempor laborum commodo nostrud", + "mediumText": "Cillum nulla veniam ipsum exercitation nulla dolor anim in amet. Velit proident excepteur nisi et minim anim incididunt sit. Et sit eu eu est anim nulla. Ex consectetur fugiat cupidatat eiusmod in commodo cupidatat irure.", + "longText": "Aute ex exercitation nulla pariatur eu. Labore veniam amet voluptate occaecat consectetur consectetur nostrud laborum. Sit consequat nulla tempor culpa minim labore exercitation laboris incididunt sint. Dolor nisi quis id ullamco eu qui non ullamco esse amet irure dolor aute non. Ex exercitation irure ad laboris eiusmod non minim non anim ex in magna.\r\nCommodo ullamco excepteur culpa cillum incididunt. Ad nostrud est aliqua officia. Aliqua et laboris incididunt est. Irure reprehenderit ea ut minim culpa.\r\n", + "address": "3 Goodwin Place", + "city": "Lacomb", + "state": "Arkansas", + "zip": 64762, + "country": "Honduras", + "email": "trujillomorales@scentric.com", + "phone": "(908) 595-3540", + "color": "rgb(252,248,234)" + }, + { + "index": 448, + "name": "Ester Weber", + "first": "Eve", + "last": "Bonner", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/drebbits/73.jpg", + "boolean": true, + "guid": "daccfe7a-2e90-4485-b570-2ea85b7b196f", + "integer": 29, + "date": "Wed Aug 08 1979 00:51:20 GMT-0700 (PDT)", + "shortText": "qui", + "mediumText": "Magna dolore commodo aute ad excepteur ex proident non veniam proident irure dolore adipisicing deserunt. Anim mollit velit laboris velit labore pariatur. Non amet qui ut magna.", + "longText": "Cupidatat ea sit dolor eu sit tempor culpa magna. Ipsum excepteur nulla elit sit laboris dolor commodo. Deserunt aliquip officia minim sunt non sunt. Elit tempor consequat ullamco irure in ullamco. Ad do adipisicing sunt nisi eu veniam aliquip anim.\r\nAute ullamco incididunt dolore mollit fugiat deserunt adipisicing occaecat cupidatat sunt aute. Velit excepteur ullamco excepteur incididunt velit. Do adipisicing aute sint commodo qui adipisicing aliqua incididunt mollit. Adipisicing consectetur nulla consequat sunt nulla est sunt anim consequat ipsum ad dolor.\r\n", + "address": "4 Furman Avenue", + "city": "Devon", + "state": "Delaware", + "zip": 13560, + "country": "Eritrea", + "email": "evebonner@scentric.com", + "phone": "(993) 461-3721", + "color": "rgb(220,194,238)" + }, + { + "index": 449, + "name": "Jaclyn Bright", + "first": "Christy", + "last": "Graham", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alexhaniotis/73.jpg", + "boolean": true, + "guid": "3d5752b1-b775-4866-9151-376be7d53cdd", + "integer": 47, + "date": "Fri Oct 07 1994 14:59:41 GMT-0700 (PDT)", + "shortText": "ut minim in laboris officia", + "mediumText": "Esse mollit ad sunt incididunt labore dolore exercitation nostrud commodo minim nisi sit. Enim tempor tempor veniam culpa laboris incididunt sunt ex magna fugiat. Quis veniam adipisicing est sunt proident aliquip enim commodo sunt duis sint est nulla Lorem.", + "longText": "Sint aliquip qui aliqua ipsum magna eiusmod non ea exercitation non duis cupidatat officia. Proident esse mollit culpa excepteur irure consectetur consequat amet ipsum sit ut officia amet. Deserunt non in qui sit aliquip et irure et commodo mollit esse ullamco consequat. Commodo ea mollit incididunt ex anim labore sint eu sint sunt deserunt commodo irure ex. Magna reprehenderit voluptate anim commodo et excepteur amet nulla sint. Qui laboris qui et veniam eiusmod pariatur voluptate eiusmod ea occaecat cillum dolore velit magna.\r\nNostrud in esse est tempor minim ex fugiat qui Lorem. Non enim tempor amet consequat pariatur irure voluptate enim aliqua tempor exercitation. Lorem reprehenderit et deserunt velit deserunt pariatur elit et consectetur irure. Culpa velit aliquip sit sunt adipisicing exercitation. Eiusmod mollit consequat laboris non nostrud pariatur laborum quis anim consectetur veniam amet culpa esse. Consequat irure aute commodo incididunt tempor elit aliqua est reprehenderit sunt ex veniam id.\r\nProident eu cillum est eiusmod sint quis in eiusmod occaecat adipisicing quis tempor adipisicing ea. Adipisicing reprehenderit exercitation eu reprehenderit elit cupidatat nostrud pariatur. Veniam officia quis Lorem magna reprehenderit esse ipsum minim quis laborum reprehenderit.\r\n", + "address": "3 Kathleen Court", + "city": "Groveville", + "state": "Federated States Of Micronesia", + "zip": 97417, + "country": "Tajikistan", + "email": "christygraham@scentric.com", + "phone": "(943) 493-3287", + "color": "rgb(201,124,187)" + }, + { + "index": 450, + "name": "Burton Valdez", + "first": "Aurora", + "last": "Morse", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/twahlin/73.jpg", + "boolean": true, + "guid": "7ea797c6-ef0a-49c2-b043-2ca76a30e148", + "integer": 66, + "date": "Mon Jul 09 1984 05:20:31 GMT-0700 (PDT)", + "shortText": "officia", + "mediumText": "Nulla ut eiusmod consequat sunt est proident mollit elit laboris nulla ex Lorem tempor culpa.", + "longText": "Laborum labore ad cupidatat fugiat laborum proident mollit elit Lorem elit. Voluptate ex magna voluptate ex incididunt eiusmod dolor anim sit. Aliquip sint reprehenderit officia ex irure veniam aliquip laborum eu exercitation magna veniam enim. Minim culpa Lorem et sit. Velit aute elit et incididunt do velit mollit qui.\r\n", + "address": "2 Sheffield Avenue", + "city": "Sheatown", + "state": "Guam", + "zip": 73715, + "country": "Brunei Darussalam", + "email": "auroramorse@scentric.com", + "phone": "(866) 493-3254", + "color": "rgb(60,132,78)" + }, + { + "index": 451, + "name": "Sharpe Mccall", + "first": "Leanna", + "last": "Day", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ntfblog/73.jpg", + "boolean": false, + "guid": "241e6ae2-b23e-44bc-b8ed-aeb9d50f0395", + "integer": 7, + "date": "Sun Oct 27 2002 01:07:01 GMT-0700 (PDT)", + "shortText": "sit", + "mediumText": "Commodo commodo nostrud deserunt nostrud velit tempor culpa exercitation occaecat. Officia officia fugiat consectetur deserunt eu sunt ullamco commodo elit veniam nostrud dolore. Aute duis occaecat nisi culpa nulla laborum deserunt aliquip irure.", + "longText": "Qui do ex nostrud qui officia velit. Quis laborum aute nulla sint excepteur magna nisi est eu. Commodo qui id ex pariatur est sit. Do quis mollit minim consectetur exercitation. Elit reprehenderit labore minim laboris laborum adipisicing incididunt adipisicing. Ad reprehenderit enim reprehenderit sit.\r\nIpsum veniam nulla et enim. Consectetur sint laborum voluptate nulla non non eiusmod. Incididunt laborum voluptate voluptate cupidatat amet minim culpa sint laborum commodo. Ad mollit ea culpa sit fugiat.\r\nEx ex incididunt eu dolore laboris duis culpa duis magna eu minim sint. Ea sunt sunt mollit ut voluptate duis. Magna sit irure voluptate Lorem tempor consectetur eu aute sunt eiusmod deserunt laboris anim. Ut aliqua irure pariatur cillum eiusmod Lorem cupidatat qui mollit laborum excepteur irure. Officia voluptate aute officia incididunt deserunt velit enim sint anim mollit aliqua deserunt. Excepteur dolor irure sint quis nulla ipsum sint duis consectetur. Eiusmod id cillum exercitation veniam in anim tempor velit id culpa in.\r\nLabore amet non culpa ea in ullamco duis dolore cillum commodo laborum. In et elit ex aliqua commodo labore dolor proident et mollit. Dolor Lorem deserunt ipsum adipisicing sunt enim nulla ullamco. Enim ullamco ea irure sit elit cillum reprehenderit mollit voluptate enim aliquip ad officia.\r\nLaborum eiusmod esse sit excepteur duis. Quis magna cillum proident tempor qui ex sunt amet ex cillum id elit. Lorem sit cillum exercitation eu reprehenderit ea ex. Fugiat commodo irure elit est esse labore laboris do ullamco dolor. Adipisicing excepteur et culpa occaecat. Ea aute et deserunt quis laborum eiusmod et exercitation mollit excepteur duis nulla.\r\n", + "address": "2 Sapphire Street", + "city": "Delco", + "state": "Pennsylvania", + "zip": 99885, + "country": "Macedonia", + "email": "leannaday@scentric.com", + "phone": "(926) 463-2373", + "color": "rgb(219,81,203)" + }, + { + "index": 452, + "name": "Richmond Clayton", + "first": "Sherrie", + "last": "Robertson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/commoncentssss/73.jpg", + "boolean": true, + "guid": "dd129f81-2042-434a-9563-8047b70bad0a", + "integer": 45, + "date": "Sat Apr 07 2001 06:49:07 GMT-0700 (PDT)", + "shortText": "in", + "mediumText": "Adipisicing excepteur ad proident id veniam consectetur sit.", + "longText": "Amet commodo do aliquip ipsum sunt dolor id magna officia officia commodo minim. Qui duis occaecat in cillum ipsum pariatur excepteur officia velit incididunt exercitation irure mollit quis. Et cillum id velit elit et fugiat qui nisi officia incididunt voluptate cupidatat duis. Ut fugiat dolore eiusmod non ad aliquip labore sit proident. Duis amet aliqua deserunt commodo do anim quis elit excepteur. Sunt dolore magna dolore enim labore minim do enim anim officia cupidatat cupidatat. Aliqua anim veniam tempor sit incididunt quis ex ex laboris reprehenderit Lorem.\r\nExercitation irure tempor proident culpa. Ut enim culpa nulla ipsum consectetur enim eu dolor fugiat occaecat pariatur ex. Fugiat aliqua anim veniam aliquip irure nostrud adipisicing id. Tempor laborum enim excepteur ipsum dolore pariatur anim sit id qui duis duis sit duis. Dolore deserunt do est irure consectetur consequat ea aliqua veniam enim qui Lorem. Ipsum et nulla eiusmod Lorem et id anim aliquip. Velit mollit dolor non ullamco do aliqua qui mollit excepteur qui amet.\r\n", + "address": "4 Opal Court", + "city": "Dawn", + "state": "New Hampshire", + "zip": 25154, + "country": "French Polynesia", + "email": "sherrierobertson@scentric.com", + "phone": "(950) 518-2372", + "color": "rgb(116,89,161)" + }, + { + "index": 453, + "name": "Small Church", + "first": "Sylvia", + "last": "Terrell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anissa_anwar/73.jpg", + "boolean": true, + "guid": "5653dcb2-2ec5-4de9-93a5-534b963da42d", + "integer": 32, + "date": "Sat Mar 10 2001 07:02:05 GMT-0800 (PST)", + "shortText": "velit et non in sint", + "mediumText": "Commodo aute irure cillum laboris aliquip aute aliqua consequat qui esse do Lorem deserunt adipisicing. Velit esse nulla in do ut aliquip proident ut qui occaecat reprehenderit nisi. Velit tempor eu non in officia cupidatat fugiat culpa. Proident nostrud irure cupidatat quis enim nisi reprehenderit qui deserunt tempor eiusmod cupidatat nulla. Proident exercitation esse sint esse sunt qui ad magna eu do magna esse sunt nulla.", + "longText": "Consequat proident id laboris id labore ipsum officia officia non consectetur dolore esse cupidatat. In commodo et amet qui in et exercitation non eiusmod dolore sunt nostrud. Non quis fugiat Lorem amet voluptate excepteur. Proident officia labore aliquip sunt Lorem ex nulla fugiat incididunt. In dolore aute enim esse cupidatat commodo cupidatat commodo ipsum nulla. Officia dolore dolore eu reprehenderit.\r\nAd occaecat consequat adipisicing do eiusmod voluptate proident. Eu dolore aute aliqua cillum enim incididunt non adipisicing ipsum laborum sunt Lorem Lorem. Ex ad excepteur occaecat quis aliqua do nostrud irure in sunt aliqua amet. Commodo ea voluptate sit mollit nisi excepteur reprehenderit incididunt. Do cillum aliquip in eu.\r\n", + "address": "2 Wolcott Street", + "city": "Salix", + "state": "North Dakota", + "zip": 11231, + "country": "Bahamas", + "email": "sylviaterrell@scentric.com", + "phone": "(823) 424-2163", + "color": "rgb(216,232,199)" + }, + { + "index": 454, + "name": "Alyson Dudley", + "first": "Mckay", + "last": "Holmes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/btrig/73.jpg", + "boolean": false, + "guid": "c1a70e93-2f1c-402a-aafb-f66c1441b471", + "integer": 36, + "date": "Fri May 18 2001 01:24:33 GMT-0700 (PDT)", + "shortText": "veniam ipsum ullamco", + "mediumText": "Sunt culpa in consectetur tempor consectetur non eu ex elit aliquip incididunt eu cillum quis. Dolor laborum pariatur nulla nostrud culpa quis dolor ipsum deserunt fugiat non amet non. Magna sint sint ea voluptate nostrud consequat labore elit.", + "longText": "Enim ex consequat quis proident ipsum commodo labore dolore esse fugiat. Commodo sit eu ullamco incididunt ipsum. Qui officia eiusmod adipisicing dolor exercitation. Laborum occaecat proident deserunt dolore labore est in. Exercitation enim sunt reprehenderit est est. Ullamco dolor laborum ea quis aute aliqua.\r\nNulla sint in aliqua do minim aliqua voluptate enim deserunt occaecat esse excepteur. Qui est veniam proident anim fugiat velit qui aliqua eiusmod proident mollit. Qui velit est in consectetur ad esse consequat aute laborum. Amet cupidatat cupidatat et amet.\r\nDeserunt qui labore veniam irure eiusmod ad nisi anim non aliqua culpa ea consequat ea. Id sunt mollit minim qui sunt consequat in aliquip eu consectetur. Et nostrud velit excepteur in magna dolor elit. Reprehenderit nisi enim dolor amet ipsum in voluptate veniam voluptate consectetur aliquip. Quis sint duis ut dolor ea. Magna deserunt sunt aute quis veniam laboris aute ea ex velit irure cupidatat.\r\nQui qui labore voluptate velit ad eu mollit sit cillum non exercitation cillum aliqua. Quis tempor consectetur eiusmod aliqua id. Qui duis elit ut do nisi nostrud et ullamco mollit. Labore officia fugiat nisi dolore. Adipisicing in voluptate aliquip occaecat mollit anim pariatur occaecat sint aliqua. Anim esse adipisicing aliqua tempor sit elit deserunt sunt. Eiusmod consectetur anim ipsum est elit laborum magna consectetur id aliquip Lorem.\r\n", + "address": "3 Walker Court", + "city": "Wattsville", + "state": "Northern Mariana Islands", + "zip": 63152, + "country": "Palau", + "email": "mckayholmes@scentric.com", + "phone": "(951) 589-2723", + "color": "rgb(163,183,107)" + }, + { + "index": 455, + "name": "Curry Webb", + "first": "Sheena", + "last": "Wilkerson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ug_rick/73.jpg", + "boolean": true, + "guid": "5fdb3b33-e4f6-42fd-9ef8-f5187a85f89a", + "integer": 86, + "date": "Sat Jun 12 1976 02:00:05 GMT-0700 (PDT)", + "shortText": "labore laborum", + "mediumText": "Nostrud nisi incididunt quis enim esse proident aliquip laboris. Velit officia quis amet cillum sint pariatur aliqua velit eiusmod. Adipisicing in nisi qui duis anim dolor laborum esse aute est ex amet sit.", + "longText": "Pariatur magna sit reprehenderit sint est non velit sint veniam. Laboris qui labore esse consequat tempor ut elit elit aliquip dolor duis tempor velit cupidatat. Consequat duis fugiat id excepteur. Duis veniam laboris est ut pariatur ullamco reprehenderit elit irure. Aute elit excepteur officia pariatur labore. Commodo sit officia ullamco reprehenderit sit exercitation ad consequat.\r\nEsse nostrud voluptate anim Lorem aute do tempor cupidatat do adipisicing magna commodo et dolore. Quis eiusmod velit est in laborum sit. Elit veniam ipsum id dolor. Labore eiusmod ex anim amet. Do velit cillum velit voluptate nostrud sint consequat ipsum ullamco do eiusmod sint. Reprehenderit minim reprehenderit et sunt aliqua nisi sint magna mollit aliquip. Esse esse labore minim cillum ut cupidatat dolor incididunt proident dolor.\r\nVoluptate aute anim commodo occaecat non voluptate magna. Laboris do quis laborum qui cillum qui commodo amet minim consectetur voluptate. Labore anim tempor sint ut. Tempor nisi sit officia Lorem.\r\nMinim consectetur ex velit nulla occaecat id sunt. Veniam laboris cupidatat reprehenderit ullamco eiusmod. Cupidatat velit non nulla amet aliqua fugiat aute ullamco nisi aliqua adipisicing exercitation quis proident. Ut ullamco dolor pariatur nisi excepteur occaecat commodo proident nisi minim est consequat.\r\nOccaecat aliquip duis duis deserunt cupidatat sint. Anim id et dolore labore nostrud ad Lorem sunt pariatur ad adipisicing. Qui enim nostrud officia adipisicing voluptate ea in nisi duis velit consectetur. Ut nisi voluptate dolor quis est anim in fugiat. Eu tempor dolore reprehenderit ut est aliqua elit in non velit velit. In adipisicing ullamco minim laboris incididunt enim voluptate ea minim sint dolor ut laborum amet. Aliquip est ut ipsum veniam.\r\n", + "address": "4 Lee Avenue", + "city": "Chamberino", + "state": "South Dakota", + "zip": 13592, + "country": "Tuvalu", + "email": "sheenawilkerson@scentric.com", + "phone": "(879) 403-2513", + "color": "rgb(118,194,142)" + }, + { + "index": 456, + "name": "Christian Snyder", + "first": "Lawanda", + "last": "Bradford", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/blakestevenson/73.jpg", + "boolean": true, + "guid": "bfb51aa2-d989-470d-97e5-64f04272b0ec", + "integer": 77, + "date": "Sat Jul 05 2014 23:12:53 GMT-0700 (PDT)", + "shortText": "quis ex et", + "mediumText": "Consectetur sit veniam excepteur Lorem commodo.", + "longText": "Qui dolor ut ipsum ex fugiat deserunt irure fugiat. Nisi anim culpa est non adipisicing ullamco dolore aute ex occaecat minim. Occaecat reprehenderit aliqua aute fugiat veniam officia cillum quis nostrud minim ullamco velit officia. Lorem ex labore magna qui velit commodo anim dolore veniam dolor et reprehenderit.\r\nDolor ad irure esse tempor commodo ullamco adipisicing dolore amet magna aliqua enim adipisicing. Laboris irure culpa est excepteur mollit magna consectetur id aliquip magna. Occaecat commodo elit pariatur reprehenderit eiusmod labore. Nisi aliquip minim est labore quis fugiat. Minim nulla Lorem dolore nostrud reprehenderit nulla mollit incididunt anim adipisicing.\r\n", + "address": "4 Newport Street", + "city": "Indio", + "state": "Alaska", + "zip": 48616, + "country": "Liechtenstein", + "email": "lawandabradford@scentric.com", + "phone": "(888) 481-3858", + "color": "rgb(247,122,60)" + }, + { + "index": 457, + "name": "Contreras Jenkins", + "first": "Lester", + "last": "Garrett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karalek/73.jpg", + "boolean": true, + "guid": "0618babd-91c3-4050-8bf8-5d1f94383568", + "integer": 14, + "date": "Fri Mar 31 1972 00:34:05 GMT-0800 (PST)", + "shortText": "commodo aliqua", + "mediumText": "Ullamco commodo consequat id officia duis duis amet quis incididunt consectetur consequat laboris ex dolore. Aliquip dolore cupidatat sit aliqua dolore sit irure reprehenderit anim nulla adipisicing est. Cupidatat et fugiat minim exercitation eiusmod est esse eiusmod proident.", + "longText": "Qui cillum ipsum amet adipisicing veniam Lorem ullamco. Aute ea sunt veniam nisi laboris cupidatat officia minim. Consectetur deserunt cupidatat fugiat deserunt mollit mollit. Elit magna consequat qui tempor in non velit ea cillum tempor non. Consectetur est mollit aliqua adipisicing elit cillum consequat duis enim. Reprehenderit in et dolor nulla duis.\r\nEsse cillum Lorem veniam officia voluptate eu tempor. Consectetur dolore fugiat proident duis ullamco dolore occaecat dolore sit. Consequat commodo fugiat dolor minim elit elit laborum elit do. Exercitation occaecat exercitation cillum eu occaecat sit sit magna voluptate dolor aliqua ad commodo esse. Cillum fugiat excepteur sunt incididunt nisi.\r\nLabore aute eiusmod aute ullamco sunt sint nisi aute laboris reprehenderit duis qui incididunt labore. Sint occaecat sint id esse. Consectetur pariatur minim proident do magna mollit veniam dolore commodo et officia adipisicing commodo pariatur. Consequat eu id pariatur occaecat eu nostrud proident enim eu. Id cillum consequat aliquip reprehenderit. Adipisicing Lorem eu et veniam aliquip pariatur commodo culpa anim adipisicing commodo labore. Qui adipisicing incididunt in eiusmod.\r\n", + "address": "4 Morton Street", + "city": "Yonah", + "state": "Louisiana", + "zip": 53661, + "country": "Virgin Islands (US)", + "email": "lestergarrett@scentric.com", + "phone": "(972) 517-3113", + "color": "rgb(239,120,56)" + }, + { + "index": 458, + "name": "Holly Jackson", + "first": "Susie", + "last": "Watkins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elusiveanmol/73.jpg", + "boolean": true, + "guid": "2a001ee1-bb06-41ce-ba9b-334ce428a78e", + "integer": 45, + "date": "Tue Aug 24 1993 08:13:13 GMT-0700 (PDT)", + "shortText": "qui ex deserunt veniam enim", + "mediumText": "Dolore deserunt proident ex non ullamco amet esse cillum adipisicing adipisicing tempor sunt dolore. Amet mollit velit enim qui elit nostrud duis quis duis deserunt ut quis minim incididunt. Proident duis laboris sunt esse laborum duis officia esse irure esse. Cupidatat incididunt labore pariatur mollit. Sint officia aliquip adipisicing sint id et officia nulla.", + "longText": "Officia labore fugiat tempor sint est labore aliqua quis nisi labore adipisicing. Deserunt occaecat occaecat cupidatat occaecat. Minim consequat nisi non reprehenderit tempor. Irure nulla minim veniam laboris ut duis adipisicing. Occaecat culpa cillum magna sint nisi sit ex. Reprehenderit quis aliqua officia ipsum dolor irure nulla ipsum ex.\r\nIpsum proident esse tempor in ut proident reprehenderit reprehenderit fugiat pariatur reprehenderit cillum. Ipsum ipsum velit labore id do sint. Ea velit tempor cillum officia qui elit id excepteur. Fugiat laboris amet ullamco et dolor. Enim ut id fugiat qui. Sunt anim pariatur nisi fugiat ex. In ipsum nulla officia ipsum ex aliquip ad cupidatat aliqua amet adipisicing anim in amet.\r\nMagna pariatur nisi occaecat veniam reprehenderit esse dolor aliqua culpa labore. Elit do aliquip est magna culpa officia id pariatur id commodo non officia incididunt proident. Quis consequat laborum consectetur nostrud magna amet irure do irure ipsum culpa reprehenderit. Exercitation elit magna irure mollit cillum velit ullamco tempor ex.\r\nIpsum mollit reprehenderit elit aliqua nulla laborum dolor voluptate commodo ipsum laboris. Elit ut enim tempor elit nisi tempor ipsum. Ullamco velit incididunt elit aliqua amet commodo amet dolore dolore fugiat id.\r\n", + "address": "3 Beard Street", + "city": "Sterling", + "state": "Missouri", + "zip": 70724, + "country": "Svalbard and Jan Mayen Islands", + "email": "susiewatkins@scentric.com", + "phone": "(837) 537-2963", + "color": "rgb(172,67,201)" + }, + { + "index": 459, + "name": "Josefina Gonzales", + "first": "Erickson", + "last": "Bennett", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/shoo7830/73.jpg", + "boolean": true, + "guid": "88320e02-8633-4df8-a096-8b6cd39d0786", + "integer": 31, + "date": "Tue Jul 27 2010 06:12:05 GMT-0700 (PDT)", + "shortText": "proident nostrud", + "mediumText": "Cupidatat officia duis do sunt veniam voluptate exercitation. Ea excepteur tempor magna fugiat Lorem adipisicing dolor sit amet sunt aute laboris. Ea sunt fugiat ad commodo amet elit elit minim nostrud occaecat magna. Incididunt ea do id id laboris magna do ea. Eu duis amet cupidatat proident culpa deserunt.", + "longText": "Lorem ipsum culpa voluptate labore consectetur reprehenderit anim duis fugiat anim consequat tempor officia. Occaecat culpa tempor ad ea excepteur ad enim incididunt. Adipisicing commodo elit nisi magna incididunt. Ea est occaecat et dolor reprehenderit fugiat est id dolore. Culpa commodo ullamco est voluptate ad mollit sunt deserunt. Pariatur tempor excepteur laborum ex ea ea consectetur enim ut ad sunt nulla.\r\n", + "address": "4 Malbone Street", + "city": "Eagletown", + "state": "Kentucky", + "zip": 72696, + "country": "Ethiopia", + "email": "ericksonbennett@scentric.com", + "phone": "(937) 528-2434", + "color": "rgb(132,110,89)" + }, + { + "index": 460, + "name": "Sybil Boyle", + "first": "Rosetta", + "last": "Joseph", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/oanacr/73.jpg", + "boolean": true, + "guid": "3cf8b3eb-9567-4dbe-ad09-b792ef4b7f81", + "integer": 86, + "date": "Thu Aug 06 1992 04:15:43 GMT-0700 (PDT)", + "shortText": "reprehenderit", + "mediumText": "Consectetur irure ut minim proident laboris. Ea est et mollit voluptate aliquip qui enim incididunt nisi magna sunt tempor nulla. Pariatur officia id velit laborum quis id tempor cillum aliquip dolore sunt eiusmod enim. Elit id cillum occaecat sit exercitation fugiat eiusmod fugiat sunt cillum. Incididunt magna aliqua cupidatat fugiat voluptate nostrud voluptate.", + "longText": "Qui sunt irure veniam occaecat commodo sint labore nostrud qui do mollit. Non enim anim elit aute incididunt. Voluptate qui ullamco in sit cillum consectetur voluptate commodo. Non laboris anim minim anim nisi duis consectetur ad aute nisi nostrud. Id quis dolor consequat consequat nostrud ullamco dolore enim labore ipsum ipsum do voluptate aute.\r\nNisi dolor dolor elit veniam sint nisi eu officia incididunt ut labore elit id eu. Fugiat magna ex esse consectetur excepteur occaecat deserunt eiusmod ullamco ullamco do incididunt. Labore ad anim occaecat ullamco pariatur proident duis commodo. Quis reprehenderit consectetur exercitation fugiat dolor anim laboris dolor eu cupidatat adipisicing adipisicing Lorem. Ad voluptate officia pariatur ipsum Lorem ex aute sit non officia officia sint. Veniam aliqua labore ut enim in incididunt sit aute culpa magna officia ex officia nisi.\r\nNostrud incididunt consectetur nulla voluptate pariatur qui excepteur amet incididunt cupidatat culpa laboris sint. Sunt Lorem aute proident in velit ipsum. Magna fugiat veniam excepteur esse eiusmod sint cillum aute deserunt. Mollit magna quis excepteur in ex irure sit ea proident magna enim.\r\nConsectetur nisi culpa mollit eu in do consectetur sunt ad aliqua. Esse laboris adipisicing Lorem aute reprehenderit Lorem excepteur nisi id cupidatat aliqua cupidatat occaecat sit. Lorem Lorem ad ullamco quis reprehenderit nostrud elit enim ullamco incididunt. Culpa tempor consectetur exercitation velit consequat consequat dolore excepteur elit qui tempor est excepteur.\r\n", + "address": "4 Harman Street", + "city": "Sylvanite", + "state": "American Samoa", + "zip": 13569, + "country": "Togo", + "email": "rosettajoseph@scentric.com", + "phone": "(981) 470-3813", + "color": "rgb(209,237,158)" + }, + { + "index": 461, + "name": "Case Decker", + "first": "Santos", + "last": "Rice", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elamyr/73.jpg", + "boolean": false, + "guid": "bf49a638-bbff-435c-9756-52b76f67815d", + "integer": 66, + "date": "Tue Apr 29 2003 07:40:21 GMT-0700 (PDT)", + "shortText": "ullamco aliqua sunt fugiat", + "mediumText": "Mollit Lorem exercitation cupidatat occaecat eiusmod qui. Magna et reprehenderit labore in. Excepteur ad enim aliqua aute ullamco cupidatat esse. Officia quis qui sunt nisi ipsum eu deserunt nulla fugiat magna sunt et quis pariatur. Voluptate cillum nostrud aliqua minim nulla minim dolore labore magna.", + "longText": "Laboris amet irure aute ipsum anim irure quis elit Lorem enim non id officia. Qui quis fugiat do esse. Eiusmod anim quis magna deserunt labore proident ullamco consequat cupidatat velit laboris ut aute. Quis excepteur ullamco officia ad reprehenderit. Irure occaecat reprehenderit ad consequat id laborum amet nisi tempor eu laboris. Irure sit cillum proident occaecat in ipsum. Quis esse officia sunt sunt anim ullamco ad amet ullamco Lorem.\r\nReprehenderit excepteur est officia consequat ea cupidatat excepteur sunt id ad adipisicing occaecat magna minim. Exercitation quis irure nostrud irure eiusmod laborum pariatur fugiat commodo id velit culpa reprehenderit id. Commodo mollit aute esse laboris fugiat pariatur mollit voluptate nulla. Commodo esse proident anim aliqua et duis exercitation cupidatat incididunt est laborum incididunt laborum. Aliqua est aute qui ullamco sunt ut cillum commodo cupidatat. Est sint est id consectetur ad duis duis culpa fugiat sit sit id aute. Dolor occaecat non cillum amet proident cupidatat laboris.\r\nIn sit non nostrud labore laboris commodo sit ea nisi commodo irure reprehenderit nostrud reprehenderit. Nostrud ad velit enim magna esse adipisicing. Labore occaecat anim irure magna sit duis ullamco exercitation ipsum mollit. Laboris irure ipsum occaecat ea anim id sunt irure deserunt eu et. Incididunt ex fugiat Lorem aliquip. Anim ea duis duis aliquip ex. Qui Lorem officia cillum nisi irure Lorem.\r\n", + "address": "3 Suydam Street", + "city": "Waumandee", + "state": "Minnesota", + "zip": 74848, + "country": "Zimbabwe", + "email": "santosrice@scentric.com", + "phone": "(890) 599-3600", + "color": "rgb(95,54,177)" + }, + { + "index": 462, + "name": "Snider Monroe", + "first": "Jensen", + "last": "Atkins", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hmenchaca2/73.jpg", + "boolean": true, + "guid": "f24bb864-fe55-4bd6-9144-5bc756f08b1c", + "integer": 74, + "date": "Mon Sep 14 1981 09:51:33 GMT-0700 (PDT)", + "shortText": "eu", + "mediumText": "Laboris proident ullamco ipsum ea ullamco non minim id dolore ad labore. Culpa cillum nostrud deserunt ea in sunt eu ex. Est ullamco sint nulla irure anim velit in. Do sint id exercitation labore do adipisicing.", + "longText": "Non labore culpa laborum fugiat nostrud sunt labore id duis ullamco aliquip exercitation sint. Ex nisi duis nostrud consequat occaecat. Cupidatat dolore occaecat do ea ut ex amet duis mollit magna et commodo aliquip fugiat. Nostrud ut tempor est voluptate sunt enim. Labore commodo consequat ad fugiat.\r\nAute consequat enim ut esse laboris excepteur est nisi laboris veniam esse veniam Lorem Lorem. Aliquip aliquip laboris sit quis. Lorem id ipsum et eiusmod aliqua tempor ipsum cupidatat Lorem anim ipsum aute do consectetur.\r\n", + "address": "3 Boerum Street", + "city": "Crucible", + "state": "Hawaii", + "zip": 89416, + "country": "Azerbaijan", + "email": "jensenatkins@scentric.com", + "phone": "(839) 445-3763", + "color": "rgb(116,98,175)" + }, + { + "index": 463, + "name": "Calderon Pugh", + "first": "Monroe", + "last": "Travis", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dparrelli/73.jpg", + "boolean": true, + "guid": "c9c9f502-618c-4896-b09e-c4d5fb42384c", + "integer": 81, + "date": "Sat Jan 21 1978 16:37:46 GMT-0800 (PST)", + "shortText": "commodo aliqua ullamco mollit excepteur", + "mediumText": "Consequat et ad nulla id velit officia aliqua nulla eu anim sit magna. Enim in ad Lorem consequat amet nisi magna pariatur in in proident esse mollit sit.", + "longText": "In ut dolore enim ullamco non culpa ea voluptate. Enim Lorem est labore magna reprehenderit laboris amet aliqua sint eiusmod cupidatat amet. Non sit eu quis minim ut. Ex mollit qui aliqua quis adipisicing consectetur esse adipisicing sunt ex tempor. Ad mollit in laboris amet occaecat cupidatat eiusmod id. Aliqua sint pariatur proident ad laboris consequat nostrud quis dolore laborum. Excepteur ipsum ea veniam minim dolore nostrud veniam et voluptate cupidatat elit.\r\nEnim laborum dolore ullamco veniam. Mollit nostrud eu occaecat eu qui laborum sit reprehenderit excepteur amet magna tempor sunt et. Nostrud pariatur qui reprehenderit Lorem amet ullamco sint sint commodo cupidatat est sint officia ea. Ut ut dolore eiusmod magna occaecat incididunt minim consequat quis dolor et duis sunt.\r\n", + "address": "3 Hawthorne Street", + "city": "Coalmont", + "state": "Alabama", + "zip": 60080, + "country": "French Southern Territories", + "email": "monroetravis@scentric.com", + "phone": "(806) 479-3754", + "color": "rgb(93,63,172)" + }, + { + "index": 464, + "name": "Colleen Haley", + "first": "Conley", + "last": "Stanley", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/okansurreel/73.jpg", + "boolean": false, + "guid": "05acd8c3-414b-4b60-ac92-b0b7eba4e0c3", + "integer": 42, + "date": "Mon Mar 02 2009 03:09:26 GMT-0800 (PST)", + "shortText": "enim ad", + "mediumText": "Esse tempor voluptate aliqua culpa laborum pariatur cillum sint reprehenderit adipisicing. Elit esse anim sint duis voluptate nostrud culpa proident esse fugiat Lorem velit ut. Nostrud officia dolore voluptate proident eu ex consequat ipsum ad velit nisi laborum ea. Laboris in consequat elit et in ut. Qui ex ea reprehenderit sit dolor eiusmod minim deserunt.", + "longText": "Est dolor Lorem consequat excepteur excepteur nisi enim velit. Tempor velit veniam tempor cillum ea dolore est deserunt anim ex. Enim non id proident officia fugiat amet laborum veniam ullamco dolor est consequat incididunt occaecat. Enim culpa qui ipsum est. Amet sunt consectetur reprehenderit aute excepteur quis consequat minim tempor ullamco.\r\nEt ad aute non ut magna mollit sunt dolore laborum. Elit voluptate anim mollit est consequat officia laborum ad officia eu. Irure quis qui ipsum pariatur commodo commodo proident amet deserunt ut ea officia voluptate elit. Nulla Lorem voluptate commodo minim veniam dolore irure nulla excepteur ipsum eu pariatur. Ipsum amet commodo velit cillum. Laborum esse enim laboris sit esse labore quis proident sint officia ea Lorem.\r\nEnim quis enim consectetur elit ex duis. Tempor culpa labore excepteur mollit ea enim non reprehenderit fugiat elit laborum ea. Occaecat dolore excepteur adipisicing incididunt excepteur esse fugiat pariatur ut labore id consequat aliqua sunt. Elit est irure nisi labore quis magna consequat eiusmod culpa voluptate fugiat excepteur pariatur Lorem. Laboris magna irure consequat enim incididunt consectetur aute. Amet aliquip occaecat laboris ea. Fugiat ea non qui culpa pariatur quis nostrud commodo.\r\nDolore non do dolor culpa enim. Elit reprehenderit voluptate cupidatat fugiat. Aute enim occaecat nostrud cillum commodo mollit voluptate in esse labore fugiat. In nulla sit ullamco nisi velit. Et nostrud qui dolore ad laboris excepteur minim esse quis qui pariatur irure eu exercitation. Commodo labore in ex sint occaecat sint id esse reprehenderit commodo voluptate. Enim nostrud anim id velit id officia laborum deserunt laboris nostrud.\r\nNon excepteur exercitation eiusmod dolor laborum nulla laborum irure adipisicing id. Lorem cillum aliqua eu enim exercitation. Proident incididunt irure exercitation amet ad occaecat.\r\n", + "address": "2 Knapp Street", + "city": "Shindler", + "state": "North Carolina", + "zip": 55329, + "country": "Finland", + "email": "conleystanley@scentric.com", + "phone": "(887) 439-2117", + "color": "rgb(90,231,64)" + }, + { + "index": 465, + "name": "Barry Andrews", + "first": "Leona", + "last": "Nash", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lwilsonsmith/73.jpg", + "boolean": false, + "guid": "d6109791-de8e-41c5-9d94-00e69ae0b6e5", + "integer": 45, + "date": "Sun Jan 10 2010 12:46:09 GMT-0800 (PST)", + "shortText": "laborum", + "mediumText": "Commodo eiusmod do fugiat nostrud laborum id incididunt nulla. Tempor amet nostrud commodo id occaecat veniam. Ad ea eu eiusmod minim nostrud deserunt adipisicing reprehenderit ut ea occaecat.", + "longText": "Pariatur ea veniam fugiat officia incididunt aliquip occaecat commodo. Enim anim officia aliquip eu. Occaecat nostrud veniam laboris in Lorem excepteur laboris laborum duis laboris incididunt. Eu proident incididunt sint nostrud reprehenderit esse duis exercitation et ipsum exercitation consectetur aliquip Lorem.\r\nAdipisicing non nisi consectetur est consectetur ullamco enim dolore. Commodo eu Lorem consectetur esse. Cillum eiusmod incididunt exercitation elit labore duis esse. Adipisicing occaecat aliquip adipisicing pariatur laborum aute laboris velit incididunt amet. Nulla aliqua id ex velit consequat ex mollit minim Lorem. Irure anim ad laboris ullamco minim et consectetur adipisicing sunt sint in.\r\nEx magna excepteur esse consequat ex commodo commodo. Commodo non incididunt consequat consequat mollit duis quis Lorem non adipisicing pariatur incididunt ex nulla. Ex ut in laboris labore consequat mollit. Sint ex minim adipisicing velit cupidatat id anim excepteur nostrud consectetur proident. Commodo minim eiusmod veniam pariatur laboris cupidatat. Labore ullamco consequat velit ad consequat occaecat et tempor dolore ut sint esse ullamco amet.\r\nQui officia laborum laborum laborum. Ipsum Lorem ipsum sunt tempor exercitation dolore. Dolore reprehenderit do sit nulla dolor ea incididunt do id esse. Consectetur nulla enim ipsum velit reprehenderit non irure non.\r\n", + "address": "4 Highland Avenue", + "city": "Innsbrook", + "state": "Connecticut", + "zip": 62850, + "country": "United Arab Emirates", + "email": "leonanash@scentric.com", + "phone": "(892) 484-3082", + "color": "rgb(232,187,145)" + }, + { + "index": 466, + "name": "Lynette Shepard", + "first": "Walls", + "last": "Baxter", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/klimmka/73.jpg", + "boolean": false, + "guid": "f477123a-40c0-4cb9-8d64-cbf4c127e7bf", + "integer": 54, + "date": "Tue May 06 2008 02:57:35 GMT-0700 (PDT)", + "shortText": "officia ea ullamco", + "mediumText": "Do deserunt aute duis non proident commodo occaecat do reprehenderit eu aliqua est aliqua dolor. Culpa do laboris eiusmod do eiusmod enim irure ex nostrud. Dolor eiusmod enim pariatur duis non sunt quis dolor. Cupidatat aliqua ut cillum adipisicing non. Eiusmod labore in aliquip dolore magna cillum aliqua mollit irure.", + "longText": "Sunt consequat eiusmod qui irure ex excepteur culpa. Consectetur nostrud exercitation aliquip ex dolore quis. Mollit esse et non cupidatat proident eu voluptate et dolor pariatur fugiat. Amet qui ut quis do voluptate eu dolor enim tempor adipisicing.\r\nExercitation laboris pariatur deserunt laborum irure tempor ullamco id sit adipisicing nisi enim. Do amet consectetur ullamco culpa laborum dolor ut amet sit. Exercitation magna incididunt consectetur laborum excepteur. Laboris tempor ad sint esse ipsum irure culpa eiusmod labore cillum ad fugiat magna magna. Quis ut magna labore sunt laborum nostrud excepteur exercitation aliqua do aliqua velit esse pariatur. Aliqua Lorem qui proident aliqua culpa voluptate non officia.\r\nIncididunt do sunt ex dolor aute ut anim nisi nisi et fugiat. Id pariatur do aliqua ullamco fugiat eu irure reprehenderit ea sint excepteur. Minim aliquip culpa ea nulla aliqua id pariatur culpa ut deserunt magna. Laboris eiusmod ad eu fugiat id adipisicing occaecat qui tempor culpa aute ipsum in. Ea sit veniam dolore consectetur non cupidatat velit fugiat cillum. Cillum labore id labore fugiat consequat consequat cillum laboris amet velit adipisicing ipsum pariatur. Pariatur in irure ipsum consectetur laborum esse labore sint esse occaecat irure.\r\nDolore dolor esse esse ut labore anim deserunt tempor id reprehenderit irure veniam pariatur exercitation. Proident incididunt non ad Lorem est eiusmod aute elit qui Lorem enim. Mollit magna Lorem laboris excepteur occaecat consectetur tempor commodo irure. Sunt in eiusmod ullamco ad commodo laboris Lorem Lorem ullamco cupidatat. Lorem culpa ea do voluptate voluptate exercitation nulla. Officia adipisicing ullamco nisi officia laboris reprehenderit et ipsum. Dolor excepteur duis anim exercitation quis culpa culpa anim eiusmod ex laborum cillum.\r\nDo pariatur ad laborum occaecat labore occaecat amet non. Consequat non sit ullamco nulla cupidatat officia qui duis. Laborum duis ad velit eiusmod ea eu. Tempor incididunt tempor eiusmod duis.\r\n", + "address": "2 Forest Place", + "city": "Sabillasville", + "state": "South Carolina", + "zip": 36003, + "country": "Portugal", + "email": "wallsbaxter@scentric.com", + "phone": "(910) 431-2449", + "color": "rgb(74,195,121)" + }, + { + "index": 467, + "name": "Vega Dickson", + "first": "Bishop", + "last": "Stout", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_kalibry/73.jpg", + "boolean": true, + "guid": "c40dd867-a925-4993-a4f1-e7e411637845", + "integer": 69, + "date": "Sun May 04 2008 00:14:56 GMT-0700 (PDT)", + "shortText": "sit sunt", + "mediumText": "Adipisicing sit cillum nostrud nostrud commodo. Sunt labore veniam dolor enim nostrud deserunt. Consectetur est aute laboris aliqua. Sit velit ad dolore cupidatat nisi nisi nostrud minim in est.", + "longText": "Labore esse occaecat commodo pariatur consectetur Lorem. Et minim sint in laborum. Do laborum nulla culpa ex dolor ipsum ut excepteur id deserunt ad quis aliquip. Ipsum proident amet cupidatat labore veniam aliquip ipsum laboris. Incididunt sunt excepteur non ut pariatur aute. Duis exercitation cillum cillum do nostrud minim. Labore eiusmod eiusmod voluptate consectetur id.\r\n", + "address": "3 Seeley Street", + "city": "Westmoreland", + "state": "Michigan", + "zip": 41497, + "country": "Comoros", + "email": "bishopstout@scentric.com", + "phone": "(988) 498-2056", + "color": "rgb(228,157,219)" + }, + { + "index": 468, + "name": "Noelle Mosley", + "first": "Barnes", + "last": "Bowen", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dhoot_amit/73.jpg", + "boolean": false, + "guid": "987c2384-3ee6-442a-859a-8839de50f5b6", + "integer": 90, + "date": "Thu Feb 26 2009 03:38:03 GMT-0800 (PST)", + "shortText": "voluptate", + "mediumText": "Lorem enim in incididunt proident commodo adipisicing laborum ut. Magna velit nostrud ipsum velit occaecat. Laborum duis reprehenderit reprehenderit id elit aute est occaecat nostrud exercitation reprehenderit esse. Reprehenderit adipisicing laborum laboris culpa magna commodo ullamco amet dolore.", + "longText": "Commodo occaecat magna consectetur esse culpa. Sunt ea adipisicing dolore laboris adipisicing officia proident culpa adipisicing et. Duis reprehenderit sunt proident sint exercitation enim irure esse voluptate mollit irure sint. Occaecat non amet nisi nisi Lorem duis aute incididunt nostrud elit veniam adipisicing proident. Fugiat id nostrud Lorem veniam aliquip Lorem occaecat ea nulla veniam. Sit amet laboris consequat esse excepteur dolore minim.\r\nAliqua ut dolor ex esse laboris consectetur incididunt. Dolore in commodo duis et enim consectetur eiusmod anim sit officia. Eu ut excepteur labore mollit sunt aliqua culpa sunt deserunt eiusmod.\r\nVeniam occaecat reprehenderit magna nisi elit deserunt. Dolore ullamco nisi aute excepteur aliquip aliquip duis eu laboris eu exercitation tempor. Lorem anim commodo esse fugiat enim aliquip aliqua consequat ullamco non aute magna veniam qui. Esse enim eu dolor aliqua pariatur culpa ea.\r\n", + "address": "2 Barwell Terrace", + "city": "Norvelt", + "state": "Maine", + "zip": 82709, + "country": "Central African Republic", + "email": "barnesbowen@scentric.com", + "phone": "(874) 465-2581", + "color": "rgb(201,251,62)" + }, + { + "index": 469, + "name": "Parrish Fowler", + "first": "Glenna", + "last": "Gaines", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/actionsmile/73.jpg", + "boolean": false, + "guid": "82d27516-08d2-4a84-9d5c-ed237bcbbee1", + "integer": 75, + "date": "Sun Oct 29 2000 13:21:37 GMT-0800 (PST)", + "shortText": "aliqua magna ad", + "mediumText": "In qui do velit aliquip voluptate duis eu in deserunt officia fugiat exercitation irure do.", + "longText": "Qui dolor nisi adipisicing mollit laboris velit ad sunt. Magna do esse nostrud excepteur aliqua duis ea cupidatat ut. Nostrud dolore laborum id incididunt duis consectetur sint amet aliqua aliquip elit laborum minim. Proident in anim sunt enim in commodo occaecat magna. Magna est excepteur duis laboris laborum anim esse aute Lorem adipisicing.\r\nAnim voluptate minim adipisicing irure sit ipsum. Dolor dolore velit quis eu. Ex sit ex consequat minim consequat nisi aliqua incididunt voluptate incididunt id anim irure. Velit sit aliquip incididunt do commodo officia enim excepteur ut nisi laborum culpa anim. Ea sint fugiat quis nulla do. Tempor deserunt reprehenderit veniam pariatur velit velit labore culpa ut consequat reprehenderit ipsum. Eu reprehenderit ut excepteur do velit occaecat duis.\r\n", + "address": "2 Dare Court", + "city": "Muse", + "state": "Kansas", + "zip": 37729, + "country": "Gabon", + "email": "glennagaines@scentric.com", + "phone": "(819) 430-2612", + "color": "rgb(196,125,143)" + }, + { + "index": 470, + "name": "Booth Goodman", + "first": "Kathrine", + "last": "Curtis", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/craftified/73.jpg", + "boolean": false, + "guid": "15c7abe9-175a-412b-b120-6bd621022908", + "integer": 6, + "date": "Sat Mar 28 1992 21:26:09 GMT-0800 (PST)", + "shortText": "proident reprehenderit", + "mediumText": "Deserunt id occaecat reprehenderit sint ea reprehenderit mollit eiusmod ea. Sint velit voluptate non Lorem deserunt dolore voluptate enim sunt laborum ad ullamco reprehenderit enim. Excepteur pariatur veniam amet qui in culpa magna. Commodo sit ad veniam deserunt excepteur aute laborum incididunt laborum ut.", + "longText": "Dolor do est occaecat ut ipsum nulla est anim minim voluptate incididunt officia dolor. Adipisicing in id sunt cillum nisi laborum cillum amet laborum aute consectetur. Officia sit dolor elit consequat adipisicing magna magna eu do non pariatur velit dolore ipsum.\r\nReprehenderit Lorem mollit irure laborum voluptate aute. Tempor enim nulla aliquip Lorem id dolor exercitation Lorem minim cupidatat irure et ipsum. Aliqua aute mollit culpa non ex labore quis eu do esse. In laborum adipisicing voluptate culpa pariatur ad et adipisicing. Ut eiusmod esse proident reprehenderit magna ut in nisi cillum sunt consequat pariatur. Consequat enim eiusmod fugiat magna nulla veniam nostrud veniam Lorem adipisicing amet consequat labore. Occaecat duis ad esse sint et cupidatat consequat culpa sint pariatur officia quis.\r\nCulpa id sit qui ea incididunt laboris laboris nisi voluptate nostrud. Enim in voluptate cillum dolore irure occaecat cupidatat pariatur ad elit excepteur. Lorem anim reprehenderit aliqua ipsum officia esse quis incididunt sint sunt esse. Deserunt culpa cillum nulla eiusmod incididunt est exercitation do ea. Voluptate magna occaecat excepteur incididunt tempor occaecat exercitation ad incididunt cupidatat dolor occaecat voluptate.\r\n", + "address": "3 Interborough Parkway", + "city": "Bethany", + "state": "Iowa", + "zip": 27481, + "country": "Cambodia", + "email": "kathrinecurtis@scentric.com", + "phone": "(857) 508-2561", + "color": "rgb(174,52,167)" + }, + { + "index": 471, + "name": "Benton Waters", + "first": "Marietta", + "last": "Cantu", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aleksitappura/73.jpg", + "boolean": false, + "guid": "f166dfbf-b1f4-4bbf-8d31-7979b09bc29c", + "integer": 84, + "date": "Sat Aug 15 1970 03:51:29 GMT-0700 (PDT)", + "shortText": "ipsum", + "mediumText": "Commodo duis laborum ut aliqua et nostrud incididunt. Cillum et sint do pariatur quis non ex duis deserunt esse eiusmod nulla aliqua id. Consequat amet cupidatat ea non ea ipsum Lorem nulla ut ipsum aliqua eiusmod do nostrud. Quis elit est esse officia.", + "longText": "In magna quis duis et. Veniam consectetur dolor excepteur aute sit minim aute aute ipsum dolor id sint quis. Ex aute Lorem commodo sit et qui esse nulla excepteur tempor. Cillum consectetur nulla consequat nisi elit ex labore. Ex officia labore sunt exercitation aliquip culpa elit commodo fugiat aute ut. Id velit velit sunt qui aliquip laborum nulla ea sit in commodo.\r\nPariatur commodo excepteur aliquip voluptate esse do velit do deserunt. Laboris anim deserunt laborum duis cillum aliqua esse cillum sunt. Ad fugiat nostrud amet sunt ipsum. Laborum deserunt qui eiusmod consequat.\r\nIrure qui enim voluptate laboris ex ad esse irure sunt officia aliquip do elit esse. Eu do commodo in excepteur ad. Aliquip nulla Lorem nisi sunt quis ex in eu fugiat minim elit consectetur occaecat.\r\n", + "address": "3 Falmouth Street", + "city": "Manchester", + "state": "Vermont", + "zip": 34619, + "country": "New Zealand", + "email": "mariettacantu@scentric.com", + "phone": "(932) 598-2276", + "color": "rgb(156,114,200)" + }, + { + "index": 472, + "name": "Lambert Spears", + "first": "Harding", + "last": "Woodward", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicollerich/73.jpg", + "boolean": false, + "guid": "32d3c3aa-0997-4d88-b2e7-9b28713b91bd", + "integer": 85, + "date": "Fri Feb 10 2006 11:58:14 GMT-0800 (PST)", + "shortText": "ullamco enim aliquip amet veniam", + "mediumText": "Excepteur magna velit est et minim veniam.", + "longText": "Ut nostrud elit dolor eiusmod est id. Sit aliqua tempor incididunt quis magna aliquip irure in elit in. Exercitation pariatur deserunt irure ullamco laboris excepteur ea. Deserunt labore laboris fugiat reprehenderit laborum quis occaecat duis voluptate labore culpa nisi aliqua ea. Veniam ea duis sint quis anim do.\r\nFugiat reprehenderit proident minim irure aliqua sunt non quis sunt ut. Eiusmod et occaecat ad quis. Velit ipsum in amet qui aliquip consequat sit voluptate est consequat. Nostrud laborum proident incididunt proident voluptate do sint minim officia.\r\n", + "address": "3 Guernsey Street", + "city": "Magnolia", + "state": "Nebraska", + "zip": 56924, + "country": "Lebanon", + "email": "hardingwoodward@scentric.com", + "phone": "(852) 477-3706", + "color": "rgb(148,78,220)" + }, + { + "index": 473, + "name": "Ferrell Gallegos", + "first": "Marie", + "last": "Flowers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrmartineau/73.jpg", + "boolean": true, + "guid": "3b7ed12d-4299-4fd6-a79a-42a27d171c9e", + "integer": 92, + "date": "Sun Jun 07 1992 13:29:12 GMT-0700 (PDT)", + "shortText": "sunt non veniam", + "mediumText": "Lorem officia duis consequat minim occaecat enim incididunt et labore consequat esse amet. Ea incididunt dolore eiusmod dolor mollit veniam laborum et cupidatat proident. Mollit sint fugiat tempor consectetur veniam ad cupidatat.", + "longText": "Do et sint pariatur in ex consectetur esse. Sit deserunt sit pariatur Lorem laboris duis ex est Lorem sunt. Qui id occaecat proident irure non aliquip tempor velit voluptate dolor adipisicing ullamco enim irure.\r\n", + "address": "4 Harden Street", + "city": "Worton", + "state": "Florida", + "zip": 87914, + "country": "Armenia", + "email": "marieflowers@scentric.com", + "phone": "(867) 463-2219", + "color": "rgb(245,149,165)" + }, + { + "index": 474, + "name": "Elena Hale", + "first": "Leola", + "last": "Byers", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kuldarkalvik/73.jpg", + "boolean": false, + "guid": "248816ef-ebc8-48b6-83b8-ddf059001caf", + "integer": 36, + "date": "Fri Nov 08 1974 22:54:38 GMT-0800 (PST)", + "shortText": "sint ea eu aliqua elit", + "mediumText": "Dolor velit ullamco ullamco dolor nostrud. Qui deserunt mollit ea id cillum eu. Consectetur dolor irure esse velit sunt nostrud nostrud voluptate cillum tempor ipsum mollit do. Laboris ea esse do laboris adipisicing nisi. Labore excepteur cupidatat nostrud sit aliqua ad labore Lorem do aliquip ea veniam veniam.", + "longText": "Et esse non incididunt sunt aliqua eiusmod. Enim id ullamco in ex dolor est non eiusmod reprehenderit. Quis velit pariatur irure labore id enim. Anim esse voluptate fugiat ipsum do amet nisi velit pariatur deserunt culpa. Duis ullamco anim quis deserunt labore id laboris. Minim laborum id ex ex. Nulla mollit id esse do reprehenderit eu velit eu dolor commodo dolore aute sit.\r\nMollit magna reprehenderit velit consequat pariatur officia dolore laborum. Do sit reprehenderit qui fugiat voluptate ut cupidatat sit magna mollit sit velit Lorem. Id anim veniam aliquip aliqua adipisicing.\r\n", + "address": "2 Elliott Walk", + "city": "Gwynn", + "state": "New Jersey", + "zip": 23849, + "country": "Cayman Islands", + "email": "leolabyers@scentric.com", + "phone": "(800) 419-2994", + "color": "rgb(62,183,119)" + }, + { + "index": 475, + "name": "Deloris Warren", + "first": "Lacy", + "last": "Elliott", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/erickmazer/73.jpg", + "boolean": true, + "guid": "75cda396-a179-4462-bd5f-c87f9cdcb07d", + "integer": 16, + "date": "Tue Mar 20 2012 21:38:59 GMT-0700 (PDT)", + "shortText": "labore fugiat et", + "mediumText": "Fugiat velit exercitation commodo dolor deserunt commodo cupidatat eiusmod excepteur ea. Voluptate est deserunt eiusmod nostrud.", + "longText": "Adipisicing qui esse voluptate aliqua magna aliquip esse. Tempor ad aliquip ullamco fugiat. Aliqua Lorem velit consectetur amet velit deserunt.\r\nIrure tempor anim cillum aliqua pariatur fugiat. Nostrud amet dolore nisi cillum qui sit excepteur magna fugiat aute fugiat. Irure culpa incididunt est velit non anim adipisicing culpa est qui. Pariatur est reprehenderit amet officia mollit eu.\r\nId anim exercitation ex culpa dolor amet culpa sint sint sint esse dolore ea cupidatat. Ut laborum ullamco elit proident. Sit aute id proident nulla et. Incididunt excepteur ut cupidatat reprehenderit. Labore qui laboris consequat pariatur do cillum.\r\n", + "address": "3 Ditmars Street", + "city": "Carrizo", + "state": "Wisconsin", + "zip": 21484, + "country": "Italy", + "email": "lacyelliott@scentric.com", + "phone": "(927) 422-3415", + "color": "rgb(69,169,92)" + }, + { + "index": 476, + "name": "Young Lee", + "first": "Kay", + "last": "Montgomery", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guischmitt/73.jpg", + "boolean": true, + "guid": "c41e7a43-d02b-4c42-9d72-38d7ba926b78", + "integer": 99, + "date": "Wed Sep 26 1979 16:42:55 GMT-0700 (PDT)", + "shortText": "Lorem consequat esse occaecat irure", + "mediumText": "Ex velit deserunt veniam dolor et fugiat. Mollit excepteur occaecat cupidatat mollit ut magna et. Nostrud magna esse consectetur exercitation irure magna Lorem do nulla. Sit laboris cupidatat ullamco eiusmod nisi ex.", + "longText": "Enim cupidatat magna sint velit cupidatat Lorem sint est eiusmod irure officia ea occaecat. Laborum qui officia voluptate anim enim velit cillum ipsum. Irure labore irure eiusmod Lorem sint minim laboris deserunt irure dolor. Anim quis laborum cupidatat ex ex in. Dolor ipsum fugiat ad mollit proident labore consectetur dolore labore laborum cillum sint dolore. Et ex mollit sit est. Anim incididunt deserunt incididunt proident ea velit enim anim laboris adipisicing.\r\nEa officia laborum veniam duis irure labore. Aliquip velit et quis officia veniam cillum dolor nostrud non ipsum sint sint fugiat. Occaecat tempor ea consequat consequat voluptate.\r\nNostrud officia aliquip est eu quis ex dolor sint commodo commodo reprehenderit laborum. Do deserunt voluptate laboris do. Velit fugiat incididunt fugiat proident cillum ad excepteur aute aliqua minim. Nulla voluptate fugiat sint ea incididunt esse laboris sint incididunt dolor cillum irure magna. Tempor culpa anim duis qui adipisicing culpa enim magna duis. Nisi mollit qui nisi excepteur ut ut. Dolor laboris ad in reprehenderit enim sint excepteur laborum irure aliquip.\r\nLorem sit ad excepteur cillum ad consequat fugiat aliqua mollit veniam labore sit aliquip aute. Laborum dolore proident in aute labore ad dolore duis pariatur culpa mollit commodo esse. Enim occaecat officia ipsum ad eiusmod exercitation tempor nisi proident irure ut ut. Elit amet ad ex irure enim laboris elit ex anim magna sint sunt tempor in. Et magna ipsum laborum Lorem incididunt. Amet cillum ut magna dolore elit aute.\r\nSit nulla sint non velit aliquip occaecat sint laborum. Aliqua tempor dolore velit nisi tempor magna labore sunt elit et. Occaecat nisi commodo sunt et tempor ut ullamco. Sint tempor adipisicing consequat commodo tempor deserunt voluptate ea Lorem exercitation id culpa.\r\n", + "address": "4 India Street", + "city": "Elliott", + "state": "Washington", + "zip": 78397, + "country": "Lesotho", + "email": "kaymontgomery@scentric.com", + "phone": "(803) 429-2640", + "color": "rgb(217,203,52)" + }, + { + "index": 477, + "name": "Lynn Kim", + "first": "Ericka", + "last": "Todd", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mariosmaselli/73.jpg", + "boolean": true, + "guid": "e055ce4f-15a9-429c-91eb-a66e77b390f4", + "integer": 98, + "date": "Tue Mar 14 1972 10:31:22 GMT-0800 (PST)", + "shortText": "ullamco excepteur", + "mediumText": "Tempor sunt aliqua aliquip labore nisi ad eu in et eu laboris deserunt commodo ex. Ipsum minim ex dolor reprehenderit magna ullamco eu quis.", + "longText": "Sint dolore ipsum eu nulla amet amet aute commodo exercitation duis sit occaecat id. Eiusmod ex occaecat consequat tempor fugiat non ad minim anim Lorem. Magna dolore duis exercitation cupidatat elit ipsum Lorem eu mollit sint nulla reprehenderit ullamco elit. Ea est ea commodo eu do. In dolor magna reprehenderit ad dolor dolor id amet tempor occaecat. In laboris do incididunt occaecat elit quis ad amet. Anim sint elit culpa ullamco enim anim officia reprehenderit sunt.\r\nOfficia mollit cupidatat aliquip in laborum consectetur ea. Exercitation voluptate sint labore sunt excepteur eiusmod nostrud voluptate quis pariatur nulla. Esse commodo excepteur pariatur sit tempor ea laborum reprehenderit irure ex tempor.\r\nQuis labore et ad fugiat nostrud id labore non excepteur ipsum elit. Ea nulla laboris dolore nostrud quis irure magna est. Eiusmod mollit voluptate non laborum nostrud voluptate nisi voluptate. Est veniam veniam ad elit nostrud proident adipisicing ullamco aliquip commodo aliquip laborum laborum ad. Amet incididunt esse consequat nisi et consectetur. Adipisicing sunt irure Lorem elit aliqua dolore quis nostrud. Ex magna nisi excepteur occaecat veniam non dolore minim nostrud.\r\n", + "address": "3 Irving Avenue", + "city": "Stonybrook", + "state": "Oregon", + "zip": 25156, + "country": "Mongolia", + "email": "erickatodd@scentric.com", + "phone": "(854) 460-2134", + "color": "rgb(88,191,173)" + }, + { + "index": 478, + "name": "Duran Rasmussen", + "first": "Irene", + "last": "Guy", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_ahmadyunus/73.jpg", + "boolean": false, + "guid": "ebebb8d9-3261-4d1f-b04c-580c3537cf32", + "integer": 5, + "date": "Mon Dec 14 1992 15:07:33 GMT-0800 (PST)", + "shortText": "excepteur", + "mediumText": "Aute ut nostrud cillum irure non veniam minim exercitation ex mollit sint veniam voluptate. Est culpa eiusmod aliquip anim. Nisi aliquip duis magna nulla est Lorem cupidatat nisi ut proident nostrud voluptate.", + "longText": "Aute consectetur qui sunt enim ad nulla velit et laborum culpa. Laboris officia exercitation nulla aute incididunt excepteur. Dolor et aliqua nulla mollit incididunt velit laborum nisi non ad excepteur. Exercitation ea dolore aliqua sunt minim dolore laboris Lorem culpa ex ut commodo.\r\nVoluptate occaecat et eu elit mollit commodo laboris eiusmod cillum mollit eiusmod est sunt labore. Ea commodo nisi culpa Lorem velit sit labore elit anim est sit sunt ex pariatur. Fugiat consectetur laborum deserunt sit excepteur exercitation qui veniam culpa sint.\r\nTempor aliquip excepteur consectetur commodo dolor magna. Aute elit esse mollit nisi dolore non laboris velit cillum cupidatat proident proident pariatur aute. Labore cillum ex magna anim voluptate esse deserunt consectetur anim est proident. Cillum Lorem sint aliqua fugiat eu qui. Aute eiusmod est qui aliqua incididunt cillum esse est laboris. Cillum et aute culpa excepteur nisi amet veniam incididunt do do sint esse in sint. Culpa ad ipsum ad nostrud id laborum.\r\n", + "address": "4 Dunham Place", + "city": "Vicksburg", + "state": "Illinois", + "zip": 21064, + "country": "Germany", + "email": "ireneguy@scentric.com", + "phone": "(895) 490-2069", + "color": "rgb(65,241,108)" + }, + { + "index": 479, + "name": "Gomez Kent", + "first": "Beverley", + "last": "Garrison", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anggit_pradito/73.jpg", + "boolean": false, + "guid": "1f6414f6-bcb1-4a8e-9bd3-1f4bd3657fb8", + "integer": 52, + "date": "Sun Nov 21 1982 20:33:30 GMT-0800 (PST)", + "shortText": "sint cillum non dolore sit", + "mediumText": "Aliquip ad elit nulla veniam quis.", + "longText": "Incididunt in veniam laboris laboris. Ipsum laboris Lorem ea cupidatat laboris deserunt cillum esse. Elit qui id dolor mollit incididunt veniam aute in eiusmod. Occaecat est adipisicing dolor velit enim. Ipsum laboris nulla Lorem ex ut exercitation nulla commodo nisi occaecat excepteur et Lorem ex. Proident eu exercitation exercitation aliqua enim. Tempor magna excepteur enim aliqua.\r\nMollit fugiat veniam minim esse reprehenderit. Cillum exercitation qui elit anim proident. Aliquip ullamco irure aliqua sit commodo veniam cillum adipisicing proident ad aliquip dolore minim.\r\nQuis pariatur sint commodo mollit reprehenderit et incididunt commodo aliqua sint. Sunt nulla deserunt ad nulla in sit incididunt laborum nulla magna culpa excepteur. Deserunt ad non ullamco in amet do elit qui excepteur.\r\nQui ut do ex pariatur tempor. Anim qui labore sunt nisi amet laborum occaecat adipisicing incididunt fugiat labore. Laborum nisi duis minim pariatur labore ea consequat exercitation. Cillum reprehenderit eiusmod aute cillum laborum labore dolor aliqua in magna.\r\n", + "address": "4 Lafayette Avenue", + "city": "Esmont", + "state": "West Virginia", + "zip": 45346, + "country": "Thailand", + "email": "beverleygarrison@scentric.com", + "phone": "(923) 547-3876", + "color": "rgb(69,99,135)" + }, + { + "index": 480, + "name": "Bowers Benson", + "first": "Cannon", + "last": "Cunningham", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/saschamt/73.jpg", + "boolean": false, + "guid": "de1acbb3-f26f-4448-8284-168962e64357", + "integer": 18, + "date": "Sat Jan 23 1988 03:15:57 GMT-0800 (PST)", + "shortText": "tempor dolore pariatur laboris", + "mediumText": "Cillum proident sint eiusmod qui ullamco dolore. Elit sit nisi et laboris labore Lorem tempor nulla. Dolore incididunt deserunt aute dolor ad elit nisi magna ad tempor.", + "longText": "Eiusmod id tempor id officia aliqua aliquip cillum est minim in. Est reprehenderit pariatur reprehenderit laborum nulla. Proident sit do anim minim anim minim in proident laborum pariatur laborum magna est.\r\nDolor exercitation ad enim est dolore excepteur consequat non pariatur. Eiusmod do et cupidatat ad esse do cillum elit in laboris. Labore consequat cupidatat officia do commodo sit consectetur ipsum irure consectetur. Ullamco commodo cillum officia cupidatat Lorem id.\r\nId anim culpa ex et reprehenderit do proident laboris reprehenderit. Proident quis irure duis irure ex ut velit mollit consectetur anim Lorem. Id consectetur laborum enim consectetur eiusmod excepteur id excepteur. In sunt anim magna duis ad occaecat cillum amet tempor pariatur sunt Lorem et proident. Officia in ipsum sunt aute Lorem.\r\n", + "address": "3 Eldert Lane", + "city": "Torboy", + "state": "Mississippi", + "zip": 21587, + "country": "Seychelles", + "email": "cannoncunningham@scentric.com", + "phone": "(922) 457-2557", + "color": "rgb(214,152,137)" + }, + { + "index": 481, + "name": "Duffy Moreno", + "first": "Combs", + "last": "Lamb", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anasnakawa/73.jpg", + "boolean": false, + "guid": "cc6e70c6-d769-4d53-94c3-3f39685f92b0", + "integer": 62, + "date": "Sat May 08 1971 07:47:14 GMT-0700 (PDT)", + "shortText": "ipsum in sint id amet", + "mediumText": "Voluptate sit occaecat velit elit culpa pariatur deserunt minim tempor. Ipsum sint ad voluptate ipsum.", + "longText": "Non ex consectetur nostrud et incididunt et tempor laborum fugiat aliqua ex sunt. Consectetur velit cillum ea elit anim ut qui velit sit. Dolore cillum eu sint dolore consequat est enim minim sunt dolore dolor est ut aliqua. Tempor ullamco eiusmod incididunt esse quis adipisicing ut et voluptate aliqua ullamco in. Adipisicing irure dolor irure esse velit dolore. Ea ullamco consectetur anim et in quis laboris nulla nisi sint ipsum. Enim aliquip deserunt voluptate quis sint.\r\nCommodo cupidatat occaecat elit Lorem dolor excepteur aliquip est incididunt. Sit minim aute non dolore voluptate nisi. Id non sit nostrud ad.\r\nExercitation deserunt officia nostrud occaecat qui et veniam laborum nostrud dolor dolore id. Ullamco enim esse ex aute ad incididunt aliquip. Tempor id voluptate fugiat ex fugiat dolor.\r\nAd ipsum voluptate ipsum cillum id. Exercitation labore velit occaecat adipisicing non excepteur aute amet. Culpa exercitation deserunt aute excepteur sit enim eiusmod esse Lorem anim aliqua laborum et. Dolore deserunt minim dolore nulla cupidatat proident commodo nisi. Qui exercitation sit elit aliquip mollit aliqua. Proident cupidatat labore culpa ea.\r\n", + "address": "4 Rutledge Street", + "city": "Waterford", + "state": "Rhode Island", + "zip": 58081, + "country": "Chad", + "email": "combslamb@scentric.com", + "phone": "(880) 495-3320", + "color": "rgb(104,242,253)" + }, + { + "index": 482, + "name": "Leach Middleton", + "first": "Molina", + "last": "Parsons", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/just_watt/73.jpg", + "boolean": false, + "guid": "e824a101-32db-4fdd-98bc-f68a09cc9790", + "integer": 36, + "date": "Mon May 13 1996 08:23:43 GMT-0700 (PDT)", + "shortText": "est irure exercitation reprehenderit tempor", + "mediumText": "Cupidatat amet id duis occaecat ad elit quis ea consectetur consequat nostrud qui fugiat. Ea cupidatat est nisi reprehenderit in et sit et ad veniam do elit adipisicing sit. Non Lorem anim consequat velit occaecat excepteur. Officia esse magna veniam dolore ullamco fugiat enim.", + "longText": "In sunt in velit ipsum laborum minim enim sunt duis. Ut duis elit occaecat voluptate eiusmod. Cupidatat dolor laboris aliquip officia magna voluptate incididunt.\r\nFugiat irure ad quis ea aliqua proident ipsum quis ut incididunt. Aliquip culpa velit magna exercitation nostrud. Minim cupidatat irure exercitation excepteur cupidatat dolore. Excepteur amet laborum nulla adipisicing minim aliquip minim cillum nulla officia ut. Nostrud quis eu laboris quis qui minim ad quis ea reprehenderit. Proident ipsum aliquip cupidatat nisi.\r\nConsectetur sint magna id est cupidatat minim. Non cillum aliqua amet commodo aute eiusmod dolor et ad ut non culpa duis incididunt. Sint aliquip excepteur aliqua aliquip mollit commodo amet mollit. Irure minim nisi eu ea sit. Voluptate esse culpa adipisicing excepteur laborum proident laborum proident. Excepteur duis eu fugiat eiusmod labore velit do qui esse dolore labore enim. Esse quis ipsum Lorem voluptate tempor est fugiat enim reprehenderit duis.\r\nVeniam magna qui velit nulla velit incididunt aliqua qui dolore esse ex ad. Fugiat do nostrud do magna excepteur eiusmod et adipisicing aute aliquip cupidatat fugiat irure. Aliqua officia qui anim esse duis est minim excepteur est esse dolor id deserunt.\r\n", + "address": "2 Woods Place", + "city": "Leyner", + "state": "Georgia", + "zip": 45379, + "country": "Uruguay", + "email": "molinaparsons@scentric.com", + "phone": "(825) 403-3345", + "color": "rgb(74,223,146)" + }, + { + "index": 483, + "name": "Della Gomez", + "first": "Lamb", + "last": "Pierce", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/caiifr/73.jpg", + "boolean": false, + "guid": "19a7f089-3845-4441-b5ad-2b14bf2ca81a", + "integer": 50, + "date": "Mon Sep 28 1998 02:00:36 GMT-0700 (PDT)", + "shortText": "proident", + "mediumText": "Cupidatat in duis aliquip nisi consequat enim. Consectetur velit et nostrud et ea exercitation et aliquip pariatur aliqua velit eu ipsum reprehenderit.", + "longText": "Nulla nostrud ex eiusmod adipisicing. Exercitation ad dolore excepteur laborum quis non nisi duis dolor incididunt veniam fugiat laboris. Occaecat officia et eu proident ullamco dolor exercitation non laborum ea aliquip duis laborum. Exercitation voluptate ex aute nisi magna non laboris ea consequat. Est enim do tempor enim aute esse duis voluptate dolor. Aute enim minim cillum id.\r\nMollit eiusmod excepteur nisi est enim labore amet. Enim proident labore mollit dolor do incididunt deserunt irure exercitation irure magna. Incididunt irure officia consectetur magna fugiat quis fugiat voluptate nulla voluptate eu velit. Cupidatat qui proident deserunt reprehenderit veniam sunt non magna velit. Laboris labore consectetur ea et et. Non ex commodo amet enim.\r\nVeniam ex consequat minim ea adipisicing aute elit ea in in pariatur. Consequat nostrud sit non eiusmod voluptate consectetur velit cupidatat qui consectetur esse. Eu laboris cillum quis mollit minim id commodo quis laboris esse sint est irure.\r\nDolore pariatur officia sint qui consequat sunt minim culpa cillum amet qui. Anim adipisicing enim voluptate non nulla anim cupidatat ullamco consectetur elit qui culpa excepteur. Ad enim labore aliqua nulla sint consectetur ipsum occaecat occaecat ut cupidatat ad id ex. Mollit magna qui reprehenderit officia irure nisi ullamco excepteur consequat esse. Dolore commodo laboris ad culpa cillum eu laborum consectetur non occaecat. Sunt magna voluptate occaecat sunt occaecat exercitation magna sint sunt ullamco Lorem labore aliquip. Excepteur pariatur mollit ex incididunt.\r\n", + "address": "2 Dwight Street", + "city": "Newkirk", + "state": "New Mexico", + "zip": 24042, + "country": "Burkina Faso", + "email": "lambpierce@scentric.com", + "phone": "(996) 559-3096", + "color": "rgb(154,210,165)" + }, + { + "index": 484, + "name": "Holder Barker", + "first": "Patrick", + "last": "Best", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/briandiazme/73.jpg", + "boolean": true, + "guid": "c45e5d59-d200-42b3-9f8f-4ecba7a5c540", + "integer": 99, + "date": "Fri Nov 12 1971 21:30:45 GMT-0800 (PST)", + "shortText": "ea", + "mediumText": "Velit in qui nisi cupidatat qui deserunt. Quis pariatur nulla non cupidatat ad magna. Eu anim velit eu qui Lorem officia esse irure magna nulla eiusmod. Do adipisicing minim ad nulla.", + "longText": "Amet id duis eu tempor. Proident nisi pariatur id sit non adipisicing ex nostrud commodo consectetur sint sunt sunt exercitation. Eiusmod sunt est in eiusmod. Enim ut consectetur anim ea qui enim id irure deserunt eu. Tempor aute id nulla velit nostrud dolor veniam esse sint laborum ea. Non aliquip sunt nulla cupidatat amet aliqua non non.\r\nNisi ex ad ad enim eu sit proident aliquip ut incididunt reprehenderit nostrud pariatur. Sint dolor in veniam excepteur enim qui sit sunt cupidatat. Sunt velit magna culpa consectetur quis consectetur veniam do quis irure. Cupidatat aute laborum aute adipisicing amet mollit cillum amet ut. Nostrud magna adipisicing culpa sint esse ex pariatur cupidatat reprehenderit reprehenderit anim deserunt elit sunt. Ullamco minim consequat id in tempor.\r\nAmet veniam anim ullamco eu ea eiusmod est nulla velit. Aliqua nostrud laborum esse commodo laborum dolore. Pariatur magna officia eiusmod velit velit anim ad magna ipsum aliquip.\r\n", + "address": "4 Strauss Street", + "city": "Muir", + "state": "Arizona", + "zip": 26765, + "country": "Greenland", + "email": "patrickbest@scentric.com", + "phone": "(824) 579-3730", + "color": "rgb(171,74,141)" + }, + { + "index": 485, + "name": "Pitts Soto", + "first": "Vincent", + "last": "Hughes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/productpeopletv/73.jpg", + "boolean": true, + "guid": "fe55de6c-660f-4642-8677-5fdea19e5504", + "integer": 34, + "date": "Mon Dec 20 1971 02:47:54 GMT-0800 (PST)", + "shortText": "dolore officia", + "mediumText": "Et in laboris tempor laborum eu nisi consequat adipisicing et eu aliqua anim sunt sint. Culpa est esse eu reprehenderit mollit dolore. Tempor esse laboris esse ea duis dolore in nulla excepteur sit veniam enim velit.", + "longText": "Quis nostrud exercitation ullamco eiusmod proident non officia do mollit laborum exercitation. Velit irure incididunt in nisi laboris consequat eu cupidatat velit cillum nisi pariatur nostrud. Laborum ex reprehenderit culpa dolor duis culpa ut amet deserunt tempor amet. Laborum labore officia dolor occaecat elit. Lorem ullamco consectetur commodo elit et commodo deserunt enim. Sunt consequat cillum proident irure. Pariatur adipisicing ad proident culpa pariatur in tempor irure id ex sint adipisicing nulla tempor.\r\nEu cupidatat culpa non Lorem minim aliqua qui. Non ex aliquip ut reprehenderit anim aute nulla duis sit sunt ut. Nulla cupidatat non commodo adipisicing. Nisi exercitation quis veniam velit cillum incididunt. Do exercitation ut nulla Lorem culpa qui minim laboris quis ipsum elit sunt irure nulla.\r\nEt aute aliquip adipisicing labore ad irure quis consequat occaecat sunt. Reprehenderit fugiat ea eiusmod pariatur Lorem laboris anim non quis labore nisi. Mollit exercitation pariatur incididunt consequat reprehenderit officia nostrud labore duis aute quis sint. Exercitation ipsum esse sit in nulla anim.\r\nIpsum minim tempor et culpa adipisicing nisi tempor nisi laborum anim. Labore enim in sint minim duis Lorem fugiat nisi adipisicing do est elit excepteur. Velit dolore ea aliqua quis qui sit aliquip anim quis velit occaecat. Officia adipisicing ipsum ullamco cillum pariatur ad officia consectetur voluptate aliquip. Est adipisicing incididunt exercitation sunt aliqua irure consectetur excepteur adipisicing sint. Aute non ut ea ea enim. Aliqua Lorem excepteur voluptate nostrud ad proident reprehenderit ad dolore labore sit excepteur excepteur.\r\nAd tempor et veniam consequat. Duis commodo labore eiusmod reprehenderit consectetur adipisicing sint cillum laboris aliquip laboris occaecat sit. Sunt officia mollit labore culpa ea ut. Sunt commodo ea non Lorem culpa incididunt incididunt esse labore et irure tempor ex. Dolor culpa ea amet laboris ad ad mollit qui.\r\n", + "address": "2 Battery Avenue", + "city": "Westphalia", + "state": "Texas", + "zip": 12235, + "country": "Fiji", + "email": "vincenthughes@scentric.com", + "phone": "(947) 521-2627", + "color": "rgb(241,60,119)" + }, + { + "index": 486, + "name": "Morrison Frye", + "first": "Mae", + "last": "Ramirez", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/darioalbini/73.jpg", + "boolean": true, + "guid": "03d96011-46bd-43a9-8186-6b5a9c45ef96", + "integer": 94, + "date": "Sat Dec 29 2012 13:16:12 GMT-0800 (PST)", + "shortText": "duis reprehenderit", + "mediumText": "Sit fugiat exercitation ut laborum.", + "longText": "Ea proident aliqua aute quis Lorem sunt ad. Qui irure fugiat aute dolore sint non sit magna. Nostrud tempor nulla eiusmod fugiat nostrud ad pariatur elit ea laboris.\r\nElit eiusmod mollit anim pariatur ea duis commodo sit eu consectetur non. Officia nisi sunt eu voluptate eu dolor laborum et irure aliquip aliquip consequat sint exercitation. Aliqua anim eiusmod laboris pariatur sit proident irure excepteur amet sint culpa dolor commodo nisi. Quis laborum est occaecat aute quis aliqua proident minim. Cillum tempor occaecat dolore irure labore nisi labore ut mollit proident eu. Eu adipisicing labore elit esse proident proident.\r\nDolore velit do ullamco ad occaecat veniam fugiat. Nulla excepteur aliqua sit magna ipsum pariatur. Anim magna esse laboris eiusmod Lorem ex. Quis mollit nostrud voluptate aliqua ea aliqua sunt non. Quis sint dolor do eu voluptate ad laborum. Eiusmod occaecat elit est labore qui ad ullamco. Esse sit nisi occaecat esse ullamco aliquip cupidatat mollit occaecat esse anim aliqua ea id.\r\nLaborum nostrud anim non excepteur aliqua ullamco minim sunt esse. Consequat ipsum aute id culpa quis minim incididunt. Dolor duis cupidatat ea cupidatat sunt magna consequat in ullamco aliqua eu voluptate. Pariatur proident esse consectetur Lorem id aliquip dolor quis occaecat eiusmod. Ad laboris reprehenderit fugiat amet excepteur. Sunt sit eu qui ad tempor cillum.\r\n", + "address": "4 Willow Place", + "city": "Biehle", + "state": "District Of Columbia", + "zip": 30874, + "country": "Viet Nam", + "email": "maeramirez@scentric.com", + "phone": "(866) 481-3384", + "color": "rgb(104,176,225)" + }, + { + "index": 487, + "name": "Diane Patrick", + "first": "Esperanza", + "last": "Rivera", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_pandajs/73.jpg", + "boolean": false, + "guid": "7f120012-357d-44c7-8dbe-9cfee5ca1f70", + "integer": 30, + "date": "Fri Jun 30 2000 14:03:45 GMT-0700 (PDT)", + "shortText": "tempor elit cupidatat labore", + "mediumText": "Exercitation reprehenderit tempor tempor esse magna in voluptate ea. Incididunt quis voluptate pariatur irure. Aliquip duis duis velit ullamco consequat ullamco ut proident Lorem dolore proident. Est qui amet ut ad exercitation aute cillum. Pariatur sit ea in consectetur qui amet minim nisi eu.", + "longText": "Adipisicing sit ut duis est tempor incididunt fugiat deserunt ad do voluptate amet eu. Excepteur eiusmod in id amet minim. Anim non velit velit id. Consequat proident irure aliquip est mollit proident cillum commodo veniam exercitation irure nostrud non. Tempor aliquip id fugiat duis elit sint. Enim ea pariatur ex ipsum cupidatat. Nulla proident labore in irure qui.\r\n", + "address": "2 Monument Walk", + "city": "Newry", + "state": "Virgin Islands", + "zip": 40958, + "country": "France, Metropolitan", + "email": "esperanzarivera@scentric.com", + "phone": "(909) 486-2560", + "color": "rgb(164,161,80)" + }, + { + "index": 488, + "name": "Ellen Rich", + "first": "Chandra", + "last": "Cote", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wellnext/73.jpg", + "boolean": true, + "guid": "02e9640e-9e9f-4b08-85b4-cb797b3b3a9b", + "integer": 71, + "date": "Sat May 01 2004 01:19:45 GMT-0700 (PDT)", + "shortText": "veniam", + "mediumText": "Irure labore ea ex culpa reprehenderit. Et ad irure aute ut quis elit. Proident magna qui sint fugiat culpa commodo aute duis proident. Officia do enim id proident occaecat fugiat eiusmod sint sint laborum ea.", + "longText": "Sunt duis est et magna excepteur laboris culpa anim pariatur officia veniam proident et. Quis tempor excepteur labore eiusmod enim. Ipsum fugiat nisi nulla minim consequat anim aliqua aliqua laboris est labore. Occaecat est qui labore ut fugiat est magna quis esse magna ex irure proident non. In dolore voluptate minim veniam anim qui reprehenderit sit irure sint duis veniam nulla qui. Sunt minim ex consequat incididunt sit ipsum cupidatat esse fugiat.\r\nExercitation magna anim adipisicing minim qui esse eiusmod. Excepteur minim Lorem pariatur in incididunt pariatur sit ipsum deserunt irure laborum. Cillum irure elit nisi dolor cupidatat eiusmod officia eu incididunt aliqua sint excepteur deserunt laboris. Non sint et velit et in aute do cupidatat nostrud sunt excepteur. Aliqua aute voluptate et exercitation exercitation tempor quis aute.\r\nLaboris ut voluptate nisi dolore fugiat. Nulla deserunt cupidatat do quis excepteur reprehenderit nostrud aute laboris Lorem eiusmod sunt. Aliquip voluptate voluptate Lorem non qui adipisicing magna occaecat ad duis.\r\nSit magna amet laboris qui deserunt eu aliquip. Eu ad nulla adipisicing occaecat eu Lorem officia magna nulla amet labore proident minim voluptate. Laboris consequat sint amet cupidatat aute aute sit aliquip excepteur minim ad reprehenderit. Et et sit amet laboris reprehenderit incididunt esse. Non ipsum sit qui anim eiusmod.\r\n", + "address": "4 Ashford Street", + "city": "Dunnavant", + "state": "Puerto Rico", + "zip": 54991, + "country": "Uganda", + "email": "chandracote@scentric.com", + "phone": "(964) 526-3818", + "color": "rgb(172,172,60)" + }, + { + "index": 489, + "name": "Adele Stanton", + "first": "Allison", + "last": "Maxwell", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/skylark64/73.jpg", + "boolean": false, + "guid": "94d8f372-ebe3-4cd7-8456-4b12af0dbc7f", + "integer": 45, + "date": "Sun Oct 28 1990 07:28:14 GMT-0800 (PST)", + "shortText": "reprehenderit", + "mediumText": "Exercitation excepteur nisi duis est laboris ipsum sint est laboris enim ex officia nostrud. Nisi pariatur dolor elit irure aliqua.", + "longText": "Lorem ea id veniam proident exercitation culpa dolor deserunt do cillum dolor ullamco cillum id. Esse sit tempor consectetur elit consequat laborum. Enim ea fugiat ad Lorem aliqua pariatur exercitation ipsum incididunt elit Lorem ipsum amet. Est nisi id adipisicing deserunt dolore aliquip proident commodo. Dolor qui quis excepteur eu proident.\r\nNostrud dolor fugiat nisi dolore qui sunt. Velit ullamco anim do eu. Culpa Lorem id excepteur nostrud culpa Lorem cupidatat culpa ea eiusmod laborum ex. Excepteur veniam voluptate tempor eu ex amet incididunt aute veniam magna.\r\nLabore velit dolor est consectetur ad non officia. Tempor pariatur dolor amet tempor amet eu non anim. Voluptate in fugiat est duis ad est. Id id sit fugiat sunt. Tempor ipsum nisi ea non proident id duis non exercitation ipsum minim proident. Do deserunt sit aute deserunt. Enim quis pariatur ad velit culpa dolor.\r\n", + "address": "2 Bedford Avenue", + "city": "Woodlake", + "state": "Maryland", + "zip": 25064, + "country": "Antarctica", + "email": "allisonmaxwell@scentric.com", + "phone": "(899) 448-3606", + "color": "rgb(240,230,119)" + }, + { + "index": 490, + "name": "Ilene Alston", + "first": "Cecile", + "last": "Woods", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lisekyle/73.jpg", + "boolean": false, + "guid": "1580bd0d-10e4-45df-8d7a-a7d5028512d8", + "integer": 95, + "date": "Sun Mar 29 2009 19:07:07 GMT-0700 (PDT)", + "shortText": "ullamco incididunt", + "mediumText": "Occaecat elit cillum laboris nulla culpa veniam sit non aliquip occaecat. Proident do aliquip exercitation quis proident culpa. Veniam et est incididunt reprehenderit reprehenderit sit elit eiusmod velit qui nulla tempor non. Eiusmod reprehenderit mollit non veniam nisi eiusmod mollit ullamco culpa.", + "longText": "Ea irure est pariatur est qui fugiat ut sit non enim mollit tempor. Aliquip sunt nulla pariatur dolore eu fugiat enim sunt est laboris. Aliquip reprehenderit exercitation id occaecat. Incididunt amet ex dolor sunt.\r\nDuis culpa occaecat deserunt dolore laborum. Sit non officia nisi exercitation do id minim. Voluptate esse velit do officia consectetur duis Lorem proident consequat duis laborum eiusmod officia amet.\r\nCupidatat adipisicing esse laborum sit nisi occaecat reprehenderit officia aute. Sit elit in nisi nulla ipsum mollit. Voluptate fugiat proident incididunt pariatur. Dolor consectetur occaecat est laborum id nisi minim consectetur occaecat. Minim duis occaecat commodo nulla pariatur ex.\r\n", + "address": "3 Gunnison Court", + "city": "Clara", + "state": "Massachusetts", + "zip": 31477, + "country": "Kiribati", + "email": "cecilewoods@scentric.com", + "phone": "(937) 412-3586", + "color": "rgb(218,151,77)" + }, + { + "index": 491, + "name": "Page Marsh", + "first": "Medina", + "last": "Wilson", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/zumwalt/73.jpg", + "boolean": false, + "guid": "4dfb0026-3202-4699-aba7-d815792762f2", + "integer": 42, + "date": "Mon Nov 03 1975 16:09:28 GMT-0800 (PST)", + "shortText": "commodo ex", + "mediumText": "Do ex ullamco eu id consectetur est.", + "longText": "Non consectetur est amet dolore pariatur adipisicing et exercitation pariatur. Duis cillum reprehenderit magna ex esse. Ex incididunt aute in dolore duis. Nisi deserunt quis ex ipsum officia. Esse ea consectetur amet aliquip sunt incididunt.\r\nConsectetur enim aute ad commodo do. Veniam fugiat culpa voluptate minim exercitation eiusmod dolore qui excepteur in laboris incididunt. Ad tempor dolore consectetur ullamco. Ad officia enim laborum minim voluptate fugiat. Laboris eu deserunt ex est. Incididunt est nulla excepteur do ipsum occaecat deserunt esse et. Officia fugiat eiusmod ut sint enim laborum pariatur dolor labore.\r\n", + "address": "4 Lewis Avenue", + "city": "Venice", + "state": "Oklahoma", + "zip": 93431, + "country": "Ecuador", + "email": "medinawilson@scentric.com", + "phone": "(915) 547-2479", + "color": "rgb(97,200,182)" + }, + { + "index": 492, + "name": "Raquel Torres", + "first": "Winters", + "last": "Moon", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_winslet/73.jpg", + "boolean": true, + "guid": "2b4cd0b5-6c14-4253-afd2-667d28e069e5", + "integer": 6, + "date": "Sat May 22 1993 08:02:57 GMT-0700 (PDT)", + "shortText": "commodo consectetur culpa aliquip", + "mediumText": "Anim voluptate Lorem laborum consequat ex cillum ipsum exercitation consectetur elit. Pariatur ex qui nostrud enim consectetur eu mollit qui esse irure magna. Reprehenderit aliquip magna sunt labore. Aliqua nisi Lorem ad cupidatat laborum commodo irure non. Ut cupidatat ipsum do adipisicing incididunt.", + "longText": "Magna dolor ut incididunt pariatur cupidatat ullamco. Nisi veniam nulla est est. Nulla ex minim non excepteur quis laborum excepteur ut deserunt eiusmod consequat adipisicing mollit excepteur. Duis id tempor et aliqua laborum.\r\nVoluptate aliquip commodo sit laboris ea nisi id minim consectetur qui. Magna culpa ullamco ea enim excepteur nisi. Anim cillum nostrud ex consectetur. Sint duis voluptate est voluptate eu eu.\r\nConsectetur eiusmod officia qui exercitation ad magna. Ipsum voluptate ex culpa qui fugiat irure magna mollit nisi duis. Non laboris sit adipisicing ipsum dolor eiusmod Lorem aliqua velit ea sit reprehenderit minim aliquip. Reprehenderit non esse voluptate non aute non. Exercitation ex cillum ex sunt incididunt reprehenderit ipsum deserunt ex aliquip. Consectetur esse ut minim duis tempor ex reprehenderit veniam in proident.\r\nLaboris magna labore sint irure. Sit amet cupidatat adipisicing exercitation deserunt sint ad incididunt. Fugiat culpa adipisicing magna est voluptate. Consequat consequat velit reprehenderit aliqua anim commodo fugiat adipisicing qui occaecat dolore sint proident. Ex et officia ullamco labore ipsum consequat magna labore laboris. Adipisicing laboris non non dolore magna tempor do dolore qui nostrud sint. Incididunt enim excepteur aliqua adipisicing culpa irure eiusmod ex ullamco aliquip id cillum commodo ex.\r\n", + "address": "2 Amber Street", + "city": "Masthope", + "state": "Ohio", + "zip": 34479, + "country": "Bulgaria", + "email": "wintersmoon@scentric.com", + "phone": "(812) 514-3427", + "color": "rgb(129,103,138)" + }, + { + "index": 493, + "name": "Sasha Kinney", + "first": "Nielsen", + "last": "Callahan", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kikillo/73.jpg", + "boolean": false, + "guid": "8d605d34-eb11-4110-9917-e890666b46c9", + "integer": 25, + "date": "Sun Feb 25 1996 00:22:49 GMT-0800 (PST)", + "shortText": "dolor velit", + "mediumText": "Proident occaecat voluptate eiusmod nisi ea non duis. Nostrud fugiat aliquip est exercitation laboris ipsum in dolor nisi duis magna minim. Pariatur pariatur ipsum incididunt excepteur.", + "longText": "Ex duis tempor fugiat mollit sunt enim elit commodo. Laboris in velit magna dolor. Labore labore incididunt veniam eiusmod mollit irure proident voluptate incididunt quis deserunt ad. Eiusmod eiusmod non reprehenderit aute amet eiusmod consectetur magna ea.\r\nTempor ad in cupidatat sunt dolore consectetur sunt. Anim nostrud nulla nostrud consequat. Consequat ullamco enim reprehenderit eu eu ea do duis reprehenderit quis cillum laborum pariatur. Est laborum reprehenderit in commodo enim ullamco mollit. Aute laboris incididunt elit laborum incididunt id tempor.\r\nEt do nulla voluptate magna labore ea commodo ex deserunt. Nostrud pariatur ipsum voluptate do esse non aliqua sint elit laboris ad adipisicing Lorem. Ut fugiat officia nostrud reprehenderit nisi aliqua.\r\n", + "address": "3 Lorraine Street", + "city": "Kidder", + "state": "Nevada", + "zip": 69726, + "country": "American Samoa", + "email": "nielsencallahan@scentric.com", + "phone": "(897) 548-2921", + "color": "rgb(58,212,98)" + }, + { + "index": 494, + "name": "Justice Johnston", + "first": "Francis", + "last": "Walsh", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hndragnwn/73.jpg", + "boolean": false, + "guid": "93cc4a8b-fe24-4849-a976-a91a2adabb91", + "integer": 60, + "date": "Fri Feb 24 2006 00:14:57 GMT-0800 (PST)", + "shortText": "mollit magna anim exercitation amet", + "mediumText": "Consectetur proident id adipisicing incididunt commodo fugiat tempor amet cupidatat enim nostrud laboris. Non do adipisicing proident id et voluptate enim magna exercitation ut est aliqua pariatur. Enim aute voluptate non elit id commodo commodo aliqua nisi.", + "longText": "Qui aute sunt sint mollit ullamco nisi sunt elit ut cupidatat quis reprehenderit. Amet ullamco sit esse fugiat aliqua proident ut. Nisi ea magna occaecat labore amet fugiat eiusmod cupidatat nulla nostrud mollit et laborum commodo. Lorem commodo anim magna anim in sunt cillum elit deserunt do exercitation labore nisi. Nostrud dolore consequat amet esse deserunt in fugiat non dolore magna laborum.\r\n", + "address": "3 Bethel Loop", + "city": "Williams", + "state": "Montana", + "zip": 30034, + "country": "Angola", + "email": "franciswalsh@scentric.com", + "phone": "(922) 539-3195", + "color": "rgb(80,154,75)" + }, + { + "index": 495, + "name": "Leonard Hess", + "first": "Kate", + "last": "Mccoy", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fc987/73.jpg", + "boolean": true, + "guid": "0ef972c8-2eaa-4e56-baca-ec8204dee737", + "integer": 89, + "date": "Thu May 26 1988 06:59:06 GMT-0700 (PDT)", + "shortText": "tempor", + "mediumText": "Sunt quis minim magna consectetur ullamco.", + "longText": "Cupidatat incididunt minim laboris eiusmod et ex ad laboris ut commodo ex aliqua. Ea fugiat consectetur sit ut occaecat non est nostrud id in pariatur. Est amet Lorem reprehenderit adipisicing consectetur culpa sit sunt nisi.\r\n", + "address": "4 Caton Avenue", + "city": "Biddle", + "state": "California", + "zip": 25530, + "country": "Bhutan", + "email": "katemccoy@scentric.com", + "phone": "(843) 483-2519", + "color": "rgb(132,225,73)" + }, + { + "index": 496, + "name": "Weiss Malone", + "first": "Buchanan", + "last": "Austin", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lettershoppe/73.jpg", + "boolean": false, + "guid": "cfc771a6-aeb0-47ec-a5a2-c5240c1b6768", + "integer": 6, + "date": "Fri Feb 14 2014 14:08:10 GMT-0800 (PST)", + "shortText": "id ipsum culpa occaecat reprehenderit", + "mediumText": "Fugiat pariatur in Lorem ipsum ex id. Ex commodo magna enim non ullamco nulla officia velit. Et et ipsum deserunt ex pariatur laboris aliqua in elit sunt excepteur quis exercitation consequat. Fugiat est eiusmod esse amet anim ex aliquip ipsum id aliquip dolor. Qui proident veniam enim enim exercitation deserunt ex voluptate consequat.", + "longText": "Fugiat consequat incididunt aute Lorem aliquip labore tempor consequat quis cillum. Incididunt sunt ullamco proident pariatur ad incididunt. Labore pariatur reprehenderit mollit duis proident incididunt do. Excepteur ullamco cupidatat nisi culpa Lorem sit ea ea sint et sint eu. Aliqua dolore amet nulla sit amet irure nostrud nulla non ex. Lorem deserunt sint commodo amet amet incididunt irure aliqua reprehenderit ea minim adipisicing proident. Irure duis enim non commodo ut adipisicing anim ad fugiat amet qui voluptate fugiat.\r\nEiusmod voluptate nulla anim tempor nulla est excepteur ut. Tempor sunt cillum et mollit mollit anim dolore laboris aute et duis consectetur. Proident quis aliqua nisi incididunt minim voluptate eiusmod id ea. Est labore pariatur nulla incididunt anim. Anim eu mollit voluptate pariatur cillum officia exercitation. Dolor amet mollit officia exercitation minim tempor do eu.\r\nProident est do aliqua eiusmod aliquip ex veniam culpa et occaecat. Et reprehenderit ad et nulla ullamco duis pariatur labore duis ex ea minim laboris nulla. Ex cillum nostrud consectetur dolor et esse.\r\n", + "address": "2 Stockholm Street", + "city": "Darrtown", + "state": "Marshall Islands", + "zip": 54123, + "country": "Dominica", + "email": "buchananaustin@scentric.com", + "phone": "(875) 459-2571", + "color": "rgb(115,116,180)" + }, + { + "index": 497, + "name": "Hawkins Parrish", + "first": "Sandy", + "last": "Poole", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akashsharma39/73.jpg", + "boolean": true, + "guid": "00fdef08-9189-40f0-9960-6a59ab906f66", + "integer": 70, + "date": "Sun Apr 24 1994 02:10:50 GMT-0700 (PDT)", + "shortText": "deserunt non ex", + "mediumText": "Do eiusmod nostrud sint consectetur nulla elit est amet et qui voluptate consectetur ullamco elit. Voluptate enim nostrud consequat elit laboris non consequat. Consequat nulla veniam ea eiusmod nulla sunt consequat mollit.", + "longText": "Irure quis duis sint fugiat ut sunt proident esse ut. Aliquip aliqua ea ex magna mollit duis elit non elit labore veniam laborum. Deserunt ex cillum culpa qui non elit culpa ad laboris est.\r\nCillum exercitation ullamco adipisicing cillum irure ipsum sunt dolor irure ullamco. Lorem cupidatat cupidatat occaecat proident dolor sit irure quis do est non reprehenderit. Lorem elit dolore ea fugiat elit dolor. Excepteur est anim velit qui in. Minim sint adipisicing quis ullamco ipsum excepteur. Ullamco Lorem exercitation aute laboris fugiat incididunt.\r\nTempor aliqua cupidatat mollit anim Lorem irure exercitation magna non ullamco eu labore dolore velit. Aliqua enim reprehenderit consectetur est sunt labore aliqua consequat deserunt proident proident tempor mollit ad. Cupidatat velit culpa consequat ea incididunt. Pariatur irure dolore cillum voluptate ut amet sunt labore cillum laboris. Esse id aliquip labore consequat adipisicing culpa amet proident. Laborum voluptate nisi velit qui consectetur. Minim cillum duis pariatur est.\r\nCupidatat sunt consectetur laborum ex cupidatat quis ea ad sint aliqua non. Adipisicing ullamco voluptate mollit ullamco id irure proident ex culpa qui incididunt sint nostrud. Amet mollit occaecat non adipisicing tempor aliqua irure ex id. Velit dolore ea mollit fugiat velit elit eiusmod do exercitation.\r\n", + "address": "3 Manor Court", + "city": "Naomi", + "state": "Indiana", + "zip": 12933, + "country": "Egypt", + "email": "sandypoole@scentric.com", + "phone": "(945) 488-2696", + "color": "rgb(79,165,87)" + }, + { + "index": 498, + "name": "Dena Sweeney", + "first": "Kaitlin", + "last": "Brooks", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fgin69/73.jpg", + "boolean": true, + "guid": "805425f6-7a36-4326-a622-fbd1a52bccca", + "integer": 37, + "date": "Thu Aug 03 1989 21:21:57 GMT-0700 (PDT)", + "shortText": "non in", + "mediumText": "Irure ullamco excepteur commodo aute magna dolore in reprehenderit commodo deserunt quis officia. Anim incididunt velit anim adipisicing dolore reprehenderit voluptate est nisi in amet.", + "longText": "Ea exercitation ipsum aliquip excepteur cillum ipsum cupidatat fugiat in do nostrud. Non culpa irure officia qui dolor esse velit. Sint officia proident occaecat laborum quis non ullamco dolor consectetur ipsum do nisi. Commodo adipisicing quis proident culpa.\r\nCupidatat adipisicing ipsum incididunt sunt consequat Lorem dolore. Aliquip adipisicing reprehenderit pariatur occaecat anim incididunt ad cillum. Voluptate cupidatat nostrud aliquip laborum esse irure duis ex culpa laborum laboris incididunt magna duis. Velit do commodo aute pariatur sunt ut voluptate quis minim. Eu mollit tempor excepteur nulla anim officia est dolor deserunt minim duis nostrud.\r\n", + "address": "4 Harrison Avenue", + "city": "Fairacres", + "state": "Tennessee", + "zip": 70961, + "country": "Chile", + "email": "kaitlinbrooks@scentric.com", + "phone": "(894) 591-3716", + "color": "rgb(131,63,152)" + }, + { + "index": 499, + "name": "Saundra Mcbride", + "first": "Rosemary", + "last": "Grimes", + "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pdugan19/73.jpg", + "boolean": true, + "guid": "824a5e8d-254c-4041-8370-00c4d28ce820", + "integer": 65, + "date": "Mon Aug 28 2006 02:30:47 GMT-0700 (PDT)", + "shortText": "laborum", + "mediumText": "Aliqua magna proident exercitation elit occaecat ut duis. Ad ipsum duis aliqua qui pariatur cupidatat sint pariatur eiusmod do.", + "longText": "Amet sint officia anim officia nisi reprehenderit. Incididunt magna esse nisi nostrud ipsum. Dolor qui eu enim ipsum commodo deserunt ex ad reprehenderit. Commodo commodo amet ullamco aliquip deserunt excepteur aliqua minim ipsum eu. Culpa minim sunt do dolor excepteur dolore id et culpa id aliquip.\r\nNon excepteur culpa nulla consequat velit amet id. Cupidatat qui id aute reprehenderit adipisicing. Duis consectetur nostrud voluptate laboris culpa ipsum labore irure magna.\r\nLorem mollit cillum velit non proident ex ea esse anim nulla sunt ad laboris. Officia nisi culpa exercitation qui pariatur adipisicing ea incididunt consectetur Lorem. Amet minim labore aliqua nostrud. Eu cillum nulla qui enim non occaecat. Laboris exercitation ea sint cillum velit officia velit officia adipisicing do esse dolore aliqua mollit.\r\nCommodo minim sint excepteur aliquip ex consequat veniam ea culpa reprehenderit consequat est amet dolore. Eu ex amet minim quis dolore voluptate deserunt aliquip consectetur consectetur aliqua officia consequat sunt. Duis ut ex consectetur fugiat laborum duis Lorem cupidatat cupidatat excepteur amet. Id consequat dolor mollit elit pariatur dolor occaecat. Consequat ullamco excepteur cillum eu veniam aliqua ex cupidatat labore ex veniam. Dolore ad et veniam sint eiusmod anim minim.\r\nSint pariatur est enim veniam laboris eu occaecat duis. Ad veniam voluptate occaecat aliquip nostrud culpa aliquip duis proident dolor. Consectetur esse ut laborum elit sunt irure ex duis. Ex laborum eu esse incididunt laborum dolore non aute anim elit deserunt. Non Lorem deserunt culpa do ea exercitation fugiat.\r\n", + "address": "4 Chestnut Street", + "city": "Joes", + "state": "Palau", + "zip": 62428, + "country": "Norfolk Island", + "email": "rosemarygrimes@scentric.com", + "phone": "(923) 453-2279", + "color": "rgb(171,145,136)" + } +] \ No newline at end of file diff --git a/bower_components/app-layout/demo/demo1.html b/bower_components/app-layout/demo/demo1.html new file mode 100644 index 00000000..8827a7bf --- /dev/null +++ b/bower_components/app-layout/demo/demo1.html @@ -0,0 +1,93 @@ + + + + + + + + + demo1 + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
My App
+
+
+ + + + + + + + + diff --git a/bower_components/app-layout/demo/demo2.html b/bower_components/app-layout/demo/demo2.html new file mode 100644 index 00000000..8c2e79fc --- /dev/null +++ b/bower_components/app-layout/demo/demo2.html @@ -0,0 +1,82 @@ + + + + + + + + + demo2 + + + + + + + + + + + + + + + + + + + + + + + + + App name + + + + + + + +
My Drive
+
+
+ + + +
+ +
+ + + diff --git a/bower_components/app-layout/demo/demo3.html b/bower_components/app-layout/demo/demo3.html new file mode 100644 index 00000000..5337ab0c --- /dev/null +++ b/bower_components/app-layout/demo/demo3.html @@ -0,0 +1,85 @@ + + + + + + + + + demo3 + + + + + + + + + + + + + + + + + + + + + + + + + App name + + + + + + + + + + +
My Drive
+
+
+ + + +
+ +
+ + + diff --git a/bower_components/app-layout/demo/demo4.html b/bower_components/app-layout/demo/demo4.html new file mode 100644 index 00000000..d74b6e2b --- /dev/null +++ b/bower_components/app-layout/demo/demo4.html @@ -0,0 +1,192 @@ + + + + + + + + + demo4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/demo/demo5.html b/bower_components/app-layout/demo/demo5.html new file mode 100644 index 00000000..9c951258 --- /dev/null +++ b/bower_components/app-layout/demo/demo5.html @@ -0,0 +1,139 @@ + + + + + + + + + demo5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Inbox
+
+
+ + + + Option Name + + + + Option Name + + + + Option Name + + + + Option Name + + + + Option Name + + + + Option Name + + + + Option Name + + + + Option Name + + +
+
+ + + + + + +
+ + +
+ + +
My Drive
+
+
+ + + +
+ +
+ + + diff --git a/bower_components/app-layout/demo/demo6.html b/bower_components/app-layout/demo/demo6.html new file mode 100644 index 00000000..b6d98629 --- /dev/null +++ b/bower_components/app-layout/demo/demo6.html @@ -0,0 +1,128 @@ + + + + + + + + + demo6 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Inbox
+
+
+ + + + +
+ + Inbox + + + Snoozed + + + Done + + + Drafts + + + Sent + + + Trash + + + Spam + +
+
+ + + +
+ +
+ + + + + diff --git a/bower_components/app-layout/demo/demo7.html b/bower_components/app-layout/demo/demo7.html new file mode 100644 index 00000000..b05cf15a --- /dev/null +++ b/bower_components/app-layout/demo/demo7.html @@ -0,0 +1,82 @@ + + + + + + + + + demo7 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
My Drive
+ +
+
+ + + +
+ + + App name + + +
+ + + diff --git a/bower_components/app-layout/demo/index.html b/bower_components/app-layout/demo/index.html new file mode 100644 index 00000000..444f9f00 --- /dev/null +++ b/bower_components/app-layout/demo/index.html @@ -0,0 +1,48 @@ + + + + + + app-layout demos + + + + + + + + + + + + diff --git a/bower_components/app-layout/demo/sample-content.html b/bower_components/app-layout/demo/sample-content.html new file mode 100644 index 00000000..308cc34e --- /dev/null +++ b/bower_components/app-layout/demo/sample-content.html @@ -0,0 +1,93 @@ + + + + + + + + + diff --git a/bower_components/app-layout/docs.d.ts b/bower_components/app-layout/docs.d.ts new file mode 100644 index 00000000..a32a6265 --- /dev/null +++ b/bower_components/app-layout/docs.d.ts @@ -0,0 +1,14 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * docs.html + */ + +/// +/// +/// + diff --git a/bower_components/app-layout/docs.html b/bower_components/app-layout/docs.html new file mode 100644 index 00000000..4296757e --- /dev/null +++ b/bower_components/app-layout/docs.html @@ -0,0 +1,30 @@ + + + + + + + + + app-layout + + + + + + + + + + + + + diff --git a/bower_components/app-layout/gen-tsd.json b/bower_components/app-layout/gen-tsd.json new file mode 100644 index 00000000..e9c91a33 --- /dev/null +++ b/bower_components/app-layout/gen-tsd.json @@ -0,0 +1,8 @@ +{ + "excludeFiles": [ + "index.html", + "**/test/**", + "**/demo/**", + "templates/**" + ] +} diff --git a/bower_components/app-layout/helpers/helpers.d.ts b/bower_components/app-layout/helpers/helpers.d.ts new file mode 100644 index 00000000..2d0366bc --- /dev/null +++ b/bower_components/app-layout/helpers/helpers.d.ts @@ -0,0 +1,17 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * helpers/helpers.html + */ + +/// + +declare namespace Polymer { + + namespace AppLayout { + } +} diff --git a/bower_components/app-layout/helpers/helpers.html b/bower_components/app-layout/helpers/helpers.html new file mode 100644 index 00000000..be14caf2 --- /dev/null +++ b/bower_components/app-layout/helpers/helpers.html @@ -0,0 +1,164 @@ + + + + + diff --git a/bower_components/app-layout/helpers/test/index.html b/bower_components/app-layout/helpers/test/index.html new file mode 100644 index 00000000..6a7ad3ee --- /dev/null +++ b/bower_components/app-layout/helpers/test/index.html @@ -0,0 +1,27 @@ + + + + + + helpers tests + + + + + + diff --git a/bower_components/app-layout/helpers/test/register-effect.html b/bower_components/app-layout/helpers/test/register-effect.html new file mode 100644 index 00000000..f15aa46b --- /dev/null +++ b/bower_components/app-layout/helpers/test/register-effect.html @@ -0,0 +1,40 @@ + + + + + + registerEffect + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/helpers/test/scroll.html b/bower_components/app-layout/helpers/test/scroll.html new file mode 100644 index 00000000..e9b2c635 --- /dev/null +++ b/bower_components/app-layout/helpers/test/scroll.html @@ -0,0 +1,118 @@ + + + + + + scroll + + + + + + + + + + + + + +
+
+ +
+
+
+ + + + + diff --git a/bower_components/app-layout/index.html b/bower_components/app-layout/index.html new file mode 100644 index 00000000..8a5a6b34 --- /dev/null +++ b/bower_components/app-layout/index.html @@ -0,0 +1,30 @@ + + + + + + + + + app-layout + + + + + + + + + + + + + diff --git a/bower_components/app-layout/package-lock.json b/bower_components/app-layout/package-lock.json new file mode 100644 index 00000000..c276eb5f --- /dev/null +++ b/bower_components/app-layout/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/app-layout", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.2" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.2" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.2.tgz", + "integrity": "sha512-UWkRY9X7RQHp5OhhRIIka58/gVVycL1zHZu0OTsT5LI86ABaMOSbUjAl+b0FeDhQcxclrkyft3kW5QWdMRs8wQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.2" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.2" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/app-layout/package.json b/bower_components/app-layout/package.json new file mode 100644 index 00000000..4b37e21a --- /dev/null +++ b/bower_components/app-layout/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/app-layout", + "private": true, + "description": "A set of layout elements for your app", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/app-layout" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.1", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/app-layout/patterns/expand-card/index.d.ts b/bower_components/app-layout/patterns/expand-card/index.d.ts new file mode 100644 index 00000000..5cfbcd7b --- /dev/null +++ b/bower_components/app-layout/patterns/expand-card/index.d.ts @@ -0,0 +1,14 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * patterns/expand-card/index.html + */ + +/// +/// +/// + diff --git a/bower_components/app-layout/patterns/expand-card/index.html b/bower_components/app-layout/patterns/expand-card/index.html new file mode 100644 index 00000000..5b398b8e --- /dev/null +++ b/bower_components/app-layout/patterns/expand-card/index.html @@ -0,0 +1,73 @@ + + + + + + + Expand Card + + + + + + + + + + + + + + + +
+
+
+ + + diff --git a/bower_components/app-layout/patterns/md-responsive-toolbar/index.d.ts b/bower_components/app-layout/patterns/md-responsive-toolbar/index.d.ts new file mode 100644 index 00000000..de4251e0 --- /dev/null +++ b/bower_components/app-layout/patterns/md-responsive-toolbar/index.d.ts @@ -0,0 +1,16 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * patterns/md-responsive-toolbar/index.html + */ + +/// +/// +/// +/// +/// + diff --git a/bower_components/app-layout/patterns/md-responsive-toolbar/index.html b/bower_components/app-layout/patterns/md-responsive-toolbar/index.html new file mode 100644 index 00000000..cf1559ed --- /dev/null +++ b/bower_components/app-layout/patterns/md-responsive-toolbar/index.html @@ -0,0 +1,66 @@ + + + + + + + Material Design Responsive Toolbar + + + + + + + + + + + + + + + + + + + +
Title
+ +
+ + + diff --git a/bower_components/app-layout/patterns/transform-navigation/index.d.ts b/bower_components/app-layout/patterns/transform-navigation/index.d.ts new file mode 100644 index 00000000..58bae880 --- /dev/null +++ b/bower_components/app-layout/patterns/transform-navigation/index.d.ts @@ -0,0 +1,14 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * patterns/transform-navigation/index.html + */ + +/// +/// +/// + diff --git a/bower_components/app-layout/patterns/transform-navigation/index.html b/bower_components/app-layout/patterns/transform-navigation/index.html new file mode 100644 index 00000000..07a694dd --- /dev/null +++ b/bower_components/app-layout/patterns/transform-navigation/index.html @@ -0,0 +1,39 @@ + + + + + + + Navigation transformation + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/app-layout/patterns/transform-navigation/x-app.d.ts b/bower_components/app-layout/patterns/transform-navigation/x-app.d.ts new file mode 100644 index 00000000..c35e5c87 --- /dev/null +++ b/bower_components/app-layout/patterns/transform-navigation/x-app.d.ts @@ -0,0 +1,33 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * patterns/transform-navigation/x-app.html + */ + +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + +interface XAppElement extends Polymer.Element { + selected: string|null|undefined; + wideLayout: boolean|null|undefined; + items: any[]|null|undefined; + onLayoutChange(wide: any): void; +} + +interface HTMLElementTagNameMap { + "x-app": XAppElement; +} diff --git a/bower_components/app-layout/patterns/transform-navigation/x-app.html b/bower_components/app-layout/patterns/transform-navigation/x-app.html new file mode 100644 index 00000000..7506b940 --- /dev/null +++ b/bower_components/app-layout/patterns/transform-navigation/x-app.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/getting-started/bower.json b/bower_components/app-layout/templates/getting-started/bower.json new file mode 100644 index 00000000..5104ad35 --- /dev/null +++ b/bower_components/app-layout/templates/getting-started/bower.json @@ -0,0 +1,24 @@ +{ + "name": "getting-started", + "authors": [ + "The Polymer Authors" + ], + "private": true, + "dependencies": { + "app-layout": "PolymerElements/app-layout#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "polymer/polymer#^1.9" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "polymer": "^1.9" + } + } + } +} diff --git a/bower_components/app-layout/templates/getting-started/index.html b/bower_components/app-layout/templates/getting-started/index.html new file mode 100644 index 00000000..d088f244 --- /dev/null +++ b/bower_components/app-layout/templates/getting-started/index.html @@ -0,0 +1,39 @@ + + + + + + + + + Getting Started + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/getting-started/x-app.html b/bower_components/app-layout/templates/getting-started/x-app.html new file mode 100644 index 00000000..11fa20d3 --- /dev/null +++ b/bower_components/app-layout/templates/getting-started/x-app.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/landing-page/bower.json b/bower_components/app-layout/templates/landing-page/bower.json new file mode 100644 index 00000000..18c209f8 --- /dev/null +++ b/bower_components/app-layout/templates/landing-page/bower.json @@ -0,0 +1,25 @@ +{ + "name": "landing-page", + "authors": [ + "The Polymer Authors" + ], + "private": true, + "dependencies": { + "app-layout": "polymerelements/app-layout#1 - 2", + "iron-flex-layout": "polymerelements/iron-flex-layout#1 - 2", + "iron-icons": "polymerelements/iron-icons#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "polymer/polymer#^1.9" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "polymer": "^1.9" + } + } + } +} diff --git a/bower_components/app-layout/templates/landing-page/index.html b/bower_components/app-layout/templates/landing-page/index.html new file mode 100644 index 00000000..817c1f53 --- /dev/null +++ b/bower_components/app-layout/templates/landing-page/index.html @@ -0,0 +1,39 @@ + + + + + + + + + Landing Page + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/landing-page/x-app.html b/bower_components/app-layout/templates/landing-page/x-app.html new file mode 100644 index 00000000..a8bd94a3 --- /dev/null +++ b/bower_components/app-layout/templates/landing-page/x-app.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/pesto/bower.json b/bower_components/app-layout/templates/pesto/bower.json new file mode 100644 index 00000000..afce7597 --- /dev/null +++ b/bower_components/app-layout/templates/pesto/bower.json @@ -0,0 +1,36 @@ +{ + "name": "pesto", + "authors": [ + "The Polymer Authors" + ], + "private": true, + "dependencies": { + "app-layout": "polymerelements/app-layout#1 - 2", + "app-route": "polymerelements/app-route#1 - 2", + "es6-promise": "stefanpenner/es6-promise#^4.0.0", + "iron-ajax": "polymerelements/iron-ajax#1 - 2", + "iron-flex-layout": "polymerelements/iron-flex-layout#1 - 2", + "iron-pages": "polymerelements/iron-pages#1 - 2", + "iron-selector": "polymerelements/iron-selector#1 - 2", + "iron-icon": "polymerelements/iron-icon#1 - 2", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#1 - 2", + "paper-card": "PolymerElements/paper-card#1 - 2", + "paper-fab": "PolymerElements/paper-fab#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-listbox": "PolymerElements/paper-listbox#1 - 2", + "paper-menu-button": "PolymerElements/paper-menu-button#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "polymer/polymer#^1.9" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "polymer": "^1.9" + } + } + } +} diff --git a/bower_components/app-layout/templates/pesto/data/recipes.json b/bower_components/app-layout/templates/pesto/data/recipes.json new file mode 100644 index 00000000..5d71240f --- /dev/null +++ b/bower_components/app-layout/templates/pesto/data/recipes.json @@ -0,0 +1,402 @@ +[ + { + + "id": "1", + "name": "Pesto Bruchetta", + "author": "Peter Carlsson", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/image2-01.png", + "description": "Bask in greens this season by trying this delightful take on traditional bruschetta. Top with a dollop of homemade pesto, and season with freshly ground sea salt and pepper.", + "ingredients": [{ + "amount": "6 pieces", + "description": "Mozzarella cheese" + }, { + "amount": "6 pieces", + "description": "Toasts" + }, { + "amount": "⅔ cup", + "description": "Homemade pesto" + }, { + "amount": "1tbsp", + "description": "Freshly ground pepper" + }, { + "amount": "1 tsp", + "description": "Salt" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "2", + "name": "Rustic purple mash", + "author": "Trevor Hansen", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/blue-potato.jpg", + "description": "Abundant in color, and healthy, delicious goodness, cooking with these South American purple potatoes is a treat. Boil, mash, bake, or roast them. For taste cook with chicken stock, and a dash of extra virgin olive oil.", + "ingredients": [{ + "amount": "2 lbs", + "description": "Purple potatoes, skin on" + }, { + "amount": "1 tsp", + "description": "Salt" + }, { + "amount": "2 tsp", + "description": "Lemon" + }, { + "amount": "4 cups", + "description": "Chicken stock" + }, { + "amount": "1tbsp", + "description": "Extra virgin olive oil" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "3", + "name": "Bacon Sprouts", + "author": "Ali Connors", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/image1-01.png", + "description": "This beautiful sprouts recipe is the most glorious side dish on a cold winter’s night. Construct it with bacon or fake-on, but always make sure the sprouts are deliciously seasoned and appropriately sautéed.", + "ingredients": [{ + "amount": "2 lbs", + "description": "Brussel sprouts" + }, { + "amount": "3 lbs", + "description": "Bacon" + }, { + "amount": "⅔ cup", + "description": "Shaved parmesan cheese" + }, { + "amount": "1tbsp", + "description": "Extra virgin olive oil" + }, { + "amount": "1 tsp", + "description": "Lemon juice" + }, { + "amount": "1/2 cup", + "description": "Sun dried tomatoes" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "4", + "name": "Oven Sausage", + "author": "Sandra Adams", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/sausage.jpg", + "description": "Robust cuts of portuguese sausage add layers of flavour. Bake or fry until sausages are slightly browned and with a crispy skin. Serve warm and with cuts of pineapple for a delightful mix of sweet and savory flavour. This is the perfect dish after a swim in the sea.", + "ingredients": [{ + "amount": "1 1/2 lbs", + "description": "Linguisa" + }, { + "amount": "1 lbs", + "description": "Pineapple or other fresh citrus fruit" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "5", + "name": "Chicken tostadas", + "author": "Peter Carlsson", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/image5.png", + "description": "Crisp flavours and a bit of spice make this roasted chicken dish an easy go to when cooking for large groups. Top with Baja sauce for an extra kick of spice.", + "ingredients": [{ + "amount": "4-6", + "description": "Small corn tortillas" + }, { + "amount": "½ cup", + "description": "Chopped onion" + }, { + "amount": "⅔", + "description": "Cream" + }, { + "amount": "3-4oz", + "description": "Roasted, shredded chicken breast" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "6", + "name": "Coconut rice", + "author": "Ali Connors", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/white-rice.jpg", + "description": "This dish is a terrific pairing to almost any main. Bonus- it’s quick, easy to make, and turns even the simplest of dishes into a delicacy. Sweet coconut cream will leave your mouth watering, with yummy caramelized flecks of rice adding an extra bit of taste. Fluff with fork before serving for best results.", + "ingredients": [{ + "amount": "2 cups", + "description": "Jasmine rice" + }, { + "amount": "1 1/2 cups", + "description": "Water" + }, { + "amount": "1 cup", + "description": "Coconut milk" + }, { + "amount": "1 1/2 tbsp", + "description": "Sugar" + }, { + "amount": "1tsp", + "description": "Salt" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "7", + "name": "Gin basil cocktail", + "author": "Trevor Hansen", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_5447.jpg", + "description": "This mellow and herb filled blending of simple ingredients is easy enough to mix that a novice host will feel like a seasoned bartender. Top with crushed basil, shake or stir.", + "ingredients": [{ + "amount": "3 parts", + "description": "Gin" + }, { + "amount": "1 part", + "description": "Fresh lemon juice" + }, { + "amount": "½ part", + "description": "Simple syrup" + }, { + "amount": "5", + "description": "Basil leaves, crushed" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "8", + "name": "Seared sesame fish", + "author": "Ali Connors", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/fish-steaks.jpg", + "description": "Cuts of fish like this are perfect for simple searing with bright flavours. Try Sesame seeds on these fillets for crusty skin filled with crunch. For added flavour try dipping in a homemade ponzu sauce - delicious.", + "ingredients": [{ + "amount": "1 ½ lbs", + "description": "Thin fish fillets" + }, { + "amount": "1 lb", + "description": "Salt and black pepper to taste" + }, { + "amount": "3/4 cup", + "description": "Sesame seeds" + }, { + "amount": "2tbsp", + "description": "Sesame oil" + }, { + "amount": "1tbsp", + "description": "Lime juice" + }, { + "amount": "2 tbsp", + "description": "Soy sauce" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "9", + "name": "Herb artichoke", + "author": "Sandra Adams", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_5438.png", + "description": "This tasty and healthy veggie is a favorite. Artichoke like this can be paired with a hearty main or works well as a small meal with some white wine on the side. Simple and fresh, all foodies love tasty artichoke.", + "ingredients": [{ + "amount": "1", + "description": "Small garlic clove, peeled" + }, { + "amount": "2", + "description": "Whole artichokes" + }, { + "amount": "4 tbsp", + "description": "Fresh lemon juice" + }, { + "amount": "4 tbsp", + "description": "Unsalted butter" + }, { + "amount": "2 tbsp", + "description": "Extra-virgin olive oil" + }, { + "amount": "1⁄4 tsp", + "description": "Freshly ground black pepper" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "10", + "name": "Pesto bruschetta", + "author": "Trevor Hansen", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_5332.png", + "description": "Life is good when you add amazingly warm bread, fresh pesto sauce, and roasted tomatoes to the table. This a classic starter to break out in a pinch. It’s easy to make and extra tasty.", + "ingredients": [{ + "amount": "1 loaf", + "description": "Sliced French bread" + }, { + "amount": "½ cup", + "description": "Cheese" + }, { + "amount": "1 cup", + "description": "Heirloom tomatoes" + }, { + "amount": "1 cup", + "description": "Fresh basil" + }, { + "amount": "1 clove", + "description": "Garlic " + }, { + "amount": "½ tbsp", + "description": "Olive oil" + }, { + "amount": "3tsp", + "description": "White wine vinegar" + }, { + "amount": "¼ tsp", + "description": "Sea salt" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "11", + "name": "Garlic bok choy", + "author": "Sandra Adams", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/bok-choy.jpg", + "description": "Great stir-fried bok choy starts at the market. For me, nothing says tasty like garlic and baby bok choy. Choose fresh, crisp greens. Once home, wash, chop, and then ready for the wok. No family style spread is complete without these greens.", + "ingredients": [{ + "amount": "1/2 cup", + "description": "Chick broth" + }, { + "amount": "1 tbsp", + "description": "Soy sauce" + }, { + "amount": "¼ cup", + "description": "Sliced garlic" + }, { + "amount": "2-3 lbs", + "description": "Bok choy" + }, { + "amount": "2 tsp", + "description": "Sesame oil" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "12", + "name": "Fresh Fettuccine", + "author": "Ali Connors", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/pasta.png", + "description": "Satisfy a need for rich, creamy homemade goodness with this classic. Creamy fettuccine alfredo will have you hitting the gym the next day, but it’s so good it’s worth it.", + "ingredients": [{ + "amount": "¾ cup", + "description": "Milk" + }, { + "amount": "1 ½ tsp", + "description": "Salt" + }, { + "amount": "1 tbsp", + "description": "Olive oil" + }, { + "amount": "8oz", + "description": "Fettuccine" + }, { + "amount": "½ cup", + "description": "Fresh basil" + }, { + "amount": "½ cup", + "description": "Fresh ground pepper" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + }, + { + "id": "13", + "name": "Sicilian-Style sardines", + "author": "Peter Carlsson", + "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_0575.jpg", + "description": "My go to way to eat sardines is with a splash of tangy lemon and fresh fennel drizzled on top. The best thing about this dish is the flavour it packs. Prepaid with wild caught sardines or canned.", + "ingredients": [{ + "amount": "1/4 cup", + "description": "Dry white wine" + }, { + "amount": "1", + "description": "Finely chopped shallot" + }, { + "amount": "2 tbsp", + "description": "Fresh lemon juice" + }, { + "amount": "1 tbsp", + "description": "Fennel seeds, crushed" + }, { + "amount": "4 tbsp", + "description": "Extra virgin olive oil, to taste" + }, { + "amount": "2 cans", + "description": "Sardines in oil, drained" + }], + "steps": [{ + "duration": "3 min", + "description": "Stir" + }, { + "duration": "45 min", + "description": "Cook" + }] + } +] diff --git a/bower_components/app-layout/templates/pesto/index.html b/bower_components/app-layout/templates/pesto/index.html new file mode 100644 index 00000000..f27d628d --- /dev/null +++ b/bower_components/app-layout/templates/pesto/index.html @@ -0,0 +1,56 @@ + + + + + + + + + + Pesto by Polymer + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/pesto/manifest.json b/bower_components/app-layout/templates/pesto/manifest.json new file mode 100644 index 00000000..afb1283a --- /dev/null +++ b/bower_components/app-layout/templates/pesto/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Pesto", + "name": "Pesto by Polymer", + "display": "standalone", + "icons": [{ + "src": "https://app-layout-assets.appspot.com/assets/pesto/icon-144.png", + "sizes": "144x144", + "type": "image/png" + }, { + "src": "https://app-layout-assets.appspot.com/assets/pesto/icon-256.png", + "sizes": "256x256", + "type": "image/png" + }], + "start_url": "index.html" +} diff --git a/bower_components/app-layout/templates/pesto/src/app-icons.html b/bower_components/app-layout/templates/pesto/src/app-icons.html new file mode 100644 index 00000000..c3946e0c --- /dev/null +++ b/bower_components/app-layout/templates/pesto/src/app-icons.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/pesto/src/recipe-app.html b/bower_components/app-layout/templates/pesto/src/recipe-app.html new file mode 100644 index 00000000..da4d294f --- /dev/null +++ b/bower_components/app-layout/templates/pesto/src/recipe-app.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/pesto/src/recipe-detail.html b/bower_components/app-layout/templates/pesto/src/recipe-detail.html new file mode 100644 index 00000000..9ef705c7 --- /dev/null +++ b/bower_components/app-layout/templates/pesto/src/recipe-detail.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/pesto/src/recipe-list.html b/bower_components/app-layout/templates/pesto/src/recipe-list.html new file mode 100644 index 00000000..0e94da05 --- /dev/null +++ b/bower_components/app-layout/templates/pesto/src/recipe-list.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/publishing/bower.json b/bower_components/app-layout/templates/publishing/bower.json new file mode 100644 index 00000000..a87fcbce --- /dev/null +++ b/bower_components/app-layout/templates/publishing/bower.json @@ -0,0 +1,35 @@ +{ + "name": "publishing", + "authors": [ + "The Polymer Authors" + ], + "private": true, + "dependencies": { + "app-layout": "polymerelements/app-layout#1 - 2", + "app-route": "polymerelements/app-route#1 - 2", + "es6-promise": "stefanpenner/es6-promise#^4.0.0", + "font-roboto": "polymerelements/font-roboto#^1.0.0", + "iron-ajax": "polymerelements/iron-ajax#1 - 2", + "iron-flex-layout": "polymerelements/iron-flex-layout#1 - 2", + "iron-pages": "polymerelements/iron-pages#1 - 2", + "iron-selector": "polymerelements/iron-selector#1 - 2", + "iron-icon": "polymerelements/iron-icon#1 - 2", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#1 - 2", + "iron-media-query": "polymerelements/iron-media-query#1 - 2", + "paper-fab": "PolymerElements/paper-fab#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "polymer/polymer#^1.9" + }, + "resolutions": { + "polymer": "^1.9", + "webcomponentsjs": "^0.7" + } + } + } +} diff --git a/bower_components/app-layout/templates/publishing/data/articles.json b/bower_components/app-layout/templates/publishing/data/articles.json new file mode 100644 index 00000000..e1eba51d --- /dev/null +++ b/bower_components/app-layout/templates/publishing/data/articles.json @@ -0,0 +1,111 @@ +[ + { + "name":"art", + "title":"Art", + "items":[ + { + "id": "1", + "title":"Tooling Up", + "author":"Amber Bravo", + "date":"June 14 2015", + "primaryColor":"#5a7785", + "secondaryColor":"#455a64", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/tooling-up-header-a13cfd9a.svg", + "desc":"How a new generation of prototyping tools at Google will help designers build better software.", + "content":"The road from design to production is often hard-won, filled with well-intended design detours, steep learning curves, and the occasional road block. Here’s a common scenario: A team of designers begins building wireframes for a new product. Several weeks, revisions, and pin-ups later, they emerge with a “final,” “shippable” file, which they hand off to the development team. The engineers poke holes in the design, deeming several elements “unbuildable,” and begin rendering out some semblance of the design in code. Several weeks later, they deliver a staging site. The designers are thrilled—this is the first time they’ve seen their design IRL—but are quickly deflated when they realize how much of the design has been lost in translation. The typography is wonky. The animations and interactive elements need to be re-tuned. A volley of annotated emails with screenshots ensues, until finally, the designer and developer sit side-by-side, and visually adjust the design directly in code." + }, + { + "id": "2", + "title":"Expressing Brand in Material", + "author":"Viktor Persson & Rachel Been", + "date":"July 4 2015", + "primaryColor":"#202226", + "secondaryColor":"#333", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/article_brand_2x1_202226-fc539618.svg", + "desc":"Material design offers a system for designing functional and elegant software. How does your brand fit into the framework? We’ve created a step-by-step guide to staying on-brand while going material.", + "content":"Nobody knows your brand better than you do. This is why when we set out to create the framework for material design, we were sensitive to the ways in which third-party developers might leverage the system. We wanted material design to give comprehensive guidance for designing effective and elegant UIs — taking a strong position on motion, dimensionality, color, and graphic hierarchy — but with enough latitude to allow for various levels of engagement. You don’t have to adopt every element of the material design system in order for it to be beneficial to your identity system. Whether it’s a custom font, a unique color story, or distinct voice, everything that provides stylistic distinction in a product should be celebrated and supported in the material design framework. We’ve laid out the top brand touchpoints to help illustrate the system’s flexibility and give designers and developers a road map for showcasing their brand identity." + }, + { + "id": "3", + "title":"New Design Tools", + "author":"Amber Bravo", + "date":"July 29 2015", + "primaryColor":"#3e50b4", + "secondaryColor":"#303fc3", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/150727_GD_Article_ToolingUpFurther_1x1Tile-01-86c8e03e.svg", + "desc":"See Also: (More) thoughts on design tools", + "content":"This week on Google Design, we published a roundtable discussion with Matias Duarte and the founders of Pixate and RelativeWave, Paul Colton and Max Wiesel. To prepare for the interview, I turned to my design brethren on Medium (and beyond!) to learn more about their experiences working with some of the more popular prototyping tools available today, as well as their hopes and dreams for the next generation of design software. Here are a few of the stories I found helpful for framing the discussion. A thorough account of using Form (pre 1.3) for the first time, from the perspective of a designer who is less familiar with Quarz Composer, with built prototypes to help synthesize the material covered in each section. Also worth reading: Ces’ great tutorial exploring material design in Origami." + } + ] + }, + { + "name":"film", + "title":"Film", + "items":[ + { + "id": "1", + "title":"Design from iOS to Android (and Back Again)", + "author":"Roman Nurik & Viltor Persson", + "date":"Aug 20 2015", + "primaryColor":"#3e50b4", + "secondaryColor":"#303F9F", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/renditions/Article_iOS_to_Android_Header_3e50b4-f064882f-1240.png", + "desc":"A practical guide to designing across platforms", + "content":"Designing and developing between platforms is a lot like traveling through different countries. You go through the same motions — sleeping, eating, sightseeing, regardless of where you are — but the customs of the country you’re visiting dictate how you go about doing them. In some countries, it’s ok to push people into the train, or eat a burger with a knife and fork. Similarly, if you developed your product first for iOS, you shouldn’t simply expect that you can port it into Android without issue, because your app will feel lost in translation. It’s important to understand the idioms and behaviors of each platform before you start design and development. That way your users will be able to use and easily understand your app on the platform that is native to them, and you will have the most clear and true version of your product — no matter where it’s used. This guide will walk you through some practical tips for moving from iOS to Android (and back again) without suffering a cultural divide." + }, + { + "id": "2", + "title":"Demystifying Density", + "author":"Sebastien Gabriel", + "date":"July 10 2015", + "primaryColor":"#00ccb8", + "secondaryColor":"#00b7a5", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/article_dpi_00ccb8-34fdd39e.svg", + "desc":"Sebastien Gabriel takes one for the team with his exhaustive guide to DPI & PPI", + "content":"Dots Per Inch and Pixels Per Inch, DPI and PPI respectively, are units for measuring the tiny bits of color that come together to form a printed image or an image on a screen. The higher the density of those dots or pixels, the higher the resolution. For most, a rudimentary understanding of DPI or PPI amounts to knowing whether or not an image is clear but small enough to print, email, or post to social media. However, for designers, understanding screen density and ratio is essential to delivering delightful user experiences across devices. Designing for phones, tablets, laptops, watches, and hybrids without a proper knowledge of dpi and ratio is a lot like building a house using the wrong measurement — things are going to look very weird very quickly (and good luck getting through the door!)." + }, + { + "id": "3", + "title":"Pixate and Form 1.3", + "author":"Google Design", + "date":"May 30 2015", + "primaryColor":"#eeeeee", + "secondaryColor":"#9e9e9e", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/pixate-and-form-1-3-header-2061f19f.svg", + "desc":"Discover the latest features and start designing native prototypes on your device.", + "content":"We’re thrilled to announce that Pixate has joined Google! Pixate adds to our ongoing effort to develop new design and prototyping tools, including Form 1.3. Explore the latest features of both products below, and check out our roundtable conversation with Matias Duarte, VP Design at Google, and the the founders of Pixate and Form. A visual prototyping platform that allows designers to create sophisticated, fluid mobile prototypes that run natively on iOS and Android devices. Creating complete app prototypes or crafting carefully choreographed interactions that look and feel completely real, and sharing them so entire product teams or clients can experience them right on their device." + }, + { + "id": "4", + "title":"Welcome to the New Google Design", + "author":"Google Design", + "date":"Sep 10 2015", + "primaryColor":"#3367d6", + "secondaryColor":"#2755CC", + "image":"https://g-design.storage.googleapis.com/production/v5/assets/Article_Welcome_Header_2880-ce3ec22d.svg", + "desc":"More design, all the time", + "content":"Much has happened in the year since we launched Google Design and introduced our material design framework at Google I/O 2014. We hosted FORM, Google’s first-ever design conference in San Francisco and engaged in numerous outreach efforts through workshops, design sprints, and online discussions. We’ve continued to improve and expand on the material design guidelines and have witnessed countless teams both inside and outside Google adopt the framework and ship beautiful, materialized products across platforms. To better capture all this great design work happening at Google and around the community, we’ve completely reconceived Google Design. In addition to all the guidelines and resources you’ve come to rely on, we’ve also released guides for TV, Auto, and Cardboard, our virtual reality product. Our new Icon Library allows you to download our icon font and source from the over 800 material system icons. We’ve also added a whole new layer of written and video content — everything from tutorials, case-studies, interviews, and essays, to a listing of job opportunities and design-related events, like our upcoming FORM conference. The goal is to provide a new perspective on our design process and ample opportunity for cross pollination. Now you can watch an animated color tutorial before you dive into the nitty gritty details in our material design guidelines, or get some practical guidance around designing between platforms. Our Making Material Design series takes you behind-the-scenes to find out what it takes to create a new visual framework for Google. Additionally, we’ve launched new Dribbble and YouTube channels to complement our active Twitter and Google+ presence and can share even more real-time content from our design teams. We hope you enjoy the the new Google Design, and we look forward to hearing your feedback on Twitter and Google+. After all, good design is never done." + } + ] + }, + { + "name":"photography", + "title":"Photography", + "items":[] + }, + { + "name":"design", + "title":"Design", + "items":[] + }, + { + "name":"topten", + "title":"Top Ten", + "items":[] + }, + { + "name":"aday", + "title":"A Day in the Life", + "items":[] + } +] \ No newline at end of file diff --git a/bower_components/app-layout/templates/publishing/index.html b/bower_components/app-layout/templates/publishing/index.html new file mode 100644 index 00000000..2bce8da8 --- /dev/null +++ b/bower_components/app-layout/templates/publishing/index.html @@ -0,0 +1,55 @@ + + + + + + + + + + ZUPERKÜLBLOG + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/publishing/manifest.json b/bower_components/app-layout/templates/publishing/manifest.json new file mode 100644 index 00000000..2ccb9479 --- /dev/null +++ b/bower_components/app-layout/templates/publishing/manifest.json @@ -0,0 +1,21 @@ +{ + "name": "Zuperkülblog", + "short_name": "Zuperkülblog", + "icons": [{ + "src": "//app-layout-assets.appspot.com/assets/zuperkulblog/launcher-icon-128x128.png", + "sizes": "128x128", + "type": "image/png" + }, { + "src": "//app-layout-assets.appspot.com/assets/zuperkulblog/launcher-icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + },{ + "src": "//app-layout-assets.appspot.com/assets/zuperkulblog/launcher-icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }], + "start_url": "index.html", + "background_color": "#fafafa", + "display": "standalone", + "theme_color": "#fafafa" +} diff --git a/bower_components/app-layout/templates/publishing/src/app-icons.html b/bower_components/app-layout/templates/publishing/src/app-icons.html new file mode 100644 index 00000000..94ef2c91 --- /dev/null +++ b/bower_components/app-layout/templates/publishing/src/app-icons.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/publishing/src/article-detail.html b/bower_components/app-layout/templates/publishing/src/article-detail.html new file mode 100644 index 00000000..f1cdbf80 --- /dev/null +++ b/bower_components/app-layout/templates/publishing/src/article-detail.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/publishing/src/article-headline.html b/bower_components/app-layout/templates/publishing/src/article-headline.html new file mode 100644 index 00000000..02f24766 --- /dev/null +++ b/bower_components/app-layout/templates/publishing/src/article-headline.html @@ -0,0 +1,73 @@ + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/publishing/src/blog-app.html b/bower_components/app-layout/templates/publishing/src/blog-app.html new file mode 100644 index 00000000..6a73e5df --- /dev/null +++ b/bower_components/app-layout/templates/publishing/src/blog-app.html @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/publishing/src/two-columns-grid.html b/bower_components/app-layout/templates/publishing/src/two-columns-grid.html new file mode 100644 index 00000000..e7808557 --- /dev/null +++ b/bower_components/app-layout/templates/publishing/src/two-columns-grid.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/bower.json b/bower_components/app-layout/templates/shrine/bower.json new file mode 100644 index 00000000..1fb52e75 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/bower.json @@ -0,0 +1,33 @@ +{ + "name": "shrine", + "authors": [ + "The Polymer Authors" + ], + "private": true, + "dependencies": { + "app-layout": "PolymerElements/app-layout#1 - 2", + "app-route": "PolymerElements/app-route#1 - 2", + "es6-promise": "stefanpenner/es6-promise#^4.0.0", + "iron-ajax": "PolymerElements/iron-ajax#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-pages": "PolymerElements/iron-pages#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-media-query": "PolymerElements/iron-media-query#1 - 2", + "paper-fab": "PolymerElements/paper-fab#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-tabs": "PolymerElements/paper-tabs#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "polymer/polymer#^1.9" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "polymer": "^1.9" + } + } + } +} diff --git a/bower_components/app-layout/templates/shrine/data/featured.json b/bower_components/app-layout/templates/shrine/data/featured.json new file mode 100644 index 00000000..a2092b32 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/data/featured.json @@ -0,0 +1,72 @@ +[ + { + "id": 16, + "title": "Green comfort chair", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/chair.png", + "storeName": "Ali’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", + "price": "$300", + "category": "Feature" + }, + { + "id": 12, + "title": "Beautiful little teapot", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/beachball.png", + "storeName": "Trevor’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", + "price": "$300", + "category": "Latest" + }, + { + "id": 6, + "title": "Original Sunnies For U", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/chucks.png", + "storeName": "Sandra’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", + "price": "$300", + "category": "Fashion" + }, + { + "id": 17, + "title": "Folding Chair", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/lawn_chair.png", + "storeName": "Stella’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", + "price": "$300", + "category": "Furniture" + }, + { + "id": 18, + "title": "Better wearing heels", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/heels.png", + "storeName": "Peter’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", + "price": "$300", + "category": "Beauty" + }, + { + "id": 3, + "title": "Red Popsicle", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/popsicle.png", + "storeName": "Trevor’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", + "price": "$300", + "category": "Food" + }, + { + "id": 10, + "title": "Best gift for the traveler", + "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/backpack.png", + "storeName": "Sandra’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", + "price": "$300", + "category": "Travel" + } +] \ No newline at end of file diff --git a/bower_components/app-layout/templates/shrine/data/items.json b/bower_components/app-layout/templates/shrine/data/items.json new file mode 100644 index 00000000..52e5af9c --- /dev/null +++ b/bower_components/app-layout/templates/shrine/data/items.json @@ -0,0 +1,192 @@ +[{ + "id": 0, + "title": "Vintage Bluetooth Radio", + "description": "Isn’t it cool when things look old, but their not. Looks Old But Not makes awesome vintage goods that are super smart. This ol’ radio just got an upgrade. Connect to it with an app and jam out to some top forty.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/radio.png", + "price": "$300", + "storeName": "Sandra’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", + "storeDescription": "Sandra specializes in furniture, beauty and travel products with a classic vibe. Custom orders are available if you’re looking for a certain color or material.", + "featured": false +}, +{ + + "id": 1, + "title": "Sunglasses", + "description": "Be an optimist. Carry Sunglasses with you at all times. All Tints and Shades products come with polarized lenses and super duper UV protection so you can look at the sun for however long you want. Sunglasses make you look cool, wear them.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sunnies.png", + "price": "$70", + "storeName": "Trevor’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", + "storeDescription": "Trevor Hanson sources housewares and styles from just about everywhere. Super cool and extra awesome all of his shop’s goods are handmade with love.", + "featured": false +}, +{ + + "id": 2, + "title": "Clock", + "description": "Timekeeper Co makes clocks that tell time precisely. Clock is very simple to use, set the time using your phone, hang it, and viola! You’ll never be late again.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/clock.png", + "price": "$120", + "storeName": "Trevor’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", + "storeDescription": "Trevor Hanson sources housewares and styles from just about everywhere. Super cool and extra awesome all of his shop’s goods are handmade with love.", + "featured": false +}, +{ + + "id": 3, + "title": "Red Popsicle", + "description": "Looks can be deceiving. This Red Popsicle comes in a wide variety of flavors, including strawberry, that burst as soon as it hits the mouth. Red Popsicles melt slow, so savor the flavor.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/popsicle.png", + "price": "$300", + "storeName": "Stella’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", + "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 4, + "title": "Green Slip-ons", + "description": "Feetsy has been making extraordinary slip-ons for decades. With each pair of shoes purchased Feetsy donates a pair to those in need. Buy yourself a pair, buy someone else a pair. Very Comfortable.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/green-shoes.png", + "price": "$75", + "storeName": "Sandra’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", + "storeDescription": "Sandra specializes in furniture, beauty and travel products with a classic vibe. Custom orders are available if you’re looking for a certain color or material.", + "featured": false +}, +{ + + "id": 5, + "title": "Teapot", + "description": "Impress your guests with Teapot by Kitchen Stuff. Teapot holds extremely hot liquids and pours them from the spout. Use the handle, shown on the left, so your fingers don’t get burnt while pouring.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/teapot.png", + "price": "$210", + "storeName": "Ali’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", + "storeDescription": "Ali Connor’s makes custom goods for folks of all shapes and sizes made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 6, + "title": "Blue suede shoes", + "description": "Who needs pants when you have shoes! Blue suede shoes were meant to go dancing in, so you may want to pick up a few of these. These things are stylish.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/chucks.png", + "price": "$89", + "storeName": "Trevor’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", + "storeDescription": "Trevor Hanson sources housewares and styles from just about everywhere. Super cool and extra awesome all of his shop’s goods are handmade with love.", + "featured": true +}, +{ + + "id": 7, + "title": "Dipped Brush", + "description": "WeDipIt does it again. This handle dipped 4 inch brush is a perfect for painting 4 inch lines, or coloring in big areas with paint. Just be sure you don’t drop it in a bucket of red paint, then it won’t look dipped anymore.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/brush.png", + "price": "$25", + "storeName": "Stella’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", + "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": true +}, +{ + + "id": 8, + "title": "Perfect Goldfish Bowl", + "description": "The Perfect Bowl Co makes the best bowls for just about anything you can think of. This Perfect Goldfish Bowl holds water and fish perfectly. Looks great in living rooms. Keep out of reach from cats.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/fish_bowl.png", + "price": "$25", + "storeName": "Ali’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", + "storeDescription": "Ali Connor’s makes custom goods for folks of all shapes and sizes made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 9, + "title": "Red Lipstick Set", + "description": "Trying to find the perfect shade to match your mood? Try no longer. Red Lipstick Set by StickLips has you covered for those nights when you need to get out, or even if you’re just headed to work.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/lipstick.png", + "price": "$25", + "storeName": "Sandra’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", + "storeDescription": "Sandra specializes in furniture, beauty and travel products with a classic vibe. Custom orders are available if you’re looking for a certain color or material.", + "featured": false +}, +{ + + "id": 10, + "title": "Backpack", + "description": "This backpack by Bags ‘n’ stuff can hold just about anything: a laptop, a pen, a protractor, notebooks, small animals, plugs for your devices, sunglasses, gym clothes, shoes, gloves, two kittens, and even lunch!", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/backpack.png", + "price": "$25", + "storeName": "Peter’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", + "storeDescription": "Peter makes great stuff for awesome people like you. Super cool and extra awesome all of his shop’s goods are handmade with love. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 11, + "title": "Half Shield Helmet", + "description": "Half Shield is the right helmet for those warm summer days on the road. Dot approved, these helmets have been rigorously tested. Keep that noggin protected.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/helmet.png", + "price": "$25", + "storeName": "Ali’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", + "storeDescription": "Ali Connor’s makes custom goods for folks of all shapes and sizes made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 12, + "title": "Beachball", + "description": "Are you at a baseball game and feeling bored? At a pool party and looking for a laugh? Do you need something to take your anger out on? Beachball, by inflatable fun, is the perfect outlet.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/beachball.png", + "price": "$25", + "storeName": "Peter’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", + "storeDescription": "Peter makes great stuff for awesome people like you. Super cool and extra awesome all of his shop’s goods are handmade with love. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 13, + "title": "Old Binoculars", + "description": "These Binoculars by See Through are amazing and can make things that are really far away seem like they’re right in front of you. Bring them to the beach. Now you can buy the cheap seats at the big game and feel like you’re right in the action.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/binoculars.png", + "price": "$25", + "storeName": "Stella’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", + "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": false +}, +{ + + "id": 14, + "title": "Lime Flippers", + "description": "Flippers are a nice tool to have when you’re being chased by an oversized sea turtle. Never get caught again with these fast water shoes. You’re like a fish, but more graceful.", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/flippers.png", + "price": "$25", + "storeName": "Peter’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", + "storeDescription": "Peter makes great stuff for awesome people like you. Super cool and extra awesome all of his shop’s goods are handmade with love. Custom orders are available upon request if you need something extra special.", + "featured": true +}, +{ + + "id": 15, + "title": "Surfboard", + "description": "Who says you can’t walk on water? With Surfboard, by Surfboard Supply, you can fly on water. This beast is fast and handles like a porsche. Hang Ten Bro!", + "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/surfboard.png", + "price": "$25", + "storeName": "Stella’s shop", + "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", + "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", + "featured": true +} +] \ No newline at end of file diff --git a/bower_components/app-layout/templates/shrine/index.html b/bower_components/app-layout/templates/shrine/index.html new file mode 100644 index 00000000..9c50f412 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/index.html @@ -0,0 +1,53 @@ + + + + + + + + + + Shrine + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/manifest.json b/bower_components/app-layout/templates/shrine/manifest.json new file mode 100644 index 00000000..48f3cad3 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/manifest.json @@ -0,0 +1,22 @@ +{ + "name": "Shrine", + "short_name": "Shrine by Polymer", + "icons": [{ + "src": "//app-layout-assets.appspot.com/assets/shrine/launcher-icon-128x128.png", + "sizes": "128x128", + "type": "image/png" + }, { + "src": "//app-layout-assets.appspot.com/assets/shrine/launcher-icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + },{ + "src": "//app-layout-assets.appspot.com/assets/shrine/launcher-icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }], + "start_url": "index.html", + "background_color": "#fff", + "display": "standalone", + "theme_color": "#fff" +} + diff --git a/bower_components/app-layout/templates/shrine/src/shrine-app.html b/bower_components/app-layout/templates/shrine/src/shrine-app.html new file mode 100644 index 00000000..44cf5228 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/src/shrine-app.html @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/src/shrine-detail.html b/bower_components/app-layout/templates/shrine/src/shrine-detail.html new file mode 100644 index 00000000..b165ff03 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/src/shrine-detail.html @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html b/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html new file mode 100644 index 00000000..33e0013e --- /dev/null +++ b/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html @@ -0,0 +1,205 @@ + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/src/shrine-item.html b/bower_components/app-layout/templates/shrine/src/shrine-item.html new file mode 100644 index 00000000..72c5a3c3 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/src/shrine-item.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/src/shrine-list.html b/bower_components/app-layout/templates/shrine/src/shrine-list.html new file mode 100644 index 00000000..60585033 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/src/shrine-list.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html b/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html new file mode 100644 index 00000000..586be866 --- /dev/null +++ b/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html @@ -0,0 +1,78 @@ + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/test-drive/bower.json b/bower_components/app-layout/templates/test-drive/bower.json new file mode 100644 index 00000000..10724d9a --- /dev/null +++ b/bower_components/app-layout/templates/test-drive/bower.json @@ -0,0 +1,25 @@ +{ + "name": "test-drive", + "authors": [ + "The Polymer Authors" + ], + "private": true, + "dependencies": { + "app-layout": "polymerelements/app-layout#1 - 2", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#1 - 2", + "paper-checkbox": "PolymerElements/paper-checkbox#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "polymer/polymer#^1.9" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "polymer": "^1.9" + } + } + } +} diff --git a/bower_components/app-layout/templates/test-drive/index.html b/bower_components/app-layout/templates/test-drive/index.html new file mode 100644 index 00000000..ffe363c7 --- /dev/null +++ b/bower_components/app-layout/templates/test-drive/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + Test Drive + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/templates/test-drive/test-app.html b/bower_components/app-layout/templates/test-drive/test-app.html new file mode 100644 index 00000000..30637df2 --- /dev/null +++ b/bower_components/app-layout/templates/test-drive/test-app.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-layout/test/index.html b/bower_components/app-layout/test/index.html new file mode 100644 index 00000000..18330d87 --- /dev/null +++ b/bower_components/app-layout/test/index.html @@ -0,0 +1,32 @@ + + + + + + + Tests + + + + + + diff --git a/bower_components/app-route/.bower.json b/bower_components/app-route/.bower.json new file mode 100644 index 00000000..4471237e --- /dev/null +++ b/bower_components/app-route/.bower.json @@ -0,0 +1,75 @@ +{ + "name": "app-route", + "authors": [ + "The Polymer Authors" + ], + "description": "App routing expressed as Polymer Custom Elements.", + "main": [ + "app-route.html", + "app-location.html", + "app-route-converter.html" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/app-route", + "private": true, + "ignore": [], + "dependencies": { + "iron-location": "PolymerElements/iron-location#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "google-youtube": "GoogleWebComponents/google-youtube#1 - 2", + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-pages": "PolymerElements/iron-pages#1 - 2", + "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", + "paper-card": "PolymerElements/paper-card#1 - 2", + "paper-icon-button": "polymerelements/paper-icon-button#1 - 2", + "paper-input": "polymerelements/paper-input#1 - 2", + "paper-spinner": "PolymerElements/paper-spinner#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-toggle-button": "polymerelements/paper-toggle-button#1 - 2", + "url": "webcomponents/URL#^0.5.7", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-location": "polymerelements/iron-location#^0.8.1", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "google-youtube": "GoogleWebComponents/google-youtube#^1.2.1", + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.0", + "iron-pages": "PolymerElements/iron-pages#^1.0.7", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "paper-card": "PolymerElements/paper-card#^1.1.1", + "paper-icon-button": "polymerelements/paper-icon-button#^v1.0.0", + "paper-input": "polymerelements/paper-input#^1.1.2", + "paper-spinner": "PolymerElements/paper-spinner#^1.1.1", + "paper-styles": "polymerelements/paper-styles#^1.0.13", + "paper-toggle-button": "polymerelements/paper-toggle-button#^1.0.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "version": "2.1.1", + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "af8e578831240fd52671a2ca40b726ee21bcd4ed" + }, + "_source": "https://github.com/PolymerElements/app-route.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/app-route" +} \ No newline at end of file diff --git a/bower_components/app-route/.github/CODEOWNERS b/bower_components/app-route/.github/CODEOWNERS new file mode 100644 index 00000000..9ef9eb64 --- /dev/null +++ b/bower_components/app-route/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @e111077 +/.travis.yml @azakus diff --git a/bower_components/app-route/.github/ISSUE_TEMPLATE.md b/bower_components/app-route/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0c018d64 --- /dev/null +++ b/bower_components/app-route/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/app-route/.gitignore b/bower_components/app-route/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/app-route/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/app-route/.travis.yml b/bower_components/app-route/.travis.yml new file mode 100644 index 00000000..78ddb9fe --- /dev/null +++ b/bower_components/app-route/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Typings are stale. Please run "npm run format".' && false) +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +env: + global: + - secure: >- + WdFRmsbFi5zjdD/yaGR0HITPFsjSWeVYj8JcLE95nUN0fkkJuNh/A0/cDHDcDpxzY4xCNdc/IwPTtE4+awCGavot71OXlpEYD8aZUdVw9VcYVTc1IG2B/hgFcdYhXHYOLbs7JlOA/H6/RSiOensRv7QESNY2cMGzRsccav9jdAbLJqHNPI5orMRBT6/H5roZvXXEn5XmIemjCMwtGlqUeRd3nHM2n0PsQKETb+8Y04fTFuqggSEVt/SgU/UdNNm2T2mVFUDWChvjAM36l4FvgUKZm8gh2CYrXc0rHOVt7BCJN5OzZSwCmxxauhUe+7QOgZO3UE5l+M+MX9CjnSdy/HJRauMJy2eCSr9RDoChPKZOC14QrZff06L9WhDnVEHkz8PN2mwP73/uDVYyJC9Szs+4MSKK+WEIIiywEnxCp2Nq9eBNoWNDySOaud+9WxLosh01bTvytVZrd3Lqkf3MUm2sJ+v17e4JagW13zwBXjxnLP1V+H+IP/imrRRV9x5gdvK+9iL3ZYsIQmcEkqNlWrqHe3eZTgpkc/HhewfZCu49ClM6pnoJiC/7/YM3CarwkfMhGJKDU5iXfJiQABIfZ3XhTKG7nltz6VRpm8eFwxInpxNAIBghkz6PGeESHgtmsoQKtGqAg7+cRfjTS9uLMVomYHWPz0brCIQloAjSKc8= + - secure: >- + k6zYpUF0NdxNqVyfCbEztJ25Z229mpcvSdHfkOF8YqFse+1CkSR1M83Dts1K34eK43Yov375YJ/Op/MXEA0wrbnyEDg/AvwqBv5XZTslIvOjA1WvZJDGBiaZ6lvqs6tEhLfB79eZvTHP8DSDlLabklDAPaio1VC+Q6zyLIlsTIr6fH1VK1gX/uHkvSGKl8C9bfeGHgFlXaWmShN+FvLwW4PiRw2MwzXeq/qQqfS0Nn3gtuGN2kNNBpKVJwcDkYDOcJ2+49ojF8RAdbt8hsZkjGq21hpY6eKhbte66guN7lRTKY5+g2aLkg1CrBp9ZHZ4kAlfbhibhiLt/W1UbXUL/nnTFkrotuJ6vdU6gLN0EhjZN3bMAtKqHC+Bl2223ClNMs17iXReSqqOSc9D3gL9b3FYqQElS4bQIa+0L76TbkMM/H6ilQjSIvVnUXLszMIeyliIVpnI0ClTUbqe5Et51urk+KjJrOE95wyxkiL2bzKxcXCLzdvSy0nxwwcu7DnBQPG0Fg6/JVRMHM17PDhjgQLSvKr8wXtO042xzAosoZuDVOHHgpA5v9iKI/xPUseu3utfBT5ZGcyjKKuxI9Dsjoi4Go0B6uQ4rY/XUp+k4aa1Ucg3Ngx8zYgzJlFGiZq7OnG+quSTpZ32hpQqDmtYKNMxf5p/YRhxWSeuBWheLeQ= +dist: trusty +sudo: required diff --git a/bower_components/app-route/CONTRIBUTING.md b/bower_components/app-route/CONTRIBUTING.md new file mode 100644 index 00000000..34d61544 --- /dev/null +++ b/bower_components/app-route/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/hirore/edit?html,output](https://jsbin.com/hirore/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/app-route/README.md b/bower_components/app-route/README.md new file mode 100644 index 00000000..b388b599 --- /dev/null +++ b/bower_components/app-route/README.md @@ -0,0 +1,217 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route) + + +## <app-route> + +`app-route` is an element that enables declarative, self-describing routing +for a web app. + +> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!* + +In its typical usage, a `app-route` element consumes an object that describes +some state about the current route, via the `route` property. It then parses +that state using the `pattern` property, and produces two artifacts: some `data` +related to the `route`, and a `tail` that contains the rest of the `route` that +did not match. + +Here is a basic example, when used with `app-location`: + +```html + + + +``` + +In the above example, the `app-location` produces a `route` value. Then, the +`route.path` property is matched by comparing it to the `pattern` property. If +the `pattern` property matches `route.path`, the `app-route` will set or update +its `data` property with an object whose properties correspond to the parameters +in `pattern`. So, in the above example, if `route.path` was `'/about'`, the value +of `data` would be `{"page": "about"}`. + +The `tail` property represents the remaining part of the route state after the +`pattern` has been applied to a matching `route`. + +Here is another example, where `tail` is used: + +```html + + + + + +``` + +In the above example, there are two `app-route` elements. The first +`app-route` consumes a `route`. When the `route` is matched, the first +`app-route` also produces `routeData` from its `data`, and `subroute` from +its `tail`. The second `app-route` consumes the `subroute`, and when it +matches, it produces an object called `subrouteData` from its `data`. + +So, when `route.path` is `'/about'`, the `routeData` object will look like +this: `{ page: 'about' }` + +And `subrouteData` will be null. However, if `route.path` changes to +`'/article/123'`, the `routeData` object will look like this: +`{ page: 'article' }` + +And the `subrouteData` will look like this: `{ id: '123' }` + +`app-route` is responsive to bi-directional changes to the `data` objects +they produce. So, if `routeData.page` changed from `'article'` to `'about'`, +the `app-route` will update `route.path`. This in-turn will update the +`app-location`, and cause the global location bar to change its value. + + + +## <app-location> + +`app-location` is an element that provides synchronization between the +browser location bar and the state of an app. When created, `app-location` +elements will automatically watch the global location for changes. As changes +occur, `app-location` produces and updates an object called `route`. This +`route` object is suitable for passing into a `app-route`, and other similar +elements. + +An example of the public API of a route object that describes the URL +`https://elements.polymer-project.org/elements/app-location`: + +```css +{ + prefix: '', + path: '/elements/app-location' +} +``` + +Example Usage: + +```html + + +``` + +As you can see above, the `app-location` element produces a `route` and that +property is then bound into the `app-route` element. The bindings are two- +directional, so when changes to the `route` object occur within `app-route`, +they automatically reflect back to the global location. + +### Hashes vs Paths + +By default `app-location` routes uses the pathname portion of the URL. This has +broad browser support but it does require cooperation of the backend server. An +`app-location` can be configured to use the hash part of a URL instead using +the `use-hash-as-path` attribute, like so: + +```html + +``` + +### Integrating with other routing code + +There is no standard event that is fired when window.location is modified. +`app-location` fires a `location-changed` event on `window` when it updates the +location. It also listens for that same event, and re-reads the URL when it's +fired. This makes it very easy to interop with other routing code. + +So for example if you want to navigate to `/new_path` imperatively you could +call `window.location.pushState` or `window.location.replaceState` followed by +firing a `location-changed` event on `window`. i.e. + +```javascript +window.history.pushState({}, null, '/new_path'); +window.dispatchEvent(new CustomEvent('location-changed')); +``` + + + +## <app-route-converter> + +`app-route-converter` provides a means to convert a path and query +parameters into a route object and vice versa. This produced route object +is to be fed into route-consuming elements such as `app-route`. + +> n.b. This element is intended to be a primitive of the routing system and for +creating bespoke routing solutions from scratch. To simply include routing in +an app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html) +and [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html). + +An example of a route object that describes +`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux` +and should be passed to other `app-route` elements: + +```css +{ + prefix: '', + path: '/elements/app-route-converter', + __queryParams: { + foo: 'bar', + baz: 'qux' + } +} +``` + +`__queryParams` is private to discourage directly data-binding to it. This is so +that routing elements like `app-route` can intermediate changes to the query +params and choose whether to propagate them upstream or not. `app-route` for +example will not propagate changes to its `queryParams` property if it is not +currently active. A public queryParams object will also be produced in which you +should perform data-binding operations. + +Example Usage: + +```html + + + + + + + +``` + +This is a simplified implementation of the `app-location` element. Here the +`iron-location` produces a path and a query, the `iron-query-params` consumes +the query and produces a queryParams object, and the `app-route-converter` +consumes the path and the query params and converts it into a route which is in +turn is consumed by the `app-route`. + + + +## Polymer.AppRouteConverterBehavior + +Provides bidirectional mapping between `path` and `queryParams` and a +app-route compatible `route` object. + +For more information, see the docs for `app-route-converter`. + + diff --git a/bower_components/app-route/app-location.d.ts b/bower_components/app-route/app-location.d.ts new file mode 100644 index 00000000..edc2b8c8 --- /dev/null +++ b/bower_components/app-route/app-location.d.ts @@ -0,0 +1,126 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-location.html + */ + +/// +/// +/// +/// + +/** + * `app-location` is an element that provides synchronization between the + * browser location bar and the state of an app. When created, `app-location` + * elements will automatically watch the global location for changes. As changes + * occur, `app-location` produces and updates an object called `route`. This + * `route` object is suitable for passing into a `app-route`, and other similar + * elements. + * + * An example of the public API of a route object that describes the URL + * `https://elements.polymer-project.org/elements/app-location`: + * + * { + * prefix: '', + * path: '/elements/app-location' + * } + * + * Example Usage: + * + * + * + * + * As you can see above, the `app-location` element produces a `route` and that + * property is then bound into the `app-route` element. The bindings are two- + * directional, so when changes to the `route` object occur within `app-route`, + * they automatically reflect back to the global location. + * + * ### Hashes vs Paths + * + * By default `app-location` routes using the pathname portion of the URL. This has + * broad browser support but it does require cooperation of the backend server. An + * `app-location` can be configured to use the hash part of a URL instead using + * the `use-hash-as-path` attribute, like so: + * + * + * + * ### Integrating with other routing code + * + * There is no standard event that is fired when window.location is modified. + * `app-location` fires a `location-changed` event on `window` when it updates the + * location. It also listens for that same event, and re-reads the URL when it's + * fired. This makes it very easy to interop with other routing code. + * + * So for example if you want to navigate to `/new_path` imperatively you could + * call `window.location.pushState` or `window.location.replaceState` followed by + * firing a `location-changed` event on `window`. i.e. + * + * window.history.pushState({}, null, '/new_path'); + * window.dispatchEvent(new CustomEvent('location-changed')); + */ +interface AppLocationElement extends Polymer.Element, Polymer.AppRouteConverterBehavior { + + /** + * A model representing the deserialized path through the route tree, as + * well as the current queryParams. + */ + route: object|null|undefined; + + /** + * The route path, which will be either the hash or the path, depending + * on useHashAsPath. + */ + path: string|null|undefined; + + /** + * In many scenarios, it is convenient to treat the `hash` as a stand-in + * alternative to the `path`. For example, if deploying an app to a static + * web server (e.g., Github Pages) - where one does not have control over + * server-side routing - it is usually a better experience to use the hash + * to represent paths through one's app. + * + * When this property is set to true, the `hash` will be used in place of + * + * the `path` for generating a `route`. + */ + useHashAsPath: boolean|null|undefined; + + /** + * A regexp that defines the set of URLs that should be considered part + * of this web app. + * + * Clicking on a link that matches this regex won't result in a full page + * navigation, but will instead just update the URL state in place. + * + * This regexp is given everything after the origin in an absolute + * URL. So to match just URLs that start with /search/ do: + * url-space-regex="^/search/" + */ + urlSpaceRegex: string|RegExp|null; + + /** + * Whether or not the ready function has been called. + */ + _isReady: boolean|null|undefined; + + /** + * If the user was on a URL for less than `dwellTime` milliseconds, it + * won't be added to the browser's history, but instead will be + * replaced by the next entry. + * + * This is to prevent large numbers of entries from clogging up the + * user's browser history. Disable by setting to a negative number. + * + * See `iron-location` for more information. + */ + dwellTime: number|null|undefined; + ready(): void; +} + +interface HTMLElementTagNameMap { + "app-location": AppLocationElement; +} diff --git a/bower_components/app-route/app-location.html b/bower_components/app-route/app-location.html new file mode 100644 index 00000000..c1cfefff --- /dev/null +++ b/bower_components/app-route/app-location.html @@ -0,0 +1,218 @@ + + + + + + + + + + + diff --git a/bower_components/app-route/app-route-converter-behavior.d.ts b/bower_components/app-route/app-route-converter-behavior.d.ts new file mode 100644 index 00000000..37af327f --- /dev/null +++ b/bower_components/app-route/app-route-converter-behavior.d.ts @@ -0,0 +1,64 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-route-converter-behavior.html + */ + +declare namespace Polymer { + + /** + * Provides bidirectional mapping between `path` and `queryParams` and a + * app-route compatible `route` object. + * + * For more information, see the docs for `app-route-converter`. + */ + interface AppRouteConverterBehavior { + + /** + * A model representing the deserialized path through the route tree, as + * well as the current queryParams. + * + * A route object is the kernel of the routing system. It is intended to + * be fed into consuming elements such as `app-route`. + */ + route: object|null|undefined; + + /** + * A set of key/value pairs that are universally accessible to branches of + * the route tree. + */ + queryParams: object|null; + + /** + * The serialized path through the route tree. This corresponds to the + * `window.location.pathname` value, and will update to reflect changes + * to that value. + */ + path: string|null|undefined; + created(): void; + + /** + * Handler called when the path or queryParams change. + */ + _locationChanged(): void; + + /** + * Handler called when the route prefix and route path change. + */ + _routeChanged(): void; + + /** + * Handler called when the route queryParams change. + * + * @param queryParams A set of key/value pairs that are + * universally accessible to branches of the route tree. + */ + _routeQueryParamsChanged(queryParams: object|null): void; + } + + const AppRouteConverterBehavior: object; +} diff --git a/bower_components/app-route/app-route-converter-behavior.html b/bower_components/app-route/app-route-converter-behavior.html new file mode 100644 index 00000000..66a7b5b8 --- /dev/null +++ b/bower_components/app-route/app-route-converter-behavior.html @@ -0,0 +1,107 @@ + + diff --git a/bower_components/app-route/app-route-converter.d.ts b/bower_components/app-route/app-route-converter.d.ts new file mode 100644 index 00000000..d6435419 --- /dev/null +++ b/bower_components/app-route/app-route-converter.d.ts @@ -0,0 +1,70 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-route-converter.html + */ + +/// +/// + +/** + * `app-route-converter` provides a means to convert a path and query + * parameters into a route object and vice versa. This produced route object + * is to be fed into route-consuming elements such as `app-route`. + * + * > n.b. This element is intended to be a primitive of the routing system and for + * creating bespoke routing solutions from scratch. To simply include routing in + * an app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html) + * and [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html). + * + * An example of a route object that describes + * `https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux` + * and should be passed to other `app-route` elements: + * + * { + * prefix: '', + * path: '/elements/app-route-converter', + * __queryParams: { + * foo: 'bar', + * baz: 'qux' + * } + * } + * + * `__queryParams` is private to discourage directly data-binding to it. This is so + * that routing elements like `app-route` can intermediate changes to the query + * params and choose whether to propagate them upstream or not. `app-route` for + * example will not propagate changes to its `queryParams` property if it is not + * currently active. A public queryParams object will also be produced in which you + * should perform data-binding operations. + * + * Example Usage: + * + * + * + * + * + * + * + * + * + * This is a simplified implementation of the `app-location` element. Here the + * `iron-location` produces a path and a query, the `iron-query-params` consumes + * the query and produces a queryParams object, and the `app-route-converter` + * consumes the path and the query params and converts it into a route which is in + * turn is consumed by the `app-route`. + */ +interface AppRouteConverterElement extends Polymer.Element, Polymer.AppRouteConverterBehavior { +} + +interface HTMLElementTagNameMap { + "app-route-converter": AppRouteConverterElement; +} diff --git a/bower_components/app-route/app-route-converter.html b/bower_components/app-route/app-route-converter.html new file mode 100644 index 00000000..a87fb21f --- /dev/null +++ b/bower_components/app-route/app-route-converter.html @@ -0,0 +1,79 @@ + + + + + + + + diff --git a/bower_components/app-route/app-route.d.ts b/bower_components/app-route/app-route.d.ts new file mode 100644 index 00000000..c7113f57 --- /dev/null +++ b/bower_components/app-route/app-route.d.ts @@ -0,0 +1,127 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * app-route.html + */ + +/// + +/** + * `app-route` is an element that enables declarative, self-describing routing + * for a web app. + * + * > *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!* + * + * In its typical usage, a `app-route` element consumes an object that describes + * some state about the current route, via the `route` property. It then parses + * that state using the `pattern` property, and produces two artifacts: some `data` + * related to the `route`, and a `tail` that contains the rest of the `route` that + * did not match. + * + * Here is a basic example, when used with `app-location`: + * + * + * + * + * + * In the above example, the `app-location` produces a `route` value. Then, the + * `route.path` property is matched by comparing it to the `pattern` property. If + * the `pattern` property matches `route.path`, the `app-route` will set or update + * its `data` property with an object whose properties correspond to the parameters + * in `pattern`. So, in the above example, if `route.path` was `'/about'`, the value + * of `data` would be `{"page": "about"}`. + * + * The `tail` property represents the remaining part of the route state after the + * `pattern` has been applied to a matching `route`. + * + * Here is another example, where `tail` is used: + * + * + * + * + * + * + * + * In the above example, there are two `app-route` elements. The first + * `app-route` consumes a `route`. When the `route` is matched, the first + * `app-route` also produces `routeData` from its `data`, and `subroute` from + * its `tail`. The second `app-route` consumes the `subroute`, and when it + * matches, it produces an object called `subrouteData` from its `data`. + * + * So, when `route.path` is `'/about'`, the `routeData` object will look like + * this: `{ page: 'about' }` + * + * And `subrouteData` will be null. However, if `route.path` changes to + * `'/article/123'`, the `routeData` object will look like this: + * `{ page: 'article' }` + * + * And the `subrouteData` will look like this: `{ id: '123' }` + * + * `app-route` is responsive to bi-directional changes to the `data` objects + * they produce. So, if `routeData.page` changed from `'article'` to `'about'`, + * the `app-route` will update `route.path`. This in-turn will update the + * `app-location`, and cause the global location bar to change its value. + */ +interface AppRouteElement extends Polymer.Element { + + /** + * The URL component managed by this element. + */ + route: object|null|undefined; + + /** + * The pattern of slash-separated segments to match `route.path` against. + * + * For example the pattern "/foo" will match "/foo" or "/foo/bar" + * but not "/foobar". + * + * Path segments like `/:named` are mapped to properties on the `data` + * object. + */ + pattern: string|null|undefined; + + /** + * The parameterized values that are extracted from the route as + * described by `pattern`. + */ + data: object|null|undefined; + + /** + * Auto activate route if path empty + */ + autoActivate: boolean|null|undefined; + _queryParamsUpdating: boolean|null|undefined; + queryParams: object|null; + + /** + * The part of `route.path` NOT consumed by `pattern`. + */ + tail: object|null|undefined; + + /** + * Whether the current route is active. True if `route.path` matches the + * `pattern`, false otherwise. + */ + readonly active: boolean|null|undefined; + _matched: string|null; + created(): void; +} + +interface HTMLElementTagNameMap { + "app-route": AppRouteElement; +} diff --git a/bower_components/app-route/app-route.html b/bower_components/app-route/app-route.html new file mode 100644 index 00000000..cf4d7a87 --- /dev/null +++ b/bower_components/app-route/app-route.html @@ -0,0 +1,431 @@ + + + + + + + diff --git a/bower_components/app-route/bower.json b/bower_components/app-route/bower.json new file mode 100644 index 00000000..f1679dcf --- /dev/null +++ b/bower_components/app-route/bower.json @@ -0,0 +1,65 @@ +{ + "name": "app-route", + "authors": [ + "The Polymer Authors" + ], + "description": "App routing expressed as Polymer Custom Elements.", + "main": [ + "app-route.html", + "app-location.html", + "app-route-converter.html" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/app-route", + "private": true, + "ignore": [], + "dependencies": { + "iron-location": "PolymerElements/iron-location#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "google-youtube": "GoogleWebComponents/google-youtube#1 - 2", + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-pages": "PolymerElements/iron-pages#1 - 2", + "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", + "paper-card": "PolymerElements/paper-card#1 - 2", + "paper-icon-button": "polymerelements/paper-icon-button#1 - 2", + "paper-input": "polymerelements/paper-input#1 - 2", + "paper-spinner": "PolymerElements/paper-spinner#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-toggle-button": "polymerelements/paper-toggle-button#1 - 2", + "url": "webcomponents/URL#^0.5.7", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-location": "polymerelements/iron-location#^0.8.1", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "google-youtube": "GoogleWebComponents/google-youtube#^1.2.1", + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.0", + "iron-pages": "PolymerElements/iron-pages#^1.0.7", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "paper-card": "PolymerElements/paper-card#^1.1.1", + "paper-icon-button": "polymerelements/paper-icon-button#^v1.0.0", + "paper-input": "polymerelements/paper-input#^1.1.2", + "paper-spinner": "PolymerElements/paper-spinner#^1.1.1", + "paper-styles": "polymerelements/paper-styles#^1.0.13", + "paper-toggle-button": "polymerelements/paper-toggle-button#^1.0.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/app-route/demo/data-loading-demo.html b/bower_components/app-route/demo/data-loading-demo.html new file mode 100644 index 00000000..20797f7f --- /dev/null +++ b/bower_components/app-route/demo/data-loading-demo.html @@ -0,0 +1,35 @@ + + + + + + + + + carbon-route data loading example + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-route/demo/data-loading-demo/flickr-image-page.html b/bower_components/app-route/demo/data-loading-demo/flickr-image-page.html new file mode 100644 index 00000000..3b39a0cc --- /dev/null +++ b/bower_components/app-route/demo/data-loading-demo/flickr-image-page.html @@ -0,0 +1,106 @@ + + + + + + + + + + + diff --git a/bower_components/app-route/demo/data-loading-demo/flickr-search-demo.html b/bower_components/app-route/demo/data-loading-demo/flickr-search-demo.html new file mode 100644 index 00000000..eb35a8a1 --- /dev/null +++ b/bower_components/app-route/demo/data-loading-demo/flickr-search-demo.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + diff --git a/bower_components/app-route/demo/data-loading-demo/flickr-search-page.html b/bower_components/app-route/demo/data-loading-demo/flickr-search-page.html new file mode 100644 index 00000000..04276abb --- /dev/null +++ b/bower_components/app-route/demo/data-loading-demo/flickr-search-page.html @@ -0,0 +1,107 @@ + + + + + + + + + + + diff --git a/bower_components/app-route/demo/index.html b/bower_components/app-route/demo/index.html new file mode 100644 index 00000000..22f297e5 --- /dev/null +++ b/bower_components/app-route/demo/index.html @@ -0,0 +1,195 @@ + + + + + + +app-route Demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-route/demo/simple-demo.html b/bower_components/app-route/demo/simple-demo.html new file mode 100644 index 00000000..98cc1719 --- /dev/null +++ b/bower_components/app-route/demo/simple-demo.html @@ -0,0 +1,116 @@ + + + + + + +app-route Demo + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-route/demo/youtube-demo/route-info.html b/bower_components/app-route/demo/youtube-demo/route-info.html new file mode 100644 index 00000000..90743081 --- /dev/null +++ b/bower_components/app-route/demo/youtube-demo/route-info.html @@ -0,0 +1,44 @@ + + + + + + + diff --git a/bower_components/app-route/demo/youtube-demo/search-results.html b/bower_components/app-route/demo/youtube-demo/search-results.html new file mode 100644 index 00000000..87cc856a --- /dev/null +++ b/bower_components/app-route/demo/youtube-demo/search-results.html @@ -0,0 +1,59 @@ + + + + + + + + + diff --git a/bower_components/app-route/demo/youtube-demo/video-viewer.html b/bower_components/app-route/demo/youtube-demo/video-viewer.html new file mode 100644 index 00000000..ca274c61 --- /dev/null +++ b/bower_components/app-route/demo/youtube-demo/video-viewer.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-route/demo/youtube-demo/youtube-lite.html b/bower_components/app-route/demo/youtube-demo/youtube-lite.html new file mode 100644 index 00000000..a7af9a9a --- /dev/null +++ b/bower_components/app-route/demo/youtube-demo/youtube-lite.html @@ -0,0 +1,178 @@ + + + + + + + + + diff --git a/bower_components/app-route/demo/youtube-demo/youtube-search.html b/bower_components/app-route/demo/youtube-demo/youtube-search.html new file mode 100644 index 00000000..9d8612d3 --- /dev/null +++ b/bower_components/app-route/demo/youtube-demo/youtube-search.html @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + diff --git a/bower_components/app-route/demo/youtube-demo/youtube-toolbar.html b/bower_components/app-route/demo/youtube-demo/youtube-toolbar.html new file mode 100644 index 00000000..a1f3ff53 --- /dev/null +++ b/bower_components/app-route/demo/youtube-demo/youtube-toolbar.html @@ -0,0 +1,179 @@ + + + + + + + + + + diff --git a/bower_components/app-route/index.html b/bower_components/app-route/index.html new file mode 100644 index 00000000..5b354f51 --- /dev/null +++ b/bower_components/app-route/index.html @@ -0,0 +1,27 @@ + + + + + + app-router + + + + + + + + + + + + + diff --git a/bower_components/app-route/package-lock.json b/bower_components/app-route/package-lock.json new file mode 100644 index 00000000..73306711 --- /dev/null +++ b/bower_components/app-route/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/app-route", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.5" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.5" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.5.tgz", + "integrity": "sha512-ZPFmE9m1svkDUy9sK2/TaUYLEKslrETZFiH4AlVVEN7Wtow7sD3RCD6zSq/44vaiZxzQlKi769iL2yR/a+BQxg==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.5" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.5" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.5" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/app-route/package.json b/bower_components/app-route/package.json new file mode 100644 index 00000000..c29cd7cc --- /dev/null +++ b/bower_components/app-route/package.json @@ -0,0 +1,15 @@ +{ + "name": "@polymer/app-route", + "private": true, + "description": "App routing expressed as Polymer Custom Elements.", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.1.1", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/app-route/test/app-example-1.html b/bower_components/app-route/test/app-example-1.html new file mode 100644 index 00000000..e86a7038 --- /dev/null +++ b/bower_components/app-route/test/app-example-1.html @@ -0,0 +1,45 @@ + + + + + + + + + diff --git a/bower_components/app-route/test/app-example-2.html b/bower_components/app-route/test/app-example-2.html new file mode 100644 index 00000000..c4e097e0 --- /dev/null +++ b/bower_components/app-route/test/app-example-2.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/app-route/test/app-location.html b/bower_components/app-route/test/app-location.html new file mode 100644 index 00000000..0eb77ecc --- /dev/null +++ b/bower_components/app-route/test/app-location.html @@ -0,0 +1,188 @@ + + + + + app-location + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-route/test/app-route-converter.html b/bower_components/app-route/test/app-route-converter.html new file mode 100644 index 00000000..b74eaba6 --- /dev/null +++ b/bower_components/app-route/test/app-route-converter.html @@ -0,0 +1,56 @@ + + + + + app-route-converter + + + + + + + + + + + + + + diff --git a/bower_components/app-route/test/app-route.html b/bower_components/app-route/test/app-route.html new file mode 100644 index 00000000..0e54934d --- /dev/null +++ b/bower_components/app-route/test/app-route.html @@ -0,0 +1,525 @@ + + + + + app-route + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/app-route/test/index.html b/bower_components/app-route/test/index.html new file mode 100644 index 00000000..f82736c9 --- /dev/null +++ b/bower_components/app-route/test/index.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + diff --git a/bower_components/app-route/test/observer-tester.html b/bower_components/app-route/test/observer-tester.html new file mode 100644 index 00000000..d0fc46a1 --- /dev/null +++ b/bower_components/app-route/test/observer-tester.html @@ -0,0 +1,37 @@ + + + + + + + + + + diff --git a/bower_components/app-route/test/redirection.html b/bower_components/app-route/test/redirection.html new file mode 100644 index 00000000..6bb0cad1 --- /dev/null +++ b/bower_components/app-route/test/redirection.html @@ -0,0 +1,37 @@ + + + + + + + + + + + + diff --git a/bower_components/app-route/test/test-app-example-1.html b/bower_components/app-route/test/test-app-example-1.html new file mode 100644 index 00000000..6e5e491c --- /dev/null +++ b/bower_components/app-route/test/test-app-example-1.html @@ -0,0 +1,111 @@ + + + + + app-route + + + + + + + + + + + + + + diff --git a/bower_components/app-route/test/test-app-example-2.html b/bower_components/app-route/test/test-app-example-2.html new file mode 100644 index 00000000..b94a3f25 --- /dev/null +++ b/bower_components/app-route/test/test-app-example-2.html @@ -0,0 +1,76 @@ + + + + + app-route + + + + + + + + + + + + + + diff --git a/bower_components/app-route/test/test-observer-app.html b/bower_components/app-route/test/test-observer-app.html new file mode 100644 index 00000000..ae4e3537 --- /dev/null +++ b/bower_components/app-route/test/test-observer-app.html @@ -0,0 +1,67 @@ + + + + + + app-route 0bserver Test + + + + + + + + + + + + + + + + diff --git a/bower_components/async/.bower.json b/bower_components/async/.bower.json new file mode 100644 index 00000000..a2e40778 --- /dev/null +++ b/bower_components/async/.bower.json @@ -0,0 +1,67 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "main": "lib/async.js", + "keywords": [ + "async", + "callback", + "utility", + "module" + ], + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/caolan/async.git" + }, + "devDependencies": { + "benchmark": "bestiejs/benchmark.js", + "bluebird": "^2.9.32", + "chai": "^3.1.0", + "coveralls": "^2.11.2", + "es6-promise": "^2.3.0", + "jscs": "^1.13.1", + "jshint": "~2.8.0", + "karma": "^0.13.2", + "karma-browserify": "^4.2.1", + "karma-firefox-launcher": "^0.1.6", + "karma-mocha": "^0.2.0", + "karma-mocha-reporter": "^1.0.2", + "lodash": "^3.9.0", + "mkdirp": "~0.5.1", + "mocha": "^2.2.5", + "native-promise-only": "^0.8.0-a", + "nodeunit": ">0.0.0", + "nyc": "^2.1.0", + "rsvp": "^3.0.18", + "semver": "^4.3.6", + "uglify-js": "~2.4.0", + "xyz": "^0.5.0", + "yargs": "~3.9.1" + }, + "moduleType": [ + "amd", + "globals", + "node" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "authors": [ + "Caolan McMahon" + ], + "version": "1.5.2", + "homepage": "https://github.com/caolan/async", + "_release": "1.5.2", + "_resolution": { + "type": "version", + "tag": "v1.5.2", + "commit": "a47eef3dac38d593180b1e2eaed7b512b022cb9f" + }, + "_source": "https://github.com/caolan/async.git", + "_target": "^1.5.0", + "_originalSource": "async" +} \ No newline at end of file diff --git a/bower_components/async/CHANGELOG.md b/bower_components/async/CHANGELOG.md new file mode 100644 index 00000000..f15e0812 --- /dev/null +++ b/bower_components/async/CHANGELOG.md @@ -0,0 +1,125 @@ +# v1.5.2 +- Allow using `"consructor"` as an argument in `memoize` (#998) +- Give a better error messsage when `auto` dependency checking fails (#994) +- Various doc updates (#936, #956, #979, #1002) + +# v1.5.1 +- Fix issue with `pause` in `queue` with concurrency enabled (#946) +- `while` and `until` now pass the final result to callback (#963) +- `auto` will properly handle concurrency when there is no callback (#966) +- `auto` will now properly stop execution when an error occurs (#988, #993) +- Various doc fixes (#971, #980) + +# v1.5.0 + +- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892) +- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873) +- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637) +- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891) +- Various code simplifications (#896, #904) +- Various doc fixes :scroll: (#890, #894, #903, #905, #912) + +# v1.4.2 + +- Ensure coverage files don't get published on npm (#879) + +# v1.4.1 + +- Add in overlooked `detectLimit` method (#866) +- Removed unnecessary files from npm releases (#861) +- Removed usage of a reserved word to prevent :boom: in older environments (#870) + +# v1.4.0 + +- `asyncify` now supports promises (#840) +- Added `Limit` versions of `filter` and `reject` (#836) +- Add `Limit` versions of `detect`, `some` and `every` (#828, #829) +- `some`, `every` and `detect` now short circuit early (#828, #829) +- Improve detection of the global object (#804), enabling use in WebWorkers +- `whilst` now called with arguments from iterator (#823) +- `during` now gets called with arguments from iterator (#824) +- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0)) + + +# v1.3.0 + +New Features: +- Added `constant` +- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806) +- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800) +- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793) +- `async` should work better in Web Workers due to better `root` detection (#804) +- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642) +- Various internal updates (#786, #801, #802, #803) +- Various doc fixes (#790, #794) + +Bug Fixes: +- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783) + + +# v1.2.1 + +Bug Fix: + +- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) + + +# v1.2.0 + +New Features: + +- Added `timesLimit` (#743) +- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772) + +Bug Fixes: + +- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777) + + +# v1.1.1 + +Bug Fix: + +- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) + + +# v1.1.0 + +New Features: + +- `cargo` now supports all of the same methods and event callbacks as `queue`. +- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769) +- Optimized `map`, `eachOf`, and `waterfall` families of functions +- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667). +- The callback is now optional for the composed results of `compose` and `seq`. (#618) +- Reduced file size by 4kb, (minified version by 1kb) +- Added code coverage through `nyc` and `coveralls` (#768) + +Bug Fixes: + +- `forever` will no longer stack overflow with a synchronous iterator (#622) +- `eachLimit` and other limit functions will stop iterating once an error occurs (#754) +- Always pass `null` in callbacks when there is no error (#439) +- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668) +- `each` and family will properly handle an empty array (#578) +- `eachSeries` and family will finish if the underlying array is modified during execution (#557) +- `queue` will throw if a non-function is passed to `q.push()` (#593) +- Doc fixes (#629, #766) + + +# v1.0.0 + +No known breaking changes, we are simply complying with semver from here on out. + +Changes: + +- Start using a changelog! +- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321) +- Detect deadlocks in `auto` (#663) +- Better support for require.js (#527) +- Throw if queue created with concurrency `0` (#714) +- Fix unneeded iteration in `queue.resume()` (#758) +- Guard against timer mocking overriding `setImmediate` (#609 #611) +- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729) +- Use single noop function internally (#546) +- Optimize internal `_each`, `_map` and `_keys` functions. diff --git a/bower_components/async/LICENSE b/bower_components/async/LICENSE new file mode 100644 index 00000000..8f296985 --- /dev/null +++ b/bower_components/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010-2014 Caolan McMahon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/bower_components/async/Makefile b/bower_components/async/Makefile new file mode 100644 index 00000000..87279f40 --- /dev/null +++ b/bower_components/async/Makefile @@ -0,0 +1,37 @@ +export PATH := ./node_modules/.bin/:$(PATH):./bin/ + +PACKAGE = asyncjs +XYZ = node_modules/.bin/xyz --repo git@github.com:caolan/async.git + +BUILDDIR = dist +SRC = lib/async.js + +all: lint test clean build + +build: $(wildcard lib/*.js) + mkdir -p $(BUILDDIR) + cp $(SRC) $(BUILDDIR)/async.js + uglifyjs $(BUILDDIR)/async.js -mc \ + --source-map $(BUILDDIR)/async.min.map \ + -o $(BUILDDIR)/async.min.js + +test: + nodeunit test + +clean: + rm -rf $(BUILDDIR) + +lint: + jshint $(SRC) test/*.js mocha_test/* perf/*.js + jscs $(SRC) test/*.js mocha_test/* perf/*.js + +.PHONY: test lint build all clean + + +.PHONY: release-major release-minor release-patch +release-major release-minor release-patch: all + ./support/sync-package-managers.js + git add --force *.json + git add --force $(BUILDDIR) + git commit -am "update minified build"; true + $(XYZ) --increment $(@:release-%=%) diff --git a/bower_components/async/README.md b/bower_components/async/README.md new file mode 100644 index 00000000..316c4050 --- /dev/null +++ b/bower_components/async/README.md @@ -0,0 +1,1877 @@ +# Async.js + +[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) +[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async) +[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master) +[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + + +Async is a utility module which provides straight-forward, powerful functions +for working with asynchronous JavaScript. Although originally designed for +use with [Node.js](http://nodejs.org) and installable via `npm install async`, +it can also be used directly in the browser. + +Async is also installable via: + +- [bower](http://bower.io/): `bower install async` +- [component](https://github.com/component/component): `component install + caolan/async` +- [jam](http://jamjs.org/): `jam install async` +- [spm](http://spmjs.io/): `spm install async` + +Async provides around 20 functions that include the usual 'functional' +suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns +for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these +functions assume you follow the Node.js convention of providing a single +callback as the last argument of your `async` function. + + +## Quick Examples + +```javascript +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); + +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); + +async.parallel([ + function(){ ... }, + function(){ ... } +], callback); + +async.series([ + function(){ ... }, + function(){ ... } +]); +``` + +There are many more functions available so take a look at the docs below for a +full list. This module aims to be comprehensive, so if you feel anything is +missing please create a GitHub issue for it. + +## Common Pitfalls [(StackOverflow)](http://stackoverflow.com/questions/tagged/async.js) +### Synchronous iteration functions + +If you get an error like `RangeError: Maximum call stack size exceeded.` or other stack overflow issues when using async, you are likely using a synchronous iterator. By *synchronous* we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with `async.setImmediate` to start a new call stack on the next tick of the event loop. + +This can also arise by accident if you callback early in certain cases: + +```js +async.eachSeries(hugeArray, function iterator(item, callback) { + if (inCache(item)) { + callback(null, cache[item]); // if many items are cached, you'll overflow + } else { + doSomeIO(item, callback); + } +}, function done() { + //... +}); +``` + +Just change it to: + +```js +async.eachSeries(hugeArray, function iterator(item, callback) { + if (inCache(item)) { + async.setImmediate(function () { + callback(null, cache[item]); + }); + } else { + doSomeIO(item, callback); + //... +``` + +Async guards against synchronous functions in some, but not all, cases. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with [`async.ensureAsync`](#ensureAsync) Functions that are asynchronous by their nature do not have this problem and don't need the extra callback deferral. + +If JavaScript's event loop is still a bit nebulous, check out [this article](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/) or [this talk](http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html) for more detailed information about how it works. + + +### Multiple callbacks + +Make sure to always `return` when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases. + +```js +async.waterfall([ + function (callback) { + getSomething(options, function (err, result) { + if (err) { + callback(new Error("failed getting something:" + err.message)); + // we should return here + } + // since we did not return, this callback still will be called and + // `processData` will be called twice + callback(null, result); + }); + }, + processData +], done) +``` + +It is always good practice to `return callback(err, result)` whenever a callback call is not the last statement of a function. + + +### Binding a context to an iterator + +This section is really about `bind`, not about `async`. If you are wondering how to +make `async` execute your iterators in a given context, or are confused as to why +a method of another library isn't working as an iterator, study this example: + +```js +// Here is a simple object with an (unnecessarily roundabout) squaring method +var AsyncSquaringLibrary = { + squareExponent: 2, + square: function(number, callback){ + var result = Math.pow(number, this.squareExponent); + setTimeout(function(){ + callback(null, result); + }, 200); + } +}; + +async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ + // result is [NaN, NaN, NaN] + // This fails because the `this.squareExponent` expression in the square + // function is not evaluated in the context of AsyncSquaringLibrary, and is + // therefore undefined. +}); + +async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ + // result is [1, 4, 9] + // With the help of bind we can attach a context to the iterator before + // passing it to async. Now the square function will be executed in its + // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` + // will be as expected. +}); +``` + +## Download + +The source is available for download from +[GitHub](https://github.com/caolan/async/blob/master/lib/async.js). +Alternatively, you can install using Node Package Manager (`npm`): + + npm install async + +As well as using Bower: + + bower install async + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed + +## In the Browser + +So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. + +Usage: + +```html + + +``` + +## Documentation + +Some functions are also available in the following forms: +* `Series` - the same as `` but runs only a single async operation at a time +* `Limit` - the same as `` but runs a maximum of `limit` async operations at a time + +### Collections + +* [`each`](#each), `eachSeries`, `eachLimit` +* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit` +* [`map`](#map), `mapSeries`, `mapLimit` +* [`filter`](#filter), `filterSeries`, `filterLimit` +* [`reject`](#reject), `rejectSeries`, `rejectLimit` +* [`reduce`](#reduce), [`reduceRight`](#reduceRight) +* [`detect`](#detect), `detectSeries`, `detectLimit` +* [`sortBy`](#sortBy) +* [`some`](#some), `someLimit` +* [`every`](#every), `everyLimit` +* [`concat`](#concat), `concatSeries` + +### Control Flow + +* [`series`](#seriestasks-callback) +* [`parallel`](#parallel), `parallelLimit` +* [`whilst`](#whilst), [`doWhilst`](#doWhilst) +* [`until`](#until), [`doUntil`](#doUntil) +* [`during`](#during), [`doDuring`](#doDuring) +* [`forever`](#forever) +* [`waterfall`](#waterfall) +* [`compose`](#compose) +* [`seq`](#seq) +* [`applyEach`](#applyEach), `applyEachSeries` +* [`queue`](#queue), [`priorityQueue`](#priorityQueue) +* [`cargo`](#cargo) +* [`auto`](#auto) +* [`retry`](#retry) +* [`iterator`](#iterator) +* [`times`](#times), `timesSeries`, `timesLimit` + +### Utils + +* [`apply`](#apply) +* [`nextTick`](#nextTick) +* [`memoize`](#memoize) +* [`unmemoize`](#unmemoize) +* [`ensureAsync`](#ensureAsync) +* [`constant`](#constant) +* [`asyncify`](#asyncify) +* [`wrapSync`](#wrapSync) +* [`log`](#log) +* [`dir`](#dir) +* [`noConflict`](#noConflict) + +## Collections + + + +### each(arr, iterator, [callback]) + +Applies the function `iterator` to each item in `arr`, in parallel. +The `iterator` is called with an item from the list, and a callback for when it +has finished. If the `iterator` passes an error to its `callback`, the main +`callback` (for the `each` function) is immediately called with the error. + +Note, that since this function applies `iterator` to each item in parallel, +there is no guarantee that the iterator functions will complete in order. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occurred, the `callback` should be run without + arguments or with an explicit `null` argument. The array index is not passed + to the iterator. If you need the index, use [`forEachOf`](#forEachOf). +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Examples__ + + +```js +// assuming openFiles is an array of file names and saveFile is a function +// to save the modified contents of that file: + +async.each(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +```js +// assuming openFiles is an array of file names + +async.each(openFiles, function(file, callback) { + + // Perform operation on file here. + console.log('Processing file ' + file); + + if( file.length > 32 ) { + console.log('This file name is too long'); + callback('File name too long'); + } else { + // Do work to process file here + console.log('File processed'); + callback(); + } +}, function(err){ + // if any of the file processing produced an error, err would equal that error + if( err ) { + // One of the iterations produced an error. + // All processing will now stop. + console.log('A file failed to process'); + } else { + console.log('All files have been processed successfully'); + } +}); +``` + +__Related__ + +* eachSeries(arr, iterator, [callback]) +* eachLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + + +### forEachOf(obj, iterator, [callback]) + +Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator. + +__Arguments__ + +* `obj` - An object or array to iterate over. +* `iterator(item, key, callback)` - A function to apply to each item in `obj`. +The `key` is the item's key, or index in the case of an array. The iterator is +passed a `callback(err)` which must be called once it has completed. If no +error has occurred, the callback should be run without arguments or with an +explicit `null` argument. +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs. + +__Example__ + +```js +var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; +var configs = {}; + +async.forEachOf(obj, function (value, key, callback) { + fs.readFile(__dirname + value, "utf8", function (err, data) { + if (err) return callback(err); + try { + configs[key] = JSON.parse(data); + } catch (e) { + return callback(e); + } + callback(); + }) +}, function (err) { + if (err) console.error(err.message); + // configs is now a map of JSON data + doSomethingWith(configs); +}) +``` + +__Related__ + +* forEachOfSeries(obj, iterator, [callback]) +* forEachOfLimit(obj, limit, iterator, [callback]) + +--------------------------------------- + + +### map(arr, iterator, [callback]) + +Produces a new array of values by mapping each value in `arr` through +the `iterator` function. The `iterator` is called with an item from `arr` and a +callback for when it has finished processing. Each of these callback takes 2 arguments: +an `error`, and the transformed item from `arr`. If `iterator` passes an error to its +callback, the main `callback` (for the `map` function) is immediately called with the error. + +Note, that since this function applies the `iterator` to each item in parallel, +there is no guarantee that the `iterator` functions will complete in order. +However, the results array will be in the same order as the original `arr`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - *Optional* A callback which is called when all `iterator` + functions have finished, or an error occurs. Results is an array of the + transformed items from the `arr`. + +__Example__ + +```js +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +__Related__ +* mapSeries(arr, iterator, [callback]) +* mapLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + +### filter(arr, iterator, [callback]) + +__Alias:__ `select` + +Returns a new array of all the values in `arr` which pass an async truth test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. This operation is +performed in parallel, but the results array will be in the same order as the +original. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The `iterator` is passed a `callback(truthValue)`, which must be called with a + boolean argument once it has completed. +* `callback(results)` - *Optional* A callback which is called after all the `iterator` + functions have finished. + +__Example__ + +```js +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); +``` + +__Related__ + +* filterSeries(arr, iterator, [callback]) +* filterLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reject(arr, iterator, [callback]) + +The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. + +__Related__ + +* rejectSeries(arr, iterator, [callback]) +* rejectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reduce(arr, memo, iterator, [callback]) + +__Aliases:__ `inject`, `foldl` + +Reduces `arr` into a single value using an async `iterator` to return +each successive step. `memo` is the initial state of the reduction. +This function only operates in series. + +For performance reasons, it may make sense to split a call to this function into +a parallel map, and then use the normal `Array.prototype.reduce` on the results. +This function is for situations where each step in the reduction needs to be async; +if you can get the data before reducing it, then it's probably a good idea to do so. + +__Arguments__ + +* `arr` - An array to iterate over. +* `memo` - The initial state of the reduction. +* `iterator(memo, item, callback)` - A function applied to each item in the + array to produce the next step in the reduction. The `iterator` is passed a + `callback(err, reduction)` which accepts an optional error as its first + argument, and the state of the reduction as the second. If an error is + passed to the callback, the reduction is stopped and the main `callback` is + immediately called with the error. +* `callback(err, result)` - *Optional* A callback which is called after all the `iterator` + functions have finished. Result is the reduced value. + +__Example__ + +```js +async.reduce([1,2,3], 0, function(memo, item, callback){ + // pointless async: + process.nextTick(function(){ + callback(null, memo + item) + }); +}, function(err, result){ + // result is now equal to the last value of memo, which is 6 +}); +``` + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, [callback]) + +__Alias:__ `foldr` + +Same as [`reduce`](#reduce), only operates on `arr` in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, [callback]) + +Returns the first value in `arr` that passes an async truth test. The +`iterator` is applied in parallel, meaning the first iterator to return `true` will +fire the detect `callback` with that result. That means the result might not be +the first item in the original `arr` (in terms of order) that passes the test. + +If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The iterator is passed a `callback(truthValue)` which must be called with a + boolean argument once it has completed. **Note: this callback does not take an error as its first argument.** +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the `iterator` functions have finished. Result will be + the first item in the array that passes the truth test (iterator) or the + value `undefined` if none passed. **Note: this callback does not take an error as its first argument.** + +__Example__ + +```js +async.detect(['file1','file2','file3'], fs.exists, function(result){ + // result now equals the first file in the list that exists +}); +``` + +__Related__ + +* detectSeries(arr, iterator, [callback]) +* detectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### sortBy(arr, iterator, [callback]) + +Sorts a list by the results of running each `arr` value through an async `iterator`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, sortValue)` which must be called once it + has completed with an error (which can be `null`) and a value to use as the sort + criteria. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is the items from + the original `arr` sorted by the values returned by the `iterator` calls. + +__Example__ + +```js +async.sortBy(['file1','file2','file3'], function(file, callback){ + fs.stat(file, function(err, stats){ + callback(err, stats.mtime); + }); +}, function(err, results){ + // results is now the original array of files sorted by + // modified date +}); +``` + +__Sort Order__ + +By modifying the callback parameter the sorting order can be influenced: + +```js +//ascending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x); +}, function(err,result){ + //result callback +} ); + +//descending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x*-1); //<- x*-1 instead of x, turns the order around +}, function(err,result){ + //result callback +} ); +``` + +--------------------------------------- + + +### some(arr, iterator, [callback]) + +__Alias:__ `any` + +Returns `true` if at least one element in the `arr` satisfies an async test. +_The callback for each iterator call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. Once any iterator +call returns `true`, the main `callback` is immediately called. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)`` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** +__Example__ + +```js +async.some(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then at least one of the files exists +}); +``` + +__Related__ + +* someLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### every(arr, iterator, [callback]) + +__Alias:__ `all` + +Returns `true` if every element in `arr` satisfies an async test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `false`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** + +__Example__ + +```js +async.every(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then every file exists +}); +``` + +__Related__ + +* everyLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### concat(arr, iterator, [callback]) + +Applies `iterator` to each item in `arr`, concatenating the results. Returns the +concatenated list. The `iterator`s are called in parallel, and the results are +concatenated as they return. There is no guarantee that the results array will +be returned in the original order of `arr` passed to the `iterator` function. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, results)` which must be called once it + has completed with an error (which can be `null`) and an array of results. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is an array containing + the concatenated results of the `iterator` function. + +__Example__ + +```js +async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories +}); +``` + +__Related__ + +* concatSeries(arr, iterator, [callback]) + + +## Control Flow + + +### series(tasks, [callback]) + +Run the functions in the `tasks` array in series, each one running once the previous +function has completed. If any functions in the series pass an error to its +callback, no more functions are run, and `callback` is immediately called with the value of the error. +Otherwise, `callback` receives an array of results when `tasks` have completed. + +It is also possible to use an object instead of an array. Each property will be +run as a function, and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`series`](#series). + +**Note** that while many implementations preserve the order of object properties, the +[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) +explicitly states that + +> The mechanics and order of enumerating the properties is not specified. + +So if you rely on the order in which your series of functions are executed, and want +this to work on all platforms, consider using an array. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +__Example__ + +```js +async.series([ + function(callback){ + // do some stuff ... + callback(null, 'one'); + }, + function(callback){ + // do some more stuff ... + callback(null, 'two'); + } +], +// optional callback +function(err, results){ + // results is now equal to ['one', 'two'] +}); + + +// an example using an object instead of an array +async.series({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equal to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its +callback, the main `callback` is immediately called with the value of the error. +Once the `tasks` have completed, the results are passed to the final `callback` as an +array. + +**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or perform any I/O, they will actually be executed in series. Any synchronous setup sections for each task will happen one after the other. JavaScript remains single-threaded. + +It is also possible to use an object instead of an array. Each property will be +run as a function and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`parallel`](#parallel). + + +__Arguments__ + +* `tasks` - An array or object containing functions to run. Each function is passed + a `callback(err, result)` which it must call on completion with an error `err` + (which can be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed successfully. This function gets a results array (or object) containing all + the result arguments passed to the task callbacks. + +__Example__ + +```js +async.parallel([ + function(callback){ + setTimeout(function(){ + callback(null, 'one'); + }, 200); + }, + function(callback){ + setTimeout(function(){ + callback(null, 'two'); + }, 100); + } +], +// optional callback +function(err, results){ + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}); + + +// an example using an object instead of an array +async.parallel({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equals to: {one: 1, two: 2} +}); +``` + +__Related__ + +* parallelLimit(tasks, limit, [callback]) + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +__Arguments__ + +* `test()` - synchronous truth test to perform before each execution of `fn`. +* `fn(callback)` - A function which is called each time `test` passes. The function is + passed a `callback(err)`, which must be called once it has completed with an + optional `err` argument. +* `callback(err, [results])` - A callback which is called after the test + function has failed and repeated execution of `fn` has stopped. `callback` + will be passed an error and any arguments passed to the final `fn`'s callback. + +__Example__ + +```js +var count = 0; + +async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(function () { + callback(null, count); + }, 1000); + }, + function (err, n) { + // 5 seconds have passed, n = 5 + } +); +``` + +--------------------------------------- + + +### doWhilst(fn, test, callback) + +The post-check version of [`whilst`](#whilst). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, +or an error occurs. `callback` will be passed an error and any arguments passed +to the final `fn`'s callback. + +The inverse of [`whilst`](#whilst). + +--------------------------------------- + + +### doUntil(fn, test, callback) + +Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. + +--------------------------------------- + + +### during(test, fn, callback) + +Like [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error. + +__Example__ + +```js +var count = 0; + +async.during( + function (callback) { + return callback(null, count < 5); + }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doDuring(fn, test, callback) + +The post-check version of [`during`](#during). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function. + +--------------------------------------- + + +### forever(fn, [errback]) + +Calls the asynchronous function `fn` with a callback parameter that allows it to +call itself again, in series, indefinitely. + +If an error is passed to the callback then `errback` is called with the +error, and execution stops, otherwise it will never be called. + +```js +async.forever( + function(next) { + // next is suitable for passing to things that need a callback(err [, whatever]); + // it will result in this function being called again. + }, + function(err) { + // if next is called with a value in its first parameter, it will appear + // in here as 'err', and execution will stop. + } +); +``` + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs the `tasks` array of functions in series, each passing their results to the next in +the array. However, if any of the `tasks` pass an error to their own callback, the +next function is not executed, and the main `callback` is immediately called with +the error. + +__Arguments__ + +* `tasks` - An array of functions to run, each function is passed a + `callback(err, result1, result2, ...)` it must call on completion. The first + argument is an error (which can be `null`) and any further arguments will be + passed as arguments in order to the next task. +* `callback(err, [results])` - An optional callback to run once all the functions + have completed. This will be passed the results of the last task's callback. + + + +__Example__ + +```js +async.waterfall([ + function(callback) { + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); + }, + function(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); + } +], function (err, result) { + // result now equals 'done' +}); +``` +Or, with named functions: + +```js +async.waterfall([ + myFirstFunction, + mySecondFunction, + myLastFunction, +], function (err, result) { + // result now equals 'done' +}); +function myFirstFunction(callback) { + callback(null, 'one', 'two'); +} +function mySecondFunction(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); +} +function myLastFunction(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); +} +``` + +Or, if you need to pass any argument to the first function: + +```js +async.waterfall([ + async.apply(myFirstFunction, 'zero'), + mySecondFunction, + myLastFunction, +], function (err, result) { + // result now equals 'done' +}); +function myFirstFunction(arg1, callback) { + // arg1 now equals 'zero' + callback(null, 'one', 'two'); +} +function mySecondFunction(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); +} +function myLastFunction(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); +} +``` + +--------------------------------------- + +### compose(fn1, fn2...) + +Creates a function which is a composition of the passed asynchronous +functions. Each function consumes the return value of the function that +follows. Composing functions `f()`, `g()`, and `h()` would produce the result of +`f(g(h()))`, only this version uses callbacks to obtain the return values. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +function add1(n, callback) { + setTimeout(function () { + callback(null, n + 1); + }, 10); +} + +function mul3(n, callback) { + setTimeout(function () { + callback(null, n * 3); + }, 10); +} + +var add1mul3 = async.compose(mul3, add1); + +add1mul3(4, function (err, result) { + // result now equals 15 +}); +``` + +--------------------------------------- + +### seq(fn1, fn2...) + +Version of the compose function that is more natural to read. +Each function consumes the return value of the previous function. +It is the equivalent of [`compose`](#compose) with the arguments reversed. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +// Requires lodash (or underscore), express3 and dresende's orm2. +// Part of an app, that fetches cats of the logged user. +// This example uses `seq` function to avoid overnesting and error +// handling clutter. +app.get('/cats', function(request, response) { + var User = request.models.User; + async.seq( + _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) + function(user, fn) { + user.getCats(fn); // 'getCats' has signature (callback(err, data)) + } + )(req.session.user_id, function (err, cats) { + if (err) { + console.error(err); + response.json({ status: 'error', message: err.message }); + } else { + response.json({ status: 'ok', message: 'Cats found', data: cats }); + } + }); +}); +``` + +--------------------------------------- + +### applyEach(fns, args..., callback) + +Applies the provided arguments to each function in the array, calling +`callback` after all functions have completed. If you only provide the first +argument, then it will return a function which lets you pass in the +arguments as if it were a single function call. + +__Arguments__ + +* `fns` - the asynchronous functions to all call with the same arguments +* `args...` - any number of separate arguments to pass to the function +* `callback` - the final argument should be the callback, called when all + functions have completed processing + + +__Example__ + +```js +async.applyEach([enableSearch, updateSchema], 'bucket', callback); + +// partial application example: +async.each( + buckets, + async.applyEach([enableSearch, updateSchema]), + callback +); +``` + +__Related__ + +* applyEachSeries(tasks, args..., [callback]) + +--------------------------------------- + + +### queue(worker, [concurrency]) + +Creates a `queue` object with the specified `concurrency`. Tasks added to the +`queue` are processed in parallel (up to the `concurrency` limit). If all +`worker`s are in progress, the task is queued until one becomes available. +Once a `worker` completes a `task`, that `task`'s callback is called. + +__Arguments__ + +* `worker(task, callback)` - An asynchronous function for processing a queued + task, which must call its `callback(err)` argument when finished, with an + optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`. +* `concurrency` - An `integer` for determining how many `worker` functions should be + run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown. + +__Queue objects__ + +The `queue` object returned by this function has the following properties and +methods: + +* `length()` - a function returning the number of items waiting to be processed. +* `started` - a function returning whether or not any items have been pushed and processed by the queue +* `running()` - a function returning the number of items currently being processed. +* `workersList()` - a function returning the array of items currently being processed. +* `idle()` - a function returning false if there are items waiting or being processed, or true if not. +* `concurrency` - an integer for determining how many `worker` functions should be + run in parallel. This property can be changed after a `queue` is created to + alter the concurrency on-the-fly. +* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once + the `worker` has finished processing the task. Instead of a single task, a `tasks` array + can be submitted. The respective callback is used for every task in the list. +* `unshift(task, [callback])` - add a new task to the front of the `queue`. +* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, + and further tasks will be queued. +* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. +* `paused` - a boolean for determining whether the queue is in a paused state +* `pause()` - a function that pauses the processing of tasks until `resume()` is called. +* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. +* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. + +__Example__ + +```js +// create a queue object with concurrency 2 + +var q = async.queue(function (task, callback) { + console.log('hello ' + task.name); + callback(); +}, 2); + + +// assign a callback +q.drain = function() { + console.log('all items have been processed'); +} + +// add some items to the queue + +q.push({name: 'foo'}, function (err) { + console.log('finished processing foo'); +}); +q.push({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); + +// add some items to the queue (batch-wise) + +q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { + console.log('finished processing item'); +}); + +// add some items to the front of the queue + +q.unshift({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); +``` + + +--------------------------------------- + + +### priorityQueue(worker, concurrency) + +The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: + +* `push(task, priority, [callback])` - `priority` should be a number. If an array of + `tasks` is given, all tasks will be assigned the same priority. +* The `unshift` method was removed. + +--------------------------------------- + + +### cargo(worker, [payload]) + +Creates a `cargo` object with the specified payload. Tasks added to the +cargo will be processed altogether (up to the `payload` limit). If the +`worker` is in progress, the task is queued until it becomes available. Once +the `worker` has completed some tasks, each callback of those tasks is called. +Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work. + +While [queue](#queue) passes only one task to one of a group of workers +at a time, cargo passes an array of tasks to a single worker, repeating +when the worker is finished. + +__Arguments__ + +* `worker(tasks, callback)` - An asynchronous function for processing an array of + queued tasks, which must call its `callback(err)` argument when finished, with + an optional `err` argument. +* `payload` - An optional `integer` for determining how many tasks should be + processed per round; if omitted, the default is unlimited. + +__Cargo objects__ + +The `cargo` object returned by this function has the following properties and +methods: + +* `length()` - A function returning the number of items waiting to be processed. +* `payload` - An `integer` for determining how many tasks should be + process per round. This property can be changed after a `cargo` is created to + alter the payload on-the-fly. +* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called + once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` + can be submitted. The respective callback is used for every task in the list. +* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. +* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. +* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue) + +__Example__ + +```js +// create a cargo object with payload 2 + +var cargo = async.cargo(function (tasks, callback) { + for(var i=0; i +### auto(tasks, [concurrency], [callback]) + +Determines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied. + +If any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error. Functions also receive an object containing the results of functions which have completed so far. + +Note, all functions are called with a `results` object as a second argument, +so it is unsafe to pass functions in the `tasks` object which cannot handle the +extra argument. + +For example, this snippet of code: + +```js +async.auto({ + readData: async.apply(fs.readFile, 'data.txt', 'utf-8') +}, callback); +``` + +will have the effect of calling `readFile` with the results object as the last +argument, which will fail: + +```js +fs.readFile('data.txt', 'utf-8', cb, {}); +``` + +Instead, wrap the call to `readFile` in a function which does not forward the +`results` object: + +```js +async.auto({ + readData: function(cb, results){ + fs.readFile('data.txt', 'utf-8', cb); + } +}, callback); +``` + +__Arguments__ + +* `tasks` - An object. Each of its properties is either a function or an array of + requirements, with the function itself the last item in the array. The object's key + of a property serves as the name of the task defined by that property, + i.e. can be used when specifying requirements for other tasks. + The function receives two arguments: (1) a `callback(err, result)` which must be + called when finished, passing an `error` (which can be `null`) and the result of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions. +* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible. +* `callback(err, results)` - An optional callback which is called when all the + tasks have been completed. It receives the `err` argument if any `tasks` + pass an error to their callback. Results are always returned; however, if + an error occurs, no further `tasks` will be performed, and the results + object will only contain partial results. + + +__Example__ + +```js +async.auto({ + get_data: function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + make_folder: function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + }, + write_file: ['get_data', 'make_folder', function(callback, results){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + callback(null, 'filename'); + }], + email_link: ['write_file', function(callback, results){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + callback(null, {'file':results.write_file, 'email':'user@example.com'}); + }] +}, function(err, results) { + console.log('err = ', err); + console.log('results = ', results); +}); +``` + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + +```js +async.parallel([ + function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + } +], +function(err, results){ + async.series([ + function(callback){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + results.push('filename'); + callback(null); + }, + function(callback){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + callback(null, {'file':results.pop(), 'email':'user@example.com'}); + } + ]); +}); +``` + +For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding +new tasks much easier (and the code more readable). + + +--------------------------------------- + + +### retry([opts = {times: 5, interval: 0}| 5], task, [callback]) + +Attempts to get a successful response from `task` no more than `times` times before +returning an error. If the task is successful, the `callback` will be passed the result +of the successful task. If all attempts fail, the callback will be passed the error and +result (if any) of the final attempt. + +__Arguments__ + +* `opts` - Can be either an object with `times` and `interval` or a number. + * `times` - The number of attempts to make before giving up. The default is `5`. + * `interval` - The time to wait between retries, in milliseconds. The default is `0`. + * If `opts` is a number, the number specifies the number of times to retry, with the default interval of `0`. +* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` + which must be called when finished, passing `err` (which can be `null`) and the `result` of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions (if nested inside another control flow). +* `callback(err, results)` - An optional callback which is called when the + task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. + +The [`retry`](#retry) function can be used as a stand-alone control flow by passing a callback, as shown below: + +```js +// try calling apiMethod 3 times +async.retry(3, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +// try calling apiMethod 3 times, waiting 200 ms between each retry +async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +// try calling apiMethod the default 5 times no delay between each retry +async.retry(apiMethod, function(err, result) { + // do something with the result +}); +``` + +It can also be embedded within other control flow functions to retry individual methods +that are not as reliable, like this: + +```js +async.auto({ + users: api.getUsers.bind(api), + payments: async.retry(3, api.getPayments.bind(api)) +}, function(err, results) { + // do something with the results +}); +``` + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the `tasks` array, +returning a continuation to call the next one after that. It's also possible to +“peek” at the next iterator with `iterator.next()`. + +This function is used internally by the `async` module, but can be useful when +you want to manually control the flow of functions in series. + +__Arguments__ + +* `tasks` - An array of functions to run. + +__Example__ + +```js +var iterator = async.iterator([ + function(){ sys.p('one'); }, + function(){ sys.p('two'); }, + function(){ sys.p('three'); } +]); + +node> var iterator2 = iterator(); +'one' +node> var iterator3 = iterator2(); +'two' +node> iterator3(); +'three' +node> var nextfn = iterator2.next(); +node> nextfn(); +'three' +``` + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied. + +Useful as a shorthand when combined with other control flow functions. Any arguments +passed to the returned function are added to the arguments originally passed +to apply. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to automatically apply when the + continuation is called. + +__Example__ + +```js +// using apply + +async.parallel([ + async.apply(fs.writeFile, 'testfile1', 'test1'), + async.apply(fs.writeFile, 'testfile2', 'test2'), +]); + + +// the same process without using apply + +async.parallel([ + function(callback){ + fs.writeFile('testfile1', 'test1', callback); + }, + function(callback){ + fs.writeFile('testfile2', 'test2', callback); + } +]); +``` + +It's possible to pass any number of additional arguments when calling the +continuation: + +```js +node> var fn = async.apply(sys.puts, 'one'); +node> fn('two', 'three'); +one +two +three +``` + +--------------------------------------- + + +### nextTick(callback), setImmediate(callback) + +Calls `callback` on a later loop around the event loop. In Node.js this just +calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` +if available, otherwise `setTimeout(callback, 0)`, which means other higher priority +events may precede the execution of `callback`. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* `callback` - The function to call on a later loop around the event loop. + +__Example__ + +```js +var call_order = []; +async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two'] +}); +call_order.push('one') +``` + + +### times(n, iterator, [callback]) + +Calls the `iterator` function `n` times, and accumulates results in the same manner +you would use with [`map`](#map). + +__Arguments__ + +* `n` - The number of times to run the function. +* `iterator` - The function to call `n` times. +* `callback` - see [`map`](#map) + +__Example__ + +```js +// Pretend this is some complicated async factory +var createUser = function(id, callback) { + callback(null, { + id: 'user' + id + }) +} +// generate 5 users +async.times(5, function(n, next){ + createUser(n, function(err, user) { + next(err, user) + }) +}, function(err, users) { + // we should now have 5 users +}); +``` + +__Related__ + +* timesSeries(n, iterator, [callback]) +* timesLimit(n, limit, iterator, [callback]) + + +## Utils + + +### memoize(fn, [hasher]) + +Caches the results of an `async` function. When creating a hash to store function +results against, the callback is omitted from the hash and an optional hash +function can be used. + +If no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function. + +The cache of results is exposed as the `memo` property of the function returned +by `memoize`. + +__Arguments__ + +* `fn` - The function to proxy and cache results from. +* `hasher` - An optional function for generating a custom hash for storing + results. It has all the arguments applied to it apart from the callback, and + must be synchronous. + +__Example__ + +```js +var slow_fn = function (name, callback) { + // do something + callback(null, result); +}; +var fn = async.memoize(slow_fn); + +// fn can now be used as if it were slow_fn +fn('some name', function () { + // callback +}); +``` + + +### unmemoize(fn) + +Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized +form. Handy for testing. + +__Arguments__ + +* `fn` - the memoized function + +--------------------------------------- + + +### ensureAsync(fn) + +Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained. + +__Arguments__ + +* `fn` - an async function, one that expects a node-style callback as its last argument + +Returns a wrapped function with the exact same call signature as the function passed in. + +__Example__ + +```js +function sometimesAsync(arg, callback) { + if (cache[arg]) { + return callback(null, cache[arg]); // this would be synchronous!! + } else { + doSomeIO(arg, callback); // this IO would be asynchronous + } +} + +// this has a risk of stack overflows if many results are cached in a row +async.mapSeries(args, sometimesAsync, done); + +// this will defer sometimesAsync's callback if necessary, +// preventing stack overflows +async.mapSeries(args, async.ensureAsync(sometimesAsync), done); + +``` + +--------------------------------------- + + +### constant(values...) + +Returns a function that when called, calls-back with the values provided. Useful as the first function in a `waterfall`, or for plugging values in to `auto`. + +__Example__ + +```js +async.waterfall([ + async.constant(42), + function (value, next) { + // value === 42 + }, + //... +], callback); + +async.waterfall([ + async.constant(filename, "utf8"), + fs.readFile, + function (fileData, next) { + //... + } + //... +], callback); + +async.auto({ + hostname: async.constant("https://server.net/"), + port: findFreePort, + launchServer: ["hostname", "port", function (cb, options) { + startServer(options, cb); + }], + //... +}, callback); + +``` + +--------------------------------------- + + + +### asyncify(func) + +__Alias:__ `wrapSync` + +Take a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback. + +__Example__ + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(JSON.parse), + function (data, next) { + // data is the result of parsing the text. + // If there was a parsing error, it would have been caught. + } +], callback) +``` + +If the function passed to `asyncify` returns a Promise, that promises's resolved/rejected state will be used to call the callback, rather than simply the synchronous return value. Example: + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(function (contents) { + return db.model.create(contents); + }), + function (model, next) { + // `model` is the instantiated model object. + // If there was an error, this function would be skipped. + } +], callback) +``` + +This also means you can asyncify ES2016 `async` functions. + +```js +var q = async.queue(async.asyncify(async function (file) { + var intermediateStep = await processFile(file); + return await somePromise(intermediateStep) +})); + +q.push(files); +``` + +--------------------------------------- + + +### log(function, arguments) + +Logs the result of an `async` function to the `console`. Only works in Node.js or +in browsers that support `console.log` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.log` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); +}; +``` +```js +node> async.log(hello, 'world'); +'hello world' +``` + +--------------------------------------- + + +### dir(function, arguments) + +Logs the result of an `async` function to the `console` using `console.dir` to +display the properties of the resulting object. Only works in Node.js or +in browsers that support `console.dir` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.dir` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); +}; +``` +```js +node> async.dir(hello, 'world'); +{hello: 'world'} +``` + +--------------------------------------- + + +### noConflict() + +Changes the value of `async` back to its original value, returning a reference to the +`async` object. diff --git a/bower_components/async/bower.json b/bower_components/async/bower.json new file mode 100644 index 00000000..0ce24bab --- /dev/null +++ b/bower_components/async/bower.json @@ -0,0 +1,57 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "main": "lib/async.js", + "keywords": [ + "async", + "callback", + "utility", + "module" + ], + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/caolan/async.git" + }, + "devDependencies": { + "benchmark": "bestiejs/benchmark.js", + "bluebird": "^2.9.32", + "chai": "^3.1.0", + "coveralls": "^2.11.2", + "es6-promise": "^2.3.0", + "jscs": "^1.13.1", + "jshint": "~2.8.0", + "karma": "^0.13.2", + "karma-browserify": "^4.2.1", + "karma-firefox-launcher": "^0.1.6", + "karma-mocha": "^0.2.0", + "karma-mocha-reporter": "^1.0.2", + "lodash": "^3.9.0", + "mkdirp": "~0.5.1", + "mocha": "^2.2.5", + "native-promise-only": "^0.8.0-a", + "nodeunit": ">0.0.0", + "nyc": "^2.1.0", + "rsvp": "^3.0.18", + "semver": "^4.3.6", + "uglify-js": "~2.4.0", + "xyz": "^0.5.0", + "yargs": "~3.9.1" + }, + "moduleType": [ + "amd", + "globals", + "node" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "authors": [ + "Caolan McMahon" + ], + "version": "1.5.2" +} diff --git a/bower_components/async/component.json b/bower_components/async/component.json new file mode 100644 index 00000000..103558d6 --- /dev/null +++ b/bower_components/async/component.json @@ -0,0 +1,17 @@ +{ + "name": "async", + "description": "Higher-order functions and common patterns for asynchronous code", + "version": "1.5.2", + "keywords": [ + "async", + "callback", + "utility", + "module" + ], + "license": "MIT", + "main": "lib/async.js", + "repository": "caolan/async", + "scripts": [ + "lib/async.js" + ] +} diff --git a/bower_components/async/deps/nodeunit.css b/bower_components/async/deps/nodeunit.css new file mode 100644 index 00000000..274434a4 --- /dev/null +++ b/bower_components/async/deps/nodeunit.css @@ -0,0 +1,70 @@ +/*! + * Styles taken from qunit.css + */ + +h1#nodeunit-header, h1.nodeunit-header { + padding: 15px; + font-size: large; + background-color: #06b; + color: white; + font-family: 'trebuchet ms', verdana, arial; + margin: 0; +} + +h1#nodeunit-header a { + color: white; +} + +h2#nodeunit-banner { + height: 2em; + border-bottom: 1px solid white; + background-color: #eee; + margin: 0; + font-family: 'trebuchet ms', verdana, arial; +} +h2#nodeunit-banner.pass { + background-color: green; +} +h2#nodeunit-banner.fail { + background-color: red; +} + +h2#nodeunit-userAgent, h2.nodeunit-userAgent { + padding: 10px; + background-color: #eee; + color: black; + margin: 0; + font-size: small; + font-weight: normal; + font-family: 'trebuchet ms', verdana, arial; + font-size: 10pt; +} + +div#nodeunit-testrunner-toolbar { + background: #eee; + border-top: 1px solid black; + padding: 10px; + font-family: 'trebuchet ms', verdana, arial; + margin: 0; + font-size: 10pt; +} + +ol#nodeunit-tests { + font-family: 'trebuchet ms', verdana, arial; + font-size: 10pt; +} +ol#nodeunit-tests li strong { + cursor:pointer; +} +ol#nodeunit-tests .pass { + color: green; +} +ol#nodeunit-tests .fail { + color: red; +} + +p#nodeunit-testresult { + margin-left: 1em; + font-size: 10pt; + font-family: 'trebuchet ms', verdana, arial; +} diff --git a/bower_components/async/deps/nodeunit.js b/bower_components/async/deps/nodeunit.js new file mode 100644 index 00000000..6251ba13 --- /dev/null +++ b/bower_components/async/deps/nodeunit.js @@ -0,0 +1,2117 @@ +/*! + * Nodeunit + * https://github.com/caolan/nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * json2.js + * http://www.JSON.org/json2.js + * Public Domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ +nodeunit = (function(){ +/* + http://www.JSON.org/json2.js + 2010-11-17 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false, regexp: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +var JSON = {}; + +(function () { + "use strict"; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ +.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') +.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') +.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var assert = this.assert = {}; +var types = {}; +var core = {}; +var nodeunit = {}; +var reporter = {}; +/*global setTimeout: false, console: false */ +(function () { + + var async = {}; + + // global on the server, window in the browser + var root = this, + previous_async = root.async; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + else { + root.async = async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + //// cross-browser compatiblity functions //// + + var _forEach = function (arr, iterator) { + if (arr.forEach) { + return arr.forEach(iterator); + } + for (var i = 0; i < arr.length; i += 1) { + iterator(arr[i], i, arr); + } + }; + + var _map = function (arr, iterator) { + if (arr.map) { + return arr.map(iterator); + } + var results = []; + _forEach(arr, function (x, i, a) { + results.push(iterator(x, i, a)); + }); + return results; + }; + + var _reduce = function (arr, iterator, memo) { + if (arr.reduce) { + return arr.reduce(iterator, memo); + } + _forEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + var _indexOf = function (arr, item) { + if (arr.indexOf) { + return arr.indexOf(item); + } + for (var i = 0; i < arr.length; i += 1) { + if (arr[i] === item) { + return i; + } + } + return -1; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + if (typeof setImmediate === 'function') { + async.nextTick = function (fn) { + setImmediate(fn); + }; + } + else if (typeof process !== 'undefined' && process.nextTick) { + async.nextTick = process.nextTick; + } + else { + async.nextTick = function (fn) { + setTimeout(fn, 0); + }; + } + + async.forEach = function (arr, iterator, callback) { + if (!arr.length) { + return callback(); + } + var completed = 0; + _forEach(arr, function (x) { + iterator(x, function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(); + } + } + }); + }); + }; + + async.forEachSeries = function (arr, iterator, callback) { + if (!arr.length) { + return callback(); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed === arr.length) { + callback(); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + + + var doParallel = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEach].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.forEachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.forEachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + } + else { + callback(); + } + }); + }, function (err) { + main_callback(); + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.forEach(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + if (!keys.length) { + return callback(null); + } + + var completed = []; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + _forEach(listeners, function (fn) { + fn(); + }); + }; + + addListener(function () { + if (completed.length === keys.length) { + callback(null); + } + }); + + _forEach(keys, function (k) { + var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k]; + var taskCallback = function (err) { + if (err) { + callback(err); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + completed.push(k); + taskComplete(); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && _indexOf(completed, x) !== -1); + }, true); + }; + if (ready()) { + task[task.length - 1](taskCallback); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback); + } + }; + addListener(listener); + } + }); + }; + + async.waterfall = function (tasks, callback) { + if (!tasks.length) { + return callback(); + } + callback = callback || function () {}; + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.nextTick(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + async.parallel = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args || null); + }); + } + }, callback); + } + else { + var results = {}; + async.forEach(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (tasks.constructor === Array) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args || null); + }); + } + }, callback); + } + else { + var results = {}; + async.forEachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + }; + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + }; + return makeCallback(0); + }; + + async.apply = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.queue = function (worker, concurrency) { + var workers = 0; + var tasks = []; + var q = { + concurrency: concurrency, + push: function (data, callback) { + tasks.push({data: data, callback: callback}); + async.nextTick(q.process); + }, + process: function () { + if (workers < q.concurrency && tasks.length) { + var task = tasks.splice(0, 1)[0]; + workers += 1; + worker(task.data, function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + q.process(); + }); + } + }, + length: function () { + return tasks.length; + } + }; + return q; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _forEach(args, function (x) { + console[name](x); + }); + } + } + }])); + }; + }; + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + hasher = hasher || function (x) { + return x; + }; + return function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + callback.apply(null, memo[key]); + } + else { + fn.apply(null, args.concat([function () { + memo[key] = arguments; + callback.apply(null, arguments); + }])); + } + }; + }; + +}()); +(function(exports){ +/** + * This file is based on the node.js assert module, but with some small + * changes for browser-compatibility + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + */ + + +/** + * Added for browser compatibility + */ + +var _keys = function(obj){ + if(Object.keys) return Object.keys(obj); + if (typeof obj != 'object' && typeof obj != 'function') { + throw new TypeError('-'); + } + var keys = []; + for(var k in obj){ + if(obj.hasOwnProperty(k)) keys.push(k); + } + return keys; +}; + + + +// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 +// +// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! +// +// Originally from narwhal.js (http://narwhaljs.org) +// Copyright (c) 2009 Thomas Robinson <280north.com> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +var pSlice = Array.prototype.slice; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = exports; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({message: message, actual: actual, expected: expected}) + +assert.AssertionError = function AssertionError (options) { + this.name = "AssertionError"; + this.message = options.message; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + var stackStartFunction = options.stackStartFunction || fail; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } +}; +// code from util.inherits in node +assert.AssertionError.super_ = Error; + + +// EDITED FOR BROWSER COMPATIBILITY: replaced Object.create call +// TODO: test what effect this may have +var ctor = function () { this.constructor = assert.AssertionError; }; +ctor.prototype = Error.prototype; +assert.AssertionError.prototype = new ctor(); + + +assert.AssertionError.prototype.toString = function() { + if (this.message) { + return [this.name+":", this.message].join(' '); + } else { + return [ this.name+":" + , typeof this.expected !== 'undefined' ? JSON.stringify(this.expected) : 'undefined' + , this.operator + , typeof this.actual !== 'undefined' ? JSON.stringify(this.actual) : 'undefined' + ].join(" "); + } +}; + +// assert.AssertionError instanceof Error + +assert.AssertionError.__proto__ = Error.prototype; + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +assert.ok = function ok(value, message) { + if (!!!value) fail(value, true, message, "==", assert.ok); +}; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, "==", assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, "!=", assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, "deepEqual", assert.deepEqual); + } +}; + +var Buffer = null; +if (typeof require !== 'undefined' && typeof process !== 'undefined') { + try { + Buffer = require('buffer').Buffer; + } + catch (e) { + // May be a CommonJS environment other than Node.js + Buffer = null; + } +} + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.2.1 If the expcted value is a RegExp object, the actual value is + // equivalent if it is also a RegExp object that refers to the same source and options + } else if (actual instanceof RegExp && expected instanceof RegExp) { + return actual.source === expected.source && + actual.global === expected.global && + actual.ignoreCase === expected.ignoreCase && + actual.multiline === expected.multiline; + + } else if (Buffer && actual instanceof Buffer && expected instanceof Buffer) { + return (function() { + var i, len; + + for (i = 0, len = expected.length; i < len; i++) { + if (actual[i] !== expected[i]) { + return false; + } + } + return actual.length === expected.length; + })(); + // 7.3. Other pairs that do not both pass typeof value == "object", + // equivalence is determined by ==. + } else if (typeof actual != 'object' && typeof expected != 'object') { + return actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical "prototype" property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isUndefinedOrNull (value) { + return value === null || value === undefined; +} + +function isArguments (object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv (a, b) { + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical "prototype" property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + try{ + var ka = _keys(a), + kb = _keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key] )) + return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, "notDeepEqual", assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, "===", assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as determined by !==. +// assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, "!==", assert.notStrictEqual); + } +}; + +function expectedException(actual, expected) { + if (!actual || !expected) { + return false; + } + + if (expected instanceof RegExp) { + return expected.test(actual.message || actual); + } else if (actual instanceof expected) { + return true; + } else if (expected.call({}, actual) === true) { + return true; + } + + return false; +} + +function _throws(shouldThrow, block, expected, message) { + var actual; + + if (typeof expected === 'string') { + message = expected; + expected = null; + } + + try { + block(); + } catch (e) { + actual = e; + } + + message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + + (message ? ' ' + message : '.'); + + if (shouldThrow && !actual) { + fail('Missing expected exception' + message); + } + + if (!shouldThrow && expectedException(actual, expected)) { + fail('Got unwanted exception' + message); + } + + if ((shouldThrow && actual && expected && + !expectedException(actual, expected)) || (!shouldThrow && actual)) { + throw actual; + } +} + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert.throws = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function (err) { if (err) {throw err;}}; +})(assert); +(function(exports){ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * Only code on that line will be removed, it's mostly to avoid requiring code + * that is node specific + */ + +/** + * Module dependencies + */ + + + +/** + * Creates assertion objects representing the result of an assert call. + * Accepts an object or AssertionError as its argument. + * + * @param {object} obj + * @api public + */ + +exports.assertion = function (obj) { + return { + method: obj.method || '', + message: obj.message || (obj.error && obj.error.message) || '', + error: obj.error, + passed: function () { + return !this.error; + }, + failed: function () { + return Boolean(this.error); + } + }; +}; + +/** + * Creates an assertion list object representing a group of assertions. + * Accepts an array of assertion objects. + * + * @param {Array} arr + * @param {Number} duration + * @api public + */ + +exports.assertionList = function (arr, duration) { + var that = arr || []; + that.failures = function () { + var failures = 0; + for (var i = 0; i < this.length; i += 1) { + if (this[i].failed()) { + failures += 1; + } + } + return failures; + }; + that.passes = function () { + return that.length - that.failures(); + }; + that.duration = duration || 0; + return that; +}; + +/** + * Create a wrapper function for assert module methods. Executes a callback + * after it's complete with an assertion object representing the result. + * + * @param {Function} callback + * @api private + */ + +var assertWrapper = function (callback) { + return function (new_method, assert_method, arity) { + return function () { + var message = arguments[arity - 1]; + var a = exports.assertion({method: new_method, message: message}); + try { + assert[assert_method].apply(null, arguments); + } + catch (e) { + a.error = e; + } + callback(a); + }; + }; +}; + +/** + * Creates the 'test' object that gets passed to every test function. + * Accepts the name of the test function as its first argument, followed by + * the start time in ms, the options object and a callback function. + * + * @param {String} name + * @param {Number} start + * @param {Object} options + * @param {Function} callback + * @api public + */ + +exports.test = function (name, start, options, callback) { + var expecting; + var a_list = []; + + var wrapAssert = assertWrapper(function (a) { + a_list.push(a); + if (options.log) { + async.nextTick(function () { + options.log(a); + }); + } + }); + + var test = { + done: function (err) { + if (expecting !== undefined && expecting !== a_list.length) { + var e = new Error( + 'Expected ' + expecting + ' assertions, ' + + a_list.length + ' ran' + ); + var a1 = exports.assertion({method: 'expect', error: e}); + a_list.push(a1); + if (options.log) { + async.nextTick(function () { + options.log(a1); + }); + } + } + if (err) { + var a2 = exports.assertion({error: err}); + a_list.push(a2); + if (options.log) { + async.nextTick(function () { + options.log(a2); + }); + } + } + var end = new Date().getTime(); + async.nextTick(function () { + var assertion_list = exports.assertionList(a_list, end - start); + options.testDone(name, assertion_list); + callback(null, a_list); + }); + }, + ok: wrapAssert('ok', 'ok', 2), + same: wrapAssert('same', 'deepEqual', 3), + equals: wrapAssert('equals', 'equal', 3), + expect: function (num) { + expecting = num; + }, + _assertion_list: a_list + }; + // add all functions from the assert module + for (var k in assert) { + if (assert.hasOwnProperty(k)) { + test[k] = wrapAssert(k, k, assert[k].length); + } + } + return test; +}; + +/** + * Ensures an options object has all callbacks, adding empty callback functions + * if any are missing. + * + * @param {Object} opt + * @return {Object} + * @api public + */ + +exports.options = function (opt) { + var optionalCallback = function (name) { + opt[name] = opt[name] || function () {}; + }; + + optionalCallback('moduleStart'); + optionalCallback('moduleDone'); + optionalCallback('testStart'); + optionalCallback('testReady'); + optionalCallback('testDone'); + //optionalCallback('log'); + + // 'done' callback is not optional. + + return opt; +}; +})(types); +(function(exports){ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * Only code on that line will be removed, it's mostly to avoid requiring code + * that is node specific + */ + +/** + * Module dependencies + */ + + + +/** + * Added for browser compatibility + */ + +var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; +}; + + +var _copy = function (obj) { + var nobj = {}; + var keys = _keys(obj); + for (var i = 0; i < keys.length; i += 1) { + nobj[keys[i]] = obj[keys[i]]; + } + return nobj; +}; + + +/** + * Runs a test function (fn) from a loaded module. After the test function + * calls test.done(), the callback is executed with an assertionList as its + * second argument. + * + * @param {String} name + * @param {Function} fn + * @param {Object} opt + * @param {Function} callback + * @api public + */ + +exports.runTest = function (name, fn, opt, callback) { + var options = types.options(opt); + + options.testStart(name); + var start = new Date().getTime(); + var test = types.test(name, start, options, callback); + + options.testReady(test); + try { + fn(test); + } + catch (e) { + test.done(e); + } +}; + +/** + * Takes an object containing test functions or other test suites as properties + * and runs each in series. After all tests have completed, the callback is + * called with a list of all assertions as the second argument. + * + * If a name is passed to this function it is prepended to all test and suite + * names that run within it. + * + * @param {String} name + * @param {Object} suite + * @param {Object} opt + * @param {Function} callback + * @api public + */ + +exports.runSuite = function (name, suite, opt, callback) { + suite = wrapGroup(suite); + var keys = _keys(suite); + + async.concatSeries(keys, function (k, cb) { + var prop = suite[k], _name; + + _name = name ? [].concat(name, k) : [k]; + _name.toString = function () { + // fallback for old one + return this.join(' - '); + }; + + if (typeof prop === 'function') { + var in_name = false, + in_specific_test = (_name.toString() === opt.testFullSpec) ? true : false; + for (var i = 0; i < _name.length; i += 1) { + if (_name[i] === opt.testspec) { + in_name = true; + } + } + + if ((!opt.testFullSpec || in_specific_test) && (!opt.testspec || in_name)) { + if (opt.moduleStart) { + opt.moduleStart(); + } + exports.runTest(_name, suite[k], opt, cb); + } + else { + return cb(); + } + } + else { + exports.runSuite(_name, suite[k], opt, cb); + } + }, callback); +}; + +/** + * Run each exported test function or test suite from a loaded module. + * + * @param {String} name + * @param {Object} mod + * @param {Object} opt + * @param {Function} callback + * @api public + */ + +exports.runModule = function (name, mod, opt, callback) { + var options = _copy(types.options(opt)); + + var _run = false; + var _moduleStart = options.moduleStart; + + mod = wrapGroup(mod); + + function run_once() { + if (!_run) { + _run = true; + _moduleStart(name); + } + } + options.moduleStart = run_once; + + var start = new Date().getTime(); + + exports.runSuite(null, mod, options, function (err, a_list) { + var end = new Date().getTime(); + var assertion_list = types.assertionList(a_list, end - start); + options.moduleDone(name, assertion_list); + if (nodeunit.complete) { + nodeunit.complete(name, assertion_list); + } + callback(null, a_list); + }); +}; + +/** + * Treats an object literal as a list of modules keyed by name. Runs each + * module and finished with calling 'done'. You can think of this as a browser + * safe alternative to runFiles in the nodeunit module. + * + * @param {Object} modules + * @param {Object} opt + * @api public + */ + +// TODO: add proper unit tests for this function +exports.runModules = function (modules, opt) { + var all_assertions = []; + var options = types.options(opt); + var start = new Date().getTime(); + + async.concatSeries(_keys(modules), function (k, cb) { + exports.runModule(k, modules[k], options, cb); + }, + function (err, all_assertions) { + var end = new Date().getTime(); + options.done(types.assertionList(all_assertions, end - start)); + }); +}; + + +/** + * Wraps a test function with setUp and tearDown functions. + * Used by testCase. + * + * @param {Function} setUp + * @param {Function} tearDown + * @param {Function} fn + * @api private + */ + +var wrapTest = function (setUp, tearDown, fn) { + return function (test) { + var context = {}; + if (tearDown) { + var done = test.done; + test.done = function (err) { + try { + tearDown.call(context, function (err2) { + if (err && err2) { + test._assertion_list.push( + types.assertion({error: err}) + ); + return done(err2); + } + done(err || err2); + }); + } + catch (e) { + done(e); + } + }; + } + if (setUp) { + setUp.call(context, function (err) { + if (err) { + return test.done(err); + } + fn.call(context, test); + }); + } + else { + fn.call(context, test); + } + }; +}; + + +/** + * Returns a serial callback from two functions. + * + * @param {Function} funcFirst + * @param {Function} funcSecond + * @api private + */ + +var getSerialCallback = function (fns) { + if (!fns.length) { + return null; + } + return function (callback) { + var that = this; + var bound_fns = []; + for (var i = 0, len = fns.length; i < len; i++) { + (function (j) { + bound_fns.push(function () { + return fns[j].apply(that, arguments); + }); + })(i); + } + return async.series(bound_fns, callback); + }; +}; + + +/** + * Wraps a group of tests with setUp and tearDown functions. + * Used by testCase. + * + * @param {Object} group + * @param {Array} setUps - parent setUp functions + * @param {Array} tearDowns - parent tearDown functions + * @api private + */ + +var wrapGroup = function (group, setUps, tearDowns) { + var tests = {}; + + var setUps = setUps ? setUps.slice(): []; + var tearDowns = tearDowns ? tearDowns.slice(): []; + + if (group.setUp) { + setUps.push(group.setUp); + delete group.setUp; + } + if (group.tearDown) { + tearDowns.unshift(group.tearDown); + delete group.tearDown; + } + + var keys = _keys(group); + + for (var i = 0; i < keys.length; i += 1) { + var k = keys[i]; + if (typeof group[k] === 'function') { + tests[k] = wrapTest( + getSerialCallback(setUps), + getSerialCallback(tearDowns), + group[k] + ); + } + else if (typeof group[k] === 'object') { + tests[k] = wrapGroup(group[k], setUps, tearDowns); + } + } + return tests; +}; + + +/** + * Backwards compatibility for test suites using old testCase API + */ + +exports.testCase = function (suite) { + return suite; +}; +})(core); +(function(exports){ +/*! + * Nodeunit + * Copyright (c) 2010 Caolan McMahon + * MIT Licensed + * + * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS! + * Only code on that line will be removed, its mostly to avoid requiring code + * that is node specific + */ + + +/** + * NOTE: this test runner is not listed in index.js because it cannot be + * used with the command-line tool, only inside the browser. + */ + + +/** + * Reporter info string + */ + +exports.info = "Browser-based test reporter"; + + +/** + * Run all tests within each module, reporting the results + * + * @param {Array} files + * @api public + */ + +exports.run = function (modules, options, callback) { + var start = new Date().getTime(), div; + options = options || {}; + div = options.div || document.body; + + function setText(el, txt) { + if ('innerText' in el) { + el.innerText = txt; + } + else if ('textContent' in el){ + el.textContent = txt; + } + } + + function getOrCreate(tag, id) { + var el = document.getElementById(id); + if (!el) { + el = document.createElement(tag); + el.id = id; + div.appendChild(el); + } + return el; + }; + + var header = getOrCreate('h1', 'nodeunit-header'); + var banner = getOrCreate('h2', 'nodeunit-banner'); + var userAgent = getOrCreate('h2', 'nodeunit-userAgent'); + var tests = getOrCreate('ol', 'nodeunit-tests'); + var result = getOrCreate('p', 'nodeunit-testresult'); + + setText(userAgent, navigator.userAgent); + + nodeunit.runModules(modules, { + moduleStart: function (name) { + /*var mheading = document.createElement('h2'); + mheading.innerText = name; + results.appendChild(mheading); + module = document.createElement('ol'); + results.appendChild(module);*/ + }, + testDone: function (name, assertions) { + var test = document.createElement('li'); + var strong = document.createElement('strong'); + strong.innerHTML = name + ' (' + + '' + assertions.failures() + ', ' + + '' + assertions.passes() + ', ' + + assertions.length + + ')'; + test.className = assertions.failures() ? 'fail': 'pass'; + test.appendChild(strong); + + var aList = document.createElement('ol'); + aList.style.display = 'none'; + test.onclick = function () { + var d = aList.style.display; + aList.style.display = (d == 'none') ? 'block': 'none'; + }; + for (var i=0; i' + (a.error.stack || a.error) + ''; + li.className = 'fail'; + } + else { + li.innerHTML = a.message || a.method || 'no message'; + li.className = 'pass'; + } + aList.appendChild(li); + } + test.appendChild(aList); + tests.appendChild(test); + }, + done: function (assertions) { + var end = new Date().getTime(); + var duration = end - start; + + var failures = assertions.failures(); + banner.className = failures ? 'fail': 'pass'; + + result.innerHTML = 'Tests completed in ' + duration + + ' milliseconds.
' + + assertions.passes() + ' assertions of ' + + '' + assertions.length + ' passed, ' + + assertions.failures() + ' failed.'; + + if (callback) callback(assertions.failures() ? new Error('We have got test failures.') : undefined); + } + }); +}; +})(reporter); +nodeunit = core; +nodeunit.assert = assert; +nodeunit.reporter = reporter; +nodeunit.run = reporter.run; +return nodeunit; })(); diff --git a/bower_components/async/dist/async.js b/bower_components/async/dist/async.js new file mode 100644 index 00000000..31e7620f --- /dev/null +++ b/bower_components/async/dist/async.js @@ -0,0 +1,1265 @@ +/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +(function () { + + var async = {}; + function noop() {} + function identity(v) { + return v; + } + function toBool(v) { + return !!v; + } + function notId(v) { + return !v; + } + + // global on the server, window in the browser + var previous_async; + + // Establish the root object, `window` (`self`) in the browser, `global` + // on the server, or `this` in some virtual machines. We use `self` + // instead of `window` for `WebWorker` support. + var root = typeof self === 'object' && self.self === self && self || + typeof global === 'object' && global.global === global && global || + this; + + if (root != null) { + previous_async = root.async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + function only_once(fn) { + return function() { + if (fn === null) throw new Error("Callback was already called."); + fn.apply(this, arguments); + fn = null; + }; + } + + function _once(fn) { + return function() { + if (fn === null) return; + fn.apply(this, arguments); + fn = null; + }; + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || function (obj) { + return _toString.call(obj) === '[object Array]'; + }; + + // Ported from underscore.js isObject + var _isObject = function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + }; + + function _isArrayLike(arr) { + return _isArray(arr) || ( + // has a positive integer length property + typeof arr.length === "number" && + arr.length >= 0 && + arr.length % 1 === 0 + ); + } + + function _arrayEach(arr, iterator) { + var index = -1, + length = arr.length; + + while (++index < length) { + iterator(arr[index], index, arr); + } + } + + function _map(arr, iterator) { + var index = -1, + length = arr.length, + result = Array(length); + + while (++index < length) { + result[index] = iterator(arr[index], index, arr); + } + return result; + } + + function _range(count) { + return _map(Array(count), function (v, i) { return i; }); + } + + function _reduce(arr, iterator, memo) { + _arrayEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + } + + function _forEachOf(object, iterator) { + _arrayEach(_keys(object), function (key) { + iterator(object[key], key); + }); + } + + function _indexOf(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === item) return i; + } + return -1; + } + + var _keys = Object.keys || function (obj) { + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + function _keyIterator(coll) { + var i = -1; + var len; + var keys; + if (_isArrayLike(coll)) { + len = coll.length; + return function next() { + i++; + return i < len ? i : null; + }; + } else { + keys = _keys(coll); + len = keys.length; + return function next() { + i++; + return i < len ? keys[i] : null; + }; + } + } + + // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html) + // This accumulates the arguments passed into an array, after a given index. + // From underscore.js (https://github.com/jashkenas/underscore/pull/2140). + function _restParam(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0); + var rest = Array(length); + for (var index = 0; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + } + // Currently unused but handle cases outside of the switch statement: + // var args = Array(startIndex + 1); + // for (index = 0; index < startIndex; index++) { + // args[index] = arguments[index]; + // } + // args[startIndex] = rest; + // return func.apply(this, args); + }; + } + + function _withoutIndex(iterator) { + return function (value, index, callback) { + return iterator(value, callback); + }; + } + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + + // capture the global reference to guard against fakeTimer mocks + var _setImmediate = typeof setImmediate === 'function' && setImmediate; + + var _delay = _setImmediate ? function(fn) { + // not a direct alias for IE10 compatibility + _setImmediate(fn); + } : function(fn) { + setTimeout(fn, 0); + }; + + if (typeof process === 'object' && typeof process.nextTick === 'function') { + async.nextTick = process.nextTick; + } else { + async.nextTick = _delay; + } + async.setImmediate = _setImmediate ? _delay : async.nextTick; + + + async.forEach = + async.each = function (arr, iterator, callback) { + return async.eachOf(arr, _withoutIndex(iterator), callback); + }; + + async.forEachSeries = + async.eachSeries = function (arr, iterator, callback) { + return async.eachOfSeries(arr, _withoutIndex(iterator), callback); + }; + + + async.forEachLimit = + async.eachLimit = function (arr, limit, iterator, callback) { + return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback); + }; + + async.forEachOf = + async.eachOf = function (object, iterator, callback) { + callback = _once(callback || noop); + object = object || []; + + var iter = _keyIterator(object); + var key, completed = 0; + + while ((key = iter()) != null) { + completed += 1; + iterator(object[key], key, only_once(done)); + } + + if (completed === 0) callback(null); + + function done(err) { + completed--; + if (err) { + callback(err); + } + // Check key is null in case iterator isn't exhausted + // and done resolved synchronously. + else if (key === null && completed <= 0) { + callback(null); + } + } + }; + + async.forEachOfSeries = + async.eachOfSeries = function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + var key = nextKey(); + function iterate() { + var sync = true; + if (key === null) { + return callback(null); + } + iterator(obj[key], key, only_once(function (err) { + if (err) { + callback(err); + } + else { + key = nextKey(); + if (key === null) { + return callback(null); + } else { + if (sync) { + async.setImmediate(iterate); + } else { + iterate(); + } + } + } + })); + sync = false; + } + iterate(); + }; + + + + async.forEachOfLimit = + async.eachOfLimit = function (obj, limit, iterator, callback) { + _eachOfLimit(limit)(obj, iterator, callback); + }; + + function _eachOfLimit(limit) { + + return function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + if (limit <= 0) { + return callback(null); + } + var done = false; + var running = 0; + var errored = false; + + (function replenish () { + if (done && running <= 0) { + return callback(null); + } + + while (running < limit && !errored) { + var key = nextKey(); + if (key === null) { + done = true; + if (running <= 0) { + callback(null); + } + return; + } + running += 1; + iterator(obj[key], key, only_once(function (err) { + running -= 1; + if (err) { + callback(err); + errored = true; + } + else { + replenish(); + } + })); + } + })(); + }; + } + + + function doParallel(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOf, obj, iterator, callback); + }; + } + function doParallelLimit(fn) { + return function (obj, limit, iterator, callback) { + return fn(_eachOfLimit(limit), obj, iterator, callback); + }; + } + function doSeries(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOfSeries, obj, iterator, callback); + }; + } + + function _asyncMap(eachfn, arr, iterator, callback) { + callback = _once(callback || noop); + arr = arr || []; + var results = _isArrayLike(arr) ? [] : {}; + eachfn(arr, function (value, index, callback) { + iterator(value, function (err, v) { + results[index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = doParallelLimit(_asyncMap); + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.inject = + async.foldl = + async.reduce = function (arr, memo, iterator, callback) { + async.eachOfSeries(arr, function (x, i, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + + async.foldr = + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, identity).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + + async.transform = function (arr, memo, iterator, callback) { + if (arguments.length === 3) { + callback = iterator; + iterator = memo; + memo = _isArray(arr) ? [] : {}; + } + + async.eachOf(arr, function(v, k, cb) { + iterator(memo, v, k, cb); + }, function(err) { + callback(err, memo); + }); + }; + + function _filter(eachfn, arr, iterator, callback) { + var results = []; + eachfn(arr, function (x, index, callback) { + iterator(x, function (v) { + if (v) { + results.push({index: index, value: x}); + } + callback(); + }); + }, function () { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + } + + async.select = + async.filter = doParallel(_filter); + + async.selectLimit = + async.filterLimit = doParallelLimit(_filter); + + async.selectSeries = + async.filterSeries = doSeries(_filter); + + function _reject(eachfn, arr, iterator, callback) { + _filter(eachfn, arr, function(value, cb) { + iterator(value, function(v) { + cb(!v); + }); + }, callback); + } + async.reject = doParallel(_reject); + async.rejectLimit = doParallelLimit(_reject); + async.rejectSeries = doSeries(_reject); + + function _createTester(eachfn, check, getResult) { + return function(arr, limit, iterator, cb) { + function done() { + if (cb) cb(getResult(false, void 0)); + } + function iteratee(x, _, callback) { + if (!cb) return callback(); + iterator(x, function (v) { + if (cb && check(v)) { + cb(getResult(true, x)); + cb = iterator = false; + } + callback(); + }); + } + if (arguments.length > 3) { + eachfn(arr, limit, iteratee, done); + } else { + cb = iterator; + iterator = limit; + eachfn(arr, iteratee, done); + } + }; + } + + async.any = + async.some = _createTester(async.eachOf, toBool, identity); + + async.someLimit = _createTester(async.eachOfLimit, toBool, identity); + + async.all = + async.every = _createTester(async.eachOf, notId, notId); + + async.everyLimit = _createTester(async.eachOfLimit, notId, notId); + + function _findGetResult(v, x) { + return x; + } + async.detect = _createTester(async.eachOf, identity, _findGetResult); + async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult); + async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult); + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + callback(null, _map(results.sort(comparator), function (x) { + return x.value; + })); + } + + }); + + function comparator(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + } + }; + + async.auto = function (tasks, concurrency, callback) { + if (typeof arguments[1] === 'function') { + // concurrency is optional, shift the args. + callback = concurrency; + concurrency = null; + } + callback = _once(callback || noop); + var keys = _keys(tasks); + var remainingTasks = keys.length; + if (!remainingTasks) { + return callback(null); + } + if (!concurrency) { + concurrency = remainingTasks; + } + + var results = {}; + var runningTasks = 0; + + var hasError = false; + + var listeners = []; + function addListener(fn) { + listeners.unshift(fn); + } + function removeListener(fn) { + var idx = _indexOf(listeners, fn); + if (idx >= 0) listeners.splice(idx, 1); + } + function taskComplete() { + remainingTasks--; + _arrayEach(listeners.slice(0), function (fn) { + fn(); + }); + } + + addListener(function () { + if (!remainingTasks) { + callback(null, results); + } + }); + + _arrayEach(keys, function (k) { + if (hasError) return; + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = _restParam(function(err, args) { + runningTasks--; + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _forEachOf(results, function(val, rkey) { + safeResults[rkey] = val; + }); + safeResults[k] = args; + hasError = true; + + callback(err, safeResults); + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }); + var requires = task.slice(0, task.length - 1); + // prevent dead-locks + var len = requires.length; + var dep; + while (len--) { + if (!(dep = tasks[requires[len]])) { + throw new Error('Has nonexistent dependency in ' + requires.join(', ')); + } + if (_isArray(dep) && _indexOf(dep, k) >= 0) { + throw new Error('Has cyclic dependencies'); + } + } + function ready() { + return runningTasks < concurrency && _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + } + if (ready()) { + runningTasks++; + task[task.length - 1](taskCallback, results); + } + else { + addListener(listener); + } + function listener() { + if (ready()) { + runningTasks++; + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + } + }); + }; + + + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var DEFAULT_INTERVAL = 0; + + var attempts = []; + + var opts = { + times: DEFAULT_TIMES, + interval: DEFAULT_INTERVAL + }; + + function parseTimes(acc, t){ + if(typeof t === 'number'){ + acc.times = parseInt(t, 10) || DEFAULT_TIMES; + } else if(typeof t === 'object'){ + acc.times = parseInt(t.times, 10) || DEFAULT_TIMES; + acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL; + } else { + throw new Error('Unsupported argument type for \'times\': ' + typeof t); + } + } + + var length = arguments.length; + if (length < 1 || length > 3) { + throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)'); + } else if (length <= 2 && typeof times === 'function') { + callback = task; + task = times; + } + if (typeof times !== 'function') { + parseTimes(opts, times); + } + opts.callback = callback; + opts.task = task; + + function wrappedTask(wrappedCallback, wrappedResults) { + function retryAttempt(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + } + + function retryInterval(interval){ + return function(seriesCallback){ + setTimeout(function(){ + seriesCallback(null); + }, interval); + }; + } + + while (opts.times) { + + var finalAttempt = !(opts.times-=1); + attempts.push(retryAttempt(opts.task, finalAttempt)); + if(!finalAttempt && opts.interval > 0){ + attempts.push(retryInterval(opts.interval)); + } + } + + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || opts.callback)(data.err, data.result); + }); + } + + // If a callback is passed, run this as a controll flow + return opts.callback ? wrappedTask() : wrappedTask; + }; + + async.waterfall = function (tasks, callback) { + callback = _once(callback || noop); + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + function wrapIterator(iterator) { + return _restParam(function (err, args) { + if (err) { + callback.apply(null, [err].concat(args)); + } + else { + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + ensureAsync(iterator).apply(null, args); + } + }); + } + wrapIterator(async.iterator(tasks))(); + }; + + function _parallel(eachfn, tasks, callback) { + callback = callback || noop; + var results = _isArrayLike(tasks) ? [] : {}; + + eachfn(tasks, function (task, key, callback) { + task(_restParam(function (err, args) { + if (args.length <= 1) { + args = args[0]; + } + results[key] = args; + callback(err); + })); + }, function (err) { + callback(err, results); + }); + } + + async.parallel = function (tasks, callback) { + _parallel(async.eachOf, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel(_eachOfLimit(limit), tasks, callback); + }; + + async.series = function(tasks, callback) { + _parallel(async.eachOfSeries, tasks, callback); + }; + + async.iterator = function (tasks) { + function makeCallback(index) { + function fn() { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + } + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + } + return makeCallback(0); + }; + + async.apply = _restParam(function (fn, args) { + return _restParam(function (callArgs) { + return fn.apply( + null, args.concat(callArgs) + ); + }); + }); + + function _concat(eachfn, arr, fn, callback) { + var result = []; + eachfn(arr, function (x, index, cb) { + fn(x, function (err, y) { + result = result.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, result); + }); + } + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + callback = callback || noop; + if (test()) { + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else if (test.apply(this, args)) { + iterator(next); + } else { + callback.apply(null, [null].concat(args)); + } + }); + iterator(next); + } else { + callback(null); + } + }; + + async.doWhilst = function (iterator, test, callback) { + var calls = 0; + return async.whilst(function() { + return ++calls <= 1 || test.apply(this, arguments); + }, iterator, callback); + }; + + async.until = function (test, iterator, callback) { + return async.whilst(function() { + return !test.apply(this, arguments); + }, iterator, callback); + }; + + async.doUntil = function (iterator, test, callback) { + return async.doWhilst(iterator, function() { + return !test.apply(this, arguments); + }, callback); + }; + + async.during = function (test, iterator, callback) { + callback = callback || noop; + + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else { + args.push(check); + test.apply(this, args); + } + }); + + var check = function(err, truth) { + if (err) { + callback(err); + } else if (truth) { + iterator(next); + } else { + callback(null); + } + }; + + test(check); + }; + + async.doDuring = function (iterator, test, callback) { + var calls = 0; + async.during(function(next) { + if (calls++ < 1) { + next(null, true); + } else { + test.apply(this, arguments); + } + }, iterator, callback); + }; + + function _queue(worker, concurrency, payload) { + if (concurrency == null) { + concurrency = 1; + } + else if(concurrency === 0) { + throw new Error('Concurrency must not be zero'); + } + function _insert(q, data, pos, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0 && q.idle()) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + callback: callback || noop + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + }); + async.setImmediate(q.process); + } + function _next(q, tasks) { + return function(){ + workers -= 1; + + var removed = false; + var args = arguments; + _arrayEach(tasks, function (task) { + _arrayEach(workersList, function (worker, index) { + if (worker === task && !removed) { + workersList.splice(index, 1); + removed = true; + } + }); + + task.callback.apply(task, args); + }); + if (q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + } + + var workers = 0; + var workersList = []; + var q = { + tasks: [], + concurrency: concurrency, + payload: payload, + saturated: noop, + empty: noop, + drain: noop, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = noop; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + while(!q.paused && workers < q.concurrency && q.tasks.length){ + + var tasks = q.payload ? + q.tasks.splice(0, q.payload) : + q.tasks.splice(0, q.tasks.length); + + var data = _map(tasks, function (task) { + return task.data; + }); + + if (q.tasks.length === 0) { + q.empty(); + } + workers += 1; + workersList.push(tasks[0]); + var cb = only_once(_next(q, tasks)); + worker(data, cb); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + workersList: function () { + return workersList; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + q.paused = true; + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + var resumeCount = Math.min(q.concurrency, q.tasks.length); + // Need to call q.process once per concurrent + // worker to preserve full concurrency after pause + for (var w = 1; w <= resumeCount; w++) { + async.setImmediate(q.process); + } + } + }; + return q; + } + + async.queue = function (worker, concurrency) { + var q = _queue(function (items, cb) { + worker(items[0], cb); + }, concurrency, 1); + + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + } + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : noop + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + return _queue(worker, 1, payload); + }; + + function _console_fn(name) { + return _restParam(function (fn, args) { + fn.apply(null, args.concat([_restParam(function (err, args) { + if (typeof console === 'object') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _arrayEach(args, function (x) { + console[name](x); + }); + } + } + })])); + }); + } + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + var has = Object.prototype.hasOwnProperty; + hasher = hasher || identity; + var memoized = _restParam(function memoized(args) { + var callback = args.pop(); + var key = hasher.apply(null, args); + if (has.call(memo, key)) { + async.setImmediate(function () { + callback.apply(null, memo[key]); + }); + } + else if (has.call(queues, key)) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([_restParam(function (args) { + memo[key] = args; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, args); + } + })])); + } + }); + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + function _times(mapper) { + return function (count, iterator, callback) { + mapper(_range(count), iterator, callback); + }; + } + + async.times = _times(async.map); + async.timesSeries = _times(async.mapSeries); + async.timesLimit = function (count, limit, iterator, callback) { + return async.mapLimit(_range(count), limit, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return _restParam(function (args) { + var that = this; + + var callback = args[args.length - 1]; + if (typeof callback == 'function') { + args.pop(); + } else { + callback = noop; + } + + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([_restParam(function (err, nextargs) { + cb(err, nextargs); + })])); + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }); + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + + function _applyEach(eachfn) { + return _restParam(function(fns, args) { + var go = _restParam(function(args) { + var that = this; + var callback = args.pop(); + return eachfn(fns, function (fn, _, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }); + if (args.length) { + return go.apply(this, args); + } + else { + return go; + } + }); + } + + async.applyEach = _applyEach(async.eachOf); + async.applyEachSeries = _applyEach(async.eachOfSeries); + + + async.forever = function (fn, callback) { + var done = only_once(callback || noop); + var task = ensureAsync(fn); + function next(err) { + if (err) { + return done(err); + } + task(next); + } + next(); + }; + + function ensureAsync(fn) { + return _restParam(function (args) { + var callback = args.pop(); + args.push(function () { + var innerArgs = arguments; + if (sync) { + async.setImmediate(function () { + callback.apply(null, innerArgs); + }); + } else { + callback.apply(null, innerArgs); + } + }); + var sync = true; + fn.apply(this, args); + sync = false; + }); + } + + async.ensureAsync = ensureAsync; + + async.constant = _restParam(function(values) { + var args = [null].concat(values); + return function (callback) { + return callback.apply(this, args); + }; + }); + + async.wrapSync = + async.asyncify = function asyncify(func) { + return _restParam(function (args) { + var callback = args.pop(); + var result; + try { + result = func.apply(this, args); + } catch (e) { + return callback(e); + } + // if result is Promise object + if (_isObject(result) && typeof result.then === "function") { + result.then(function(value) { + callback(null, value); + })["catch"](function(err) { + callback(err.message ? err : new Error(err)); + }); + } else { + callback(null, result); + } + }); + }; + + // Node.js + if (typeof module === 'object' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else if (typeof define === 'function' && define.amd) { + define([], function () { + return async; + }); + } + // included directly via + + + + + +

Atom Javascript framework tests

+

+
+

+
    +
    + ccc +

    The standard Lorem Ipsum passage, used since the 1500s

    +

    "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

    +

    Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

    +

    "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"

    +

    1914 translation by H. Rackham

    +

    "But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"

    +

    Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

    +

    "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."

    +

    1914 translation by H. Rackham

    +

    "On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."

    +
    + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/bower/Tests/lib/jquery.js b/bower_components/bower/Tests/lib/jquery.js new file mode 100644 index 00000000..2bd4cbb8 --- /dev/null +++ b/bower_components/bower/Tests/lib/jquery.js @@ -0,0 +1,167 @@ +/*! + * jQuery JavaScript Library v1.4.4 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Nov 11 19:04:53 2010 -0500 + */ +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
    a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
    ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
    t
    ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="

    ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, +""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
    ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file diff --git a/bower_components/bower/Tests/lib/qunit.css b/bower_components/bower/Tests/lib/qunit.css new file mode 100644 index 00000000..1e5664b3 --- /dev/null +++ b/bower_components/bower/Tests/lib/qunit.css @@ -0,0 +1,196 @@ +/** Font Family and Sizes */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { + font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; +} + +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-tests { font-size: smaller; } + + +/** Resets */ + +#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { + margin: 0; + padding: 0; +} + + +/** Header */ + +#qunit-header { + padding: 0.5em 0 0.5em 1em; + + color: #8699a4; + background-color: #0d3349; + + font-size: 1.5em; + line-height: 1em; + font-weight: normal; + + border-radius: 15px 15px 0 0; + -moz-border-radius: 15px 15px 0 0; + -webkit-border-top-right-radius: 15px; + -webkit-border-top-left-radius: 15px; +} + +#qunit-header a { + text-decoration: none; + color: #c2ccd1; +} + +#qunit-header a:hover, +#qunit-header a:focus { + color: #fff; +} + +#qunit-banner { + height: 5px; +} + +#qunit-testrunner-toolbar { + padding: 0em 0 0.5em 2em; +} + +#qunit-userAgent { + padding: 0.5em 0 0.5em 2.5em; + background-color: #2b81af; + color: #fff; + text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; +} + + +/** Tests: Pass/Fail */ + +#qunit-tests { + list-style-position: inside; +} + +#qunit-tests li { + padding: 0.4em 0.5em 0.4em 2.5em; + border-bottom: 1px solid #fff; + list-style-position: inside; +} + +#qunit-tests li strong { + cursor: pointer; +} + +#qunit-tests ol { + margin-top: 0.5em; + padding: 0.5em; + + background-color: #fff; + + border-radius: 15px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; + + box-shadow: inset 0px 2px 13px #999; + -moz-box-shadow: inset 0px 2px 13px #999; + -webkit-box-shadow: inset 0px 2px 13px #999; +} + +#qunit-tests table { + border-collapse: collapse; + margin-top: .2em; +} + +#qunit-tests th { + text-align: right; + vertical-align: top; + padding: 0 .5em 0 0; +} + +#qunit-tests td { + vertical-align: top; +} + +#qunit-tests pre { + margin: 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +#qunit-tests del { + background-color: #e0f2be; + color: #374e0c; + text-decoration: none; +} + +#qunit-tests ins { + background-color: #ffcaca; + color: #500; + text-decoration: none; +} + +/*** Test Counts */ + +#qunit-tests b.counts { color: black; } +#qunit-tests b.passed { color: #5E740B; } +#qunit-tests b.failed { color: #710909; } + +#qunit-tests li li { + margin: 0.5em; + padding: 0.4em 0.5em 0.4em 0.5em; + background-color: #fff; + border-bottom: none; + list-style-position: inside; +} + +/*** Passing Styles */ + +#qunit-tests li li.pass { + color: #5E740B; + background-color: #fff; + border-left: 26px solid #C6E746; +} + +#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } +#qunit-tests .pass .test-name { color: #366097; } + +#qunit-tests .pass .test-actual, +#qunit-tests .pass .test-expected { color: #999999; } + +#qunit-banner.qunit-pass { background-color: #C6E746; } + +/*** Failing Styles */ + +#qunit-tests li li.fail { + color: #710909; + background-color: #fff; + border-left: 26px solid #EE5757; +} + +#qunit-tests .fail { color: #000000; background-color: #EE5757; } +#qunit-tests .fail .test-name, +#qunit-tests .fail .module-name { color: #000000; } + +#qunit-tests .fail .test-actual { color: #EE5757; } +#qunit-tests .fail .test-expected { color: green; } + +#qunit-banner.qunit-fail, +#qunit-testrunner-toolbar { background-color: #EE5757; } + + +/** Footer */ + +#qunit-testresult { + padding: 0.5em 0.5em 0.5em 2.5em; + + color: #2b81af; + background-color: #D2E0E6; + + border-radius: 0 0 15px 15px; + -moz-border-radius: 0 0 15px 15px; + -webkit-border-bottom-right-radius: 15px; + -webkit-border-bottom-left-radius: 15px; +} + +/** Fixture */ + +#qunit-fixture { + position: absolute; + top: -10000px; + left: -10000px; +} \ No newline at end of file diff --git a/bower_components/bower/Tests/lib/qunit.js b/bower_components/bower/Tests/lib/qunit.js new file mode 100644 index 00000000..c173630c --- /dev/null +++ b/bower_components/bower/Tests/lib/qunit.js @@ -0,0 +1,1376 @@ +/* + * QUnit - A JavaScript Unit Testing Framework + * + * http://docs.jquery.com/QUnit + * + * Copyright (c) 2011 John Resig, Jörn Zaefferer + * Dual licensed under the MIT (MIT-LICENSE.txt) + * or GPL (GPL-LICENSE.txt) licenses. + */ + +(function(window) { + +var defined = { + setTimeout: typeof window.setTimeout !== "undefined", + sessionStorage: (function() { + try { + return !!sessionStorage.getItem; + } catch(e){ + return false; + } + })() +} + +var testId = 0; + +var Test = function(name, testName, expected, testEnvironmentArg, async, callback) { + this.name = name; + this.testName = testName; + this.expected = expected; + this.testEnvironmentArg = testEnvironmentArg; + this.async = async; + this.callback = callback; + this.assertions = []; +}; +Test.prototype = { + init: function() { + var tests = id("qunit-tests"); + if (tests) { + var b = document.createElement("strong"); + b.innerHTML = "Running " + this.name; + var li = document.createElement("li"); + li.appendChild( b ); + li.id = this.id = "test-output" + testId++; + tests.appendChild( li ); + } + }, + setup: function() { + if (this.module != config.previousModule) { + if ( this.previousModule ) { + QUnit.moduleDone( this.module, config.moduleStats.bad, config.moduleStats.all ); + } + config.previousModule = this.module; + config.moduleStats = { all: 0, bad: 0 }; + QUnit.moduleStart( this.module, this.moduleTestEnvironment ); + } + + config.current = this; + this.testEnvironment = extend({ + setup: function() {}, + teardown: function() {} + }, this.moduleTestEnvironment); + if (this.testEnvironmentArg) { + extend(this.testEnvironment, this.testEnvironmentArg); + } + + QUnit.testStart( this.testName, this.testEnvironment ); + + // allow utility functions to access the current test environment + // TODO why?? + QUnit.current_testEnvironment = this.testEnvironment; + + try { + if ( !config.pollution ) { + saveGlobal(); + } + + this.testEnvironment.setup.call(this.testEnvironment); + } catch(e) { + // TODO use testName instead of name for no-markup message? + QUnit.ok( false, "Setup failed on " + this.name + ": " + e.message ); + } + }, + run: function() { + if ( this.async ) { + QUnit.stop(); + } + + try { + this.callback.call(this.testEnvironment); + } catch(e) { + // TODO use testName instead of name for no-markup message? + fail("Test " + this.name + " died, exception and test follows", e, this.callback); + QUnit.ok( false, "Died on test #" + (this.assertions.length + 1) + ": " + e.message + " - " + QUnit.jsDump.parse(e)); + // else next test will carry the responsibility + saveGlobal(); + + // Restart the tests if they're blocking + if ( config.blocking ) { + start(); + } + } + }, + teardown: function() { + try { + checkPollution(); + this.testEnvironment.teardown.call(this.testEnvironment); + } catch(e) { + // TODO use testName instead of name for no-markup message? + QUnit.ok( false, "Teardown failed on " + this.name + ": " + e.message ); + } + }, + finish: function() { + if ( this.expected && this.expected != this.assertions.length ) { + QUnit.ok( false, "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" ); + } + + var good = 0, bad = 0, + tests = id("qunit-tests"); + + config.stats.all += this.assertions.length; + config.moduleStats.all += this.assertions.length; + + if ( tests ) { + var ol = document.createElement("ol"); + + for ( var i = 0; i < this.assertions.length; i++ ) { + var assertion = this.assertions[i]; + + var li = document.createElement("li"); + li.className = assertion.result ? "pass" : "fail"; + li.innerHTML = '
    ' + (assertion.message || (assertion.result ? "okay" : "failed")) + '
    '; + ol.appendChild( li ); + + if ( assertion.result ) { + good++; + } else { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + + // store result when possible + defined.sessionStorage && sessionStorage.setItem("qunit-" + this.testName, bad); + + if (bad == 0) { + ol.style.display = "none"; + } + + var b = document.createElement("strong"); + b.innerHTML = this.name + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; + + addEvent(b, "click", function() { + var next = b.nextSibling, display = next.style.display; + next.style.display = display === "none" ? "block" : "none"; + }); + + addEvent(b, "dblclick", function(e) { + var target = e && e.target ? e.target : window.event.srcElement; + if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) { + target = target.parentNode; + } + if ( window.location && target.nodeName.toLowerCase() === "strong" ) { + window.location.search = "?" + encodeURIComponent(getText([target]).replace(/\(.+\)$/, "").replace(/(^\s*|\s*$)/g, "")); + } + }); + + var li = id(this.id); + li.className = bad ? "fail" : "pass"; + li.style.display = resultDisplayStyle(!bad); + li.removeChild( li.firstChild ); + li.appendChild( b ); + li.appendChild( ol ); + + if ( bad ) { + var toolbar = id("qunit-testrunner-toolbar"); + if ( toolbar ) { + toolbar.style.display = "block"; + id("qunit-filter-pass").disabled = null; + } + } + + } else { + for ( var i = 0; i < this.assertions.length; i++ ) { + if ( !this.assertions[i].result ) { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + } + + try { + QUnit.reset(); + } catch(e) { + // TODO use testName instead of name for no-markup message? + fail("reset() failed, following Test " + this.name + ", exception and reset fn follows", e, QUnit.reset); + } + + QUnit.testDone( this.testName, bad, this.assertions.length ); + }, + + queue: function() { + var test = this; + synchronize(function() { + test.init(); + }); + function run() { + // each of these can by async + synchronize(function() { + test.setup(); + }); + synchronize(function() { + test.run(); + }); + synchronize(function() { + test.teardown(); + }); + synchronize(function() { + test.finish(); + }); + } + // defer when previous test run passed, if storage is available + var bad = defined.sessionStorage && +sessionStorage.getItem("qunit-" + this.testName); + if (bad) { + run(); + } else { + synchronize(run); + }; + } + +} + +var QUnit = { + + // call on start of module test to prepend name to all tests + module: function(name, testEnvironment) { + config.previousModule = config.currentModule; + config.currentModule = name; + config.currentModuleTestEnviroment = testEnvironment; + }, + + asyncTest: function(testName, expected, callback) { + if ( arguments.length === 2 ) { + callback = expected; + expected = 0; + } + + QUnit.test(testName, expected, callback, true); + }, + + test: function(testName, expected, callback, async) { + var name = '' + testName + '', testEnvironmentArg; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + // is 2nd argument a testEnvironment? + if ( expected && typeof expected === 'object') { + testEnvironmentArg = expected; + expected = null; + } + + if ( config.currentModule ) { + name = '' + config.currentModule + ": " + name; + } + + if ( !validTest(config.currentModule + ": " + testName) ) { + return; + } + + var test = new Test(name, testName, expected, testEnvironmentArg, async, callback); + test.previousModule = config.previousModule; + test.module = config.currentModule; + test.moduleTestEnvironment = config.currentModuleTestEnviroment; + test.queue(); + }, + + /** + * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. + */ + expect: function(asserts) { + config.current.expected = asserts; + }, + + /** + * Asserts true. + * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); + */ + ok: function(a, msg) { + a = !!a; + var details = { + result: a, + message: msg + }; + msg = escapeHtml(msg); + QUnit.log(a, msg, details); + config.current.assertions.push({ + result: a, + message: msg + }); + }, + + /** + * Checks that the first two arguments are equal, with an optional message. + * Prints out both actual and expected values. + * + * Prefered to ok( actual == expected, message ) + * + * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); + * + * @param Object actual + * @param Object expected + * @param String message (optional) + */ + equal: function(actual, expected, message) { + QUnit.push(expected == actual, actual, expected, message); + }, + + notEqual: function(actual, expected, message) { + QUnit.push(expected != actual, actual, expected, message); + }, + + deepEqual: function(actual, expected, message) { + QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); + }, + + notDeepEqual: function(actual, expected, message) { + QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message); + }, + + strictEqual: function(actual, expected, message) { + QUnit.push(expected === actual, actual, expected, message); + }, + + notStrictEqual: function(actual, expected, message) { + QUnit.push(expected !== actual, actual, expected, message); + }, + + raises: function(block, expected, message) { + var actual, ok = false; + + if (typeof expected === 'string') { + message = expected; + expected = null; + } + + try { + block(); + } catch (e) { + actual = e; + } + + if (actual) { + // we don't want to validate thrown error + if (!expected) { + ok = true; + // expected is a regexp + } else if (QUnit.objectType(expected) === "regexp") { + ok = expected.test(actual); + // expected is a constructor + } else if (actual instanceof expected) { + ok = true; + // expected is a validation function which returns true is validation passed + } else if (expected.call({}, actual) === true) { + ok = true; + } + } + + QUnit.ok(ok, message); + }, + + start: function() { + config.semaphore--; + if (config.semaphore > 0) { + // don't start until equal number of stop-calls + return; + } + if (config.semaphore < 0) { + // ignore if start is called more often then stop + config.semaphore = 0; + } + // A slight delay, to avoid any current callbacks + if ( defined.setTimeout ) { + window.setTimeout(function() { + if ( config.timeout ) { + clearTimeout(config.timeout); + } + + config.blocking = false; + process(); + }, 13); + } else { + config.blocking = false; + process(); + } + }, + + stop: function(timeout) { + config.semaphore++; + config.blocking = true; + + if ( timeout && defined.setTimeout ) { + clearTimeout(config.timeout); + config.timeout = window.setTimeout(function() { + QUnit.ok( false, "Test timed out" ); + QUnit.start(); + }, timeout); + } + } + +}; + +// Backwards compatibility, deprecated +QUnit.equals = QUnit.equal; +QUnit.same = QUnit.deepEqual; + +// Maintain internal state +var config = { + // The queue of tests to run + queue: [], + + // block until document ready + blocking: true +}; + +// Load paramaters +(function() { + var location = window.location || { search: "", protocol: "file:" }, + GETParams = location.search.slice(1).split('&'); + + for ( var i = 0; i < GETParams.length; i++ ) { + GETParams[i] = decodeURIComponent( GETParams[i] ); + if ( GETParams[i] === "noglobals" ) { + GETParams.splice( i, 1 ); + i--; + config.noglobals = true; + } else if ( GETParams[i].search('=') > -1 ) { + GETParams.splice( i, 1 ); + i--; + } + } + + // restrict modules/tests by get parameters + config.filters = GETParams; + + // Figure out if we're running the tests from a server or not + QUnit.isLocal = !!(location.protocol === 'file:'); +})(); + +// Expose the API as global variables, unless an 'exports' +// object exists, in that case we assume we're in CommonJS +if ( typeof exports === "undefined" || typeof require === "undefined" ) { + extend(window, QUnit); + window.QUnit = QUnit; +} else { + extend(exports, QUnit); + exports.QUnit = QUnit; +} + +// define these after exposing globals to keep them in these QUnit namespace only +extend(QUnit, { + config: config, + + // Initialize the configuration options + init: function() { + extend(config, { + stats: { all: 0, bad: 0 }, + moduleStats: { all: 0, bad: 0 }, + started: +new Date, + updateRate: 1000, + blocking: false, + autostart: true, + autorun: false, + filters: [], + queue: [], + semaphore: 0 + }); + + var tests = id("qunit-tests"), + banner = id("qunit-banner"), + result = id("qunit-testresult"); + + if ( tests ) { + tests.innerHTML = ""; + } + + if ( banner ) { + banner.className = ""; + } + + if ( result ) { + result.parentNode.removeChild( result ); + } + }, + + /** + * Resets the test setup. Useful for tests that modify the DOM. + * + * If jQuery is available, uses jQuery's html(), otherwise just innerHTML. + */ + reset: function() { + if ( window.jQuery ) { + jQuery( "#main, #qunit-fixture" ).html( config.fixture ); + } else { + var main = id( 'main' ) || id( 'qunit-fixture' ); + if ( main ) { + main.innerHTML = config.fixture; + } + } + }, + + /** + * Trigger an event on an element. + * + * @example triggerEvent( document.body, "click" ); + * + * @param DOMElement elem + * @param String type + */ + triggerEvent: function( elem, type, event ) { + if ( document.createEvent ) { + event = document.createEvent("MouseEvents"); + event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + elem.dispatchEvent( event ); + + } else if ( elem.fireEvent ) { + elem.fireEvent("on"+type); + } + }, + + // Safe object type checking + is: function( type, obj ) { + return QUnit.objectType( obj ) == type; + }, + + objectType: function( obj ) { + if (typeof obj === "undefined") { + return "undefined"; + + // consider: typeof null === object + } + if (obj === null) { + return "null"; + } + + var type = Object.prototype.toString.call( obj ) + .match(/^\[object\s(.*)\]$/)[1] || ''; + + switch (type) { + case 'Number': + if (isNaN(obj)) { + return "nan"; + } else { + return "number"; + } + case 'String': + case 'Boolean': + case 'Array': + case 'Date': + case 'RegExp': + case 'Function': + return type.toLowerCase(); + } + if (typeof obj === "object") { + return "object"; + } + return undefined; + }, + + push: function(result, actual, expected, message) { + var details = { + result: result, + message: message, + actual: actual, + expected: expected + }; + + message = escapeHtml(message) || (result ? "okay" : "failed"); + message = '' + message + ""; + expected = escapeHtml(QUnit.jsDump.parse(expected)); + actual = escapeHtml(QUnit.jsDump.parse(actual)); + var output = message + '
    '; + if (actual != expected) { + output += ''; + output += ''; + } + if (!result) { + var source = sourceFromStacktrace(); + if (source) { + details.source = source; + output += ''; + } + } + output += "
    Expected:
    ' + expected + '
    Result:
    ' + actual + '
    Diff:
    ' + QUnit.diff(expected, actual) +'
    Source:
    ' + source +'
    "; + + QUnit.log(result, message, details); + + config.current.assertions.push({ + result: !!result, + message: output + }); + }, + + // Logging callbacks + begin: function() {}, + done: function(failures, total) {}, + log: function(result, message) {}, + testStart: function(name, testEnvironment) {}, + testDone: function(name, failures, total) {}, + moduleStart: function(name, testEnvironment) {}, + moduleDone: function(name, failures, total) {} +}); + +if ( typeof document === "undefined" || document.readyState === "complete" ) { + config.autorun = true; +} + +addEvent(window, "load", function() { + QUnit.begin(); + + // Initialize the config, saving the execution queue + var oldconfig = extend({}, config); + QUnit.init(); + extend(config, oldconfig); + + config.blocking = false; + + var userAgent = id("qunit-userAgent"); + if ( userAgent ) { + userAgent.innerHTML = navigator.userAgent; + } + var banner = id("qunit-header"); + if ( banner ) { + var paramsIndex = location.href.lastIndexOf(location.search); + if ( paramsIndex > -1 ) { + var mainPageLocation = location.href.slice(0, paramsIndex); + if ( mainPageLocation == location.href ) { + banner.innerHTML = ' ' + banner.innerHTML + ' '; + } else { + var testName = decodeURIComponent(location.search.slice(1)); + banner.innerHTML = '' + banner.innerHTML + '' + testName + ''; + } + } + } + + var toolbar = id("qunit-testrunner-toolbar"); + if ( toolbar ) { + toolbar.style.display = "none"; + + var filter = document.createElement("input"); + filter.type = "checkbox"; + filter.id = "qunit-filter-pass"; + filter.disabled = true; + addEvent( filter, "click", function() { + var li = document.getElementsByTagName("li"); + for ( var i = 0; i < li.length; i++ ) { + if ( li[i].className.indexOf("pass") > -1 ) { + li[i].style.display = filter.checked ? "none" : ""; + } + } + }); + toolbar.appendChild( filter ); + + var label = document.createElement("label"); + label.setAttribute("for", "qunit-filter-pass"); + label.innerHTML = "Hide passed tests"; + toolbar.appendChild( label ); + } + + var main = id('main') || id('qunit-fixture'); + if ( main ) { + config.fixture = main.innerHTML; + } + + if (config.autostart) { + QUnit.start(); + } +}); + +function done() { + config.autorun = true; + + // Log the last module results + if ( config.currentModule ) { + QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all ); + } + + var banner = id("qunit-banner"), + tests = id("qunit-tests"), + html = ['Tests completed in ', + +new Date - config.started, ' milliseconds.
    ', + '', config.stats.all - config.stats.bad, ' tests of ', config.stats.all, ' passed, ', config.stats.bad,' failed.'].join(''); + + if ( banner ) { + banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); + } + + if ( tests ) { + var result = id("qunit-testresult"); + + if ( !result ) { + result = document.createElement("p"); + result.id = "qunit-testresult"; + result.className = "result"; + tests.parentNode.insertBefore( result, tests.nextSibling ); + } + + result.innerHTML = html; + } + + QUnit.done( config.stats.bad, config.stats.all ); +} + +function validTest( name ) { + var i = config.filters.length, + run = false; + + if ( !i ) { + return true; + } + + while ( i-- ) { + var filter = config.filters[i], + not = filter.charAt(0) == '!'; + + if ( not ) { + filter = filter.slice(1); + } + + if ( name.indexOf(filter) !== -1 ) { + return !not; + } + + if ( not ) { + run = true; + } + } + + return run; +} + +// so far supports only Firefox, Chrome and Opera (buggy) +// could be extended in the future to use something like https://github.com/csnover/TraceKit +function sourceFromStacktrace() { + try { + throw new Error(); + } catch ( e ) { + if (e.stacktrace) { + // Opera + return e.stacktrace.split("\n")[6]; + } else if (e.stack) { + // Firefox, Chrome + return e.stack.split("\n")[4]; + } + } +} + +function resultDisplayStyle(passed) { + return passed && id("qunit-filter-pass") && id("qunit-filter-pass").checked ? 'none' : ''; +} + +function escapeHtml(s) { + if (!s) { + return ""; + } + s = s + ""; + return s.replace(/[\&"<>\\]/g, function(s) { + switch(s) { + case "&": return "&"; + case "\\": return "\\\\"; + case '"': return '\"'; + case "<": return "<"; + case ">": return ">"; + default: return s; + } + }); +} + +function synchronize( callback ) { + config.queue.push( callback ); + + if ( config.autorun && !config.blocking ) { + process(); + } +} + +function process() { + var start = (new Date()).getTime(); + + while ( config.queue.length && !config.blocking ) { + if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { + config.queue.shift()(); + } else { + window.setTimeout( process, 13 ); + break; + } + } + if (!config.blocking && !config.queue.length) { + done(); + } +} + +function saveGlobal() { + config.pollution = []; + + if ( config.noglobals ) { + for ( var key in window ) { + config.pollution.push( key ); + } + } +} + +function checkPollution( name ) { + var old = config.pollution; + saveGlobal(); + + var newGlobals = diff( old, config.pollution ); + if ( newGlobals.length > 0 ) { + ok( false, "Introduced global variable(s): " + newGlobals.join(", ") ); + config.current.expected++; + } + + var deletedGlobals = diff( config.pollution, old ); + if ( deletedGlobals.length > 0 ) { + ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") ); + config.current.expected++; + } +} + +// returns a new Array with the elements that are in a but not in b +function diff( a, b ) { + var result = a.slice(); + for ( var i = 0; i < result.length; i++ ) { + for ( var j = 0; j < b.length; j++ ) { + if ( result[i] === b[j] ) { + result.splice(i, 1); + i--; + break; + } + } + } + return result; +} + +function fail(message, exception, callback) { + if ( typeof console !== "undefined" && console.error && console.warn ) { + console.error(message); + console.error(exception); + console.warn(callback.toString()); + + } else if ( window.opera && opera.postError ) { + opera.postError(message, exception, callback.toString); + } +} + +function extend(a, b) { + for ( var prop in b ) { + a[prop] = b[prop]; + } + + return a; +} + +function addEvent(elem, type, fn) { + if ( elem.addEventListener ) { + elem.addEventListener( type, fn, false ); + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, fn ); + } else { + fn(); + } +} + +function id(name) { + return !!(typeof document !== "undefined" && document && document.getElementById) && + document.getElementById( name ); +} + +// Test for equality any JavaScript type. +// Discussions and reference: http://philrathe.com/articles/equiv +// Test suites: http://philrathe.com/tests/equiv +// Author: Philippe Rathé +QUnit.equiv = function () { + + var innerEquiv; // the real equiv function + var callers = []; // stack to decide between skip/abort functions + var parents = []; // stack to avoiding loops from circular referencing + + // Call the o related callback with the given arguments. + function bindCallbacks(o, callbacks, args) { + var prop = QUnit.objectType(o); + if (prop) { + if (QUnit.objectType(callbacks[prop]) === "function") { + return callbacks[prop].apply(callbacks, args); + } else { + return callbacks[prop]; // or undefined + } + } + } + + var callbacks = function () { + + // for string, boolean, number and null + function useStrictEquality(b, a) { + if (b instanceof a.constructor || a instanceof b.constructor) { + // to catch short annotaion VS 'new' annotation of a declaration + // e.g. var i = 1; + // var j = new Number(1); + return a == b; + } else { + return a === b; + } + } + + return { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + + "nan": function (b) { + return isNaN(b); + }, + + "date": function (b, a) { + return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf(); + }, + + "regexp": function (b, a) { + return QUnit.objectType(b) === "regexp" && + a.source === b.source && // the regex itself + a.global === b.global && // and its modifers (gmi) ... + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline; + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function () { + var caller = callers[callers.length - 1]; + return caller !== Object && + typeof caller !== "undefined"; + }, + + "array": function (b, a) { + var i, j, loop; + var len; + + // b could be an object literal here + if ( ! (QUnit.objectType(b) === "array")) { + return false; + } + + len = a.length; + if (len !== b.length) { // safe and faster + return false; + } + + //track reference to avoid circular references + parents.push(a); + for (i = 0; i < len; i++) { + loop = false; + for(j=0;j= 0) { + type = "array"; + } else { + type = typeof obj; + } + return type; + }, + separator:function() { + return this.multiline ? this.HTML ? '
    ' : '\n' : this.HTML ? ' ' : ' '; + }, + indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing + if ( !this.multiline ) + return ''; + var chr = this.indentChar; + if ( this.HTML ) + chr = chr.replace(/\t/g,' ').replace(/ /g,' '); + return Array( this._depth_ + (extra||0) ).join(chr); + }, + up:function( a ) { + this._depth_ += a || 1; + }, + down:function( a ) { + this._depth_ -= a || 1; + }, + setParser:function( name, parser ) { + this.parsers[name] = parser; + }, + // The next 3 are exposed so you can use them + quote:quote, + literal:literal, + join:join, + // + _depth_: 1, + // This is the list of parsers, to modify them, use jsDump.setParser + parsers:{ + window: '[Window]', + document: '[Document]', + error:'[ERROR]', //when no parser is found, shouldn't happen + unknown: '[Unknown]', + 'null':'null', + undefined:'undefined', + 'function':function( fn ) { + var ret = 'function', + name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE + if ( name ) + ret += ' ' + name; + ret += '('; + + ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join(''); + return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' ); + }, + array: array, + nodelist: array, + arguments: array, + object:function( map ) { + var ret = [ ]; + QUnit.jsDump.up(); + for ( var key in map ) + ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) ); + QUnit.jsDump.down(); + return join( '{', ret, '}' ); + }, + node:function( node ) { + var open = QUnit.jsDump.HTML ? '<' : '<', + close = QUnit.jsDump.HTML ? '>' : '>'; + + var tag = node.nodeName.toLowerCase(), + ret = open + tag; + + for ( var a in QUnit.jsDump.DOMAttrs ) { + var val = node[QUnit.jsDump.DOMAttrs[a]]; + if ( val ) + ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' ); + } + return ret + close + open + '/' + tag + close; + }, + functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function + var l = fn.length; + if ( !l ) return ''; + + var args = Array(l); + while ( l-- ) + args[l] = String.fromCharCode(97+l);//97 is 'a' + return ' ' + args.join(', ') + ' '; + }, + key:quote, //object calls it internally, the key part of an item in a map + functionCode:'[code]', //function calls it internally, it's the content of the function + attribute:quote, //node calls it internally, it's an html attribute value + string:quote, + date:quote, + regexp:literal, //regex + number:literal, + 'boolean':literal + }, + DOMAttrs:{//attributes to dump from nodes, name=>realName + id:'id', + name:'name', + 'class':'className' + }, + HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) + indentChar:' ',//indentation unit + multiline:true //if true, items in a collection, are separated by a \n, else just a space. + }; + + return jsDump; +})(); + +// from Sizzle.js +function getText( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += getText( elem.childNodes ); + } + } + + return ret; +}; + +/* + * Javascript Diff Algorithm + * By John Resig (http://ejohn.org/) + * Modified by Chu Alan "sprite" + * + * Released under the MIT license. + * + * More Info: + * http://ejohn.org/projects/javascript-diff-algorithm/ + * + * Usage: QUnit.diff(expected, actual) + * + * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick brown fox jumped jumps over" + */ +QUnit.diff = (function() { + function diff(o, n){ + var ns = new Object(); + var os = new Object(); + + for (var i = 0; i < n.length; i++) { + if (ns[n[i]] == null) + ns[n[i]] = { + rows: new Array(), + o: null + }; + ns[n[i]].rows.push(i); + } + + for (var i = 0; i < o.length; i++) { + if (os[o[i]] == null) + os[o[i]] = { + rows: new Array(), + n: null + }; + os[o[i]].rows.push(i); + } + + for (var i in ns) { + if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) { + n[ns[i].rows[0]] = { + text: n[ns[i].rows[0]], + row: os[i].rows[0] + }; + o[os[i].rows[0]] = { + text: o[os[i].rows[0]], + row: ns[i].rows[0] + }; + } + } + + for (var i = 0; i < n.length - 1; i++) { + if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && + n[i + 1] == o[n[i].row + 1]) { + n[i + 1] = { + text: n[i + 1], + row: n[i].row + 1 + }; + o[n[i].row + 1] = { + text: o[n[i].row + 1], + row: i + 1 + }; + } + } + + for (var i = n.length - 1; i > 0; i--) { + if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && + n[i - 1] == o[n[i].row - 1]) { + n[i - 1] = { + text: n[i - 1], + row: n[i].row - 1 + }; + o[n[i].row - 1] = { + text: o[n[i].row - 1], + row: i - 1 + }; + } + } + + return { + o: o, + n: n + }; + } + + return function(o, n){ + o = o.replace(/\s+$/, ''); + n = n.replace(/\s+$/, ''); + var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/)); + + var str = ""; + + var oSpace = o.match(/\s+/g); + if (oSpace == null) { + oSpace = [" "]; + } + else { + oSpace.push(" "); + } + var nSpace = n.match(/\s+/g); + if (nSpace == null) { + nSpace = [" "]; + } + else { + nSpace.push(" "); + } + + if (out.n.length == 0) { + for (var i = 0; i < out.o.length; i++) { + str += '' + out.o[i] + oSpace[i] + ""; + } + } + else { + if (out.n[0].text == null) { + for (n = 0; n < out.o.length && out.o[n].text == null; n++) { + str += '' + out.o[n] + oSpace[n] + ""; + } + } + + for (var i = 0; i < out.n.length; i++) { + if (out.n[i].text == null) { + str += '' + out.n[i] + nSpace[i] + ""; + } + else { + var pre = ""; + + for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) { + pre += '' + out.o[n] + oSpace[n] + ""; + } + str += " " + out.n[i].text + nSpace[i] + pre; + } + } + } + + return str; + }; +})(); + +})(this); \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/class.js b/bower_components/bower/Tests/tests/class.js new file mode 100644 index 00000000..8ef45068 --- /dev/null +++ b/bower_components/bower/Tests/tests/class.js @@ -0,0 +1,354 @@ +new function () { +var undefined; +module('[Atom Plugins] Class'); + +test('Creating', function(){ + var Foo = atom.Class({ + name: null, + initialize: function (name) { + this.name = name; + }, + + property: 0, + setProperty: function(property) { this.property = property; }, + getProperty: function() { return this.property; }, + + _etter: 0, + set etter(etter) { this._etter = etter * 2; }, + get etter() { return this._etter + 5; } + }); + + var foo = new Foo('fooName'); + var bar = new Foo('barName'); + + // instance + equal(typeof foo, 'object', 'typeof foo == "object"'); + ok(foo instanceof Foo, 'foo instanceof Foo'); + + // methods + equal(foo.name, 'fooName', 'Foo.initialize'); + + equal(foo.property, 0, 'Foo.property default value'); + equal(foo.getProperty(), 0, 'Foo.getProperty() default value'); + foo.setProperty(7); + equal(foo.property, 7, 'Foo.property new value'); + equal(foo.getProperty(), 7, 'Foo.getProperty() new value'); + + // getters/setters + foo.etter = 9; + equal(foo._etter, 18, 'Property setter'); + equal(foo.etter, 23, 'Property getter'); +}); + +test('Extending', function(){ + var Foo = atom.Class({ + name: null, + initialize: function (name) { this.name = name; }, + + property: 0, + setProperty: function(property) { this.property = property; }, + getProperty: function() { return this.property; }, + + _etter: 0, + set etter(etter) { this._etter = etter * 2; }, + get etter() { return this._etter + 5; }, + + fooProperty: 21, + setFooProperty: function(fooProperty) { this.fooProperty = fooProperty; }, + getFooProperty: function() { return this.fooProperty; }, + + parentProperty: 1, + setParentProperty: function(parentProperty) { this.parentProperty = parentProperty; }, + getParentProperty: function() { return this.parentProperty; }, + + _parentSetterTest: 0, + set parentSetterTest(value) { this._parentSetterTest = value * 2; }, + get parentSetterTest() { return this._parentSetterTest * 3; } + }); + + var Bar = atom.Class({ + Extends: Foo, + + // test overload + setProperty: function(property) { this.property = property * 2; }, + getProperty: function() { return this.property + 2; }, + + // test independent properties + barProperty: 0, + setBarProperty: function(fooProperty) { this.barProperty = fooProperty; }, + getBarProperty: function() { return this.barProperty; }, + + // test calling "parent" function + setParentProperty: function(parentProperty) { this.parent(parentProperty + 3); }, + getParentProperty: function() { return this.parent() + 4; } + }); + + var Qux = atom.Class({ + Extends : Bar, + initialize: function (name) { this.parent(name) }, + setParentProperty: function(parentProperty) { this.parent(parentProperty + 3); }, + getParentProperty: function() { return this.parent() + 4; } + }); + + + var foo = new Foo('fooName'); + var bar = new Bar('barName'); + var qux = new Qux('quxName'); + + // instanceof + ok( foo instanceof Foo , ' foo instanceof Foo'); + ok(!(foo instanceof Bar), '!(foo instanceof Bar)'); + ok(!(foo instanceof Qux), '!(foo instanceof Qux)'); + ok( bar instanceof Foo , ' bar instanceof Foo'); + ok( bar instanceof Bar , ' bar instanceof Bar'); + ok(!(bar instanceof Qux), '!(bar instanceof Qux)'); + ok( qux instanceof Foo , ' qux instanceof Foo'); + ok( qux instanceof Bar , ' qux instanceof Bar'); + ok( qux instanceof Qux , ' qux instanceof Qux'); + + // methods + equal(foo.name, 'fooName', 'Foo.initialize'); + equal(bar.name, 'barName', 'Bar.initialize'); + equal(qux.name, 'quxName', 'Qux.initialize'); + + // Same in Foo + equal(foo.property, 0, 'Foo.property default value'); + equal(foo.getProperty(), 0, 'Foo.getProperty() default value'); + foo.setProperty(7); + equal(foo.property, 7, 'Foo.property new value'); + equal(foo.getProperty(), 7, 'Foo.getProperty() new value'); + + // overloaded in Bar + equal(bar.property, 0, 'Bar.property default value'); + equal(bar.getProperty(), 2, 'Bar.getProperty() overloaded'); + bar.setProperty(7); + equal(bar.property, 14, 'Bar.property new value (overloaded)'); + equal(bar.getProperty(), 16, 'Bar.getProperty() new value (overloaded)'); + + // Mathod "parent" + equal(bar.parentProperty, 1, 'Bar.parentProperty default value'); + equal(bar.getParentProperty(), 5, 'Bar.getParentProperty() overloaded'); + bar.setParentProperty(7); + equal(bar.parentProperty, 10, 'Bar.parentProperty new value (overloaded)'); + equal(bar.getParentProperty(), 14, 'Bar.getParentProperty() new value (overloaded)'); + + // chain of .parent + equal(qux.parentProperty, 1, 'Qux.parentProperty default value'); + equal(qux.getParentProperty(), 9, 'Qux.getParentProperty() overloaded'); + qux.setParentProperty(7); + equal(qux.parentProperty, 13, 'Qux.parentProperty new value (overloaded)'); + equal(qux.getParentProperty(), 21, 'Qux.getParentProperty() new value (overloaded)'); + + // parent of parent method + equal(qux.fooProperty, 21, 'parent of parent method'); + + // Setters/getters + bar.etter = 9; + equal(bar._etter, 18, 'Property setter is implemented'); + equal(bar.etter, 23, 'Property getter is implemented'); + + +}); + +test('Factory', function(){ + var Foo = atom.Class({ + firstname: null, + lastname : null, + initialize: function (firstname, lastname) { + this.firstname = firstname; + this.lastname = lastname; + } + }); + + var Bar = atom.Class({ + Extends: Foo, + surname : null, + initialize: function (firstname, lastname, surname) { + this.parent(firstname, lastname); + this.surname = surname; + } + }); + + var foo = Foo.factory(['fooFN', 'fooLN']); + var bar = Bar.factory(['barFN', 'barLN', 'barSN']); + + // instanceof + ok( foo instanceof Foo , ' foo instanceof Foo'); + ok(!(foo instanceof Bar), '!(foo instanceof Bar)'); + ok( bar instanceof Foo , ' bar instanceof Foo'); + ok( bar instanceof Bar , ' bar instanceof Bar'); + + equal(foo.firstname, 'fooFN', 'foo.firstname'); + equal(foo.lastname , 'fooLN', 'foo.lastname'); + equal(bar.firstname, 'barFN', 'bar.firstname'); + equal(bar.lastname , 'barLN', 'bar.lastname'); + equal(bar.surname , 'barSN', 'bar.surname'); +}); + +test('Static', function(){ + var Foo = atom.Class({ + Static: { + fooStat: 'fooStatValue', + qweStat: 'qweStatValue' + } + }); + + var Bar = atom.Class({ + Extends: Foo, + Static: { + qweStat: 'qweStat[Bar]', + barStat: 'barStatValue' + } + }); + + var foo = new Foo(); + var bar = new Bar(); + + equal(foo.self.fooStat, 'fooStatValue', 'foo.self.fooStat'); + equal(foo.self.qweStat, 'qweStatValue', 'foo.self.qweStat'); + equal(foo.self.barStat, undefined, 'foo.self.barStat'); + equal(bar.self.fooStat, 'fooStatValue', 'bar.self.fooStat'); + equal(bar.self.qweStat, 'qweStat[Bar]', 'bar.self.qweStat'); + equal(bar.self.barStat, 'barStatValue', 'bar.self.barStat'); +}); + +test('hiddenMethod', function () { + var Foo = atom.Class({ + value: 'original', + initialize: atom.Class.hiddenMethod(function () { + this.value = 42; + }), + method: atom.Class.hiddenMethod(function () { + this.value = 123; + }) + }); + + var Bar = atom.Class({ + Implements: [ Foo ] + }); + + var bar = new Bar(); + + equal( bar.value, 'original', 'hidden constructor hide correctly'); + equal( typeof bar.method, 'undefined', 'hidden method hide correctly'); +}); + +test('invoke', function () { + + var Foo = atom.Class({ + initialize: function (x) { + this.x = x; + } + }); + + var foo = Foo(42); + ok( foo instanceof Foo, 'Class invokation successful' ); + equal( foo.x, 42, 'Class construction successful' ); + + var Bar = atom.Class({ + Static: { + invoke: function () { + return Foo.factory(arguments); + } + } + }); + + var bar = Bar(13); + + ok( !(bar instanceof Bar), 'Class invokation rewritten' ); + equal( bar.x, 13, 'Class invokation rewritten successful' ); +}); + + +module('[Atom Plugins] Class Plugins'); + +test('Events', function(){ + // todo: write tests. + expect(2); + + var Eventable = atom.Class({ + Implements: [atom.Class.Events] + }); + + var eventable = new Eventable(); + + eventable.addEvent('foo', function (arg) { + ok(true, 'Event fired!'); + equal(arg, 'bar', 'Argument is correct!'); + }); + + eventable.fireEvent('foo', ['bar']); +}); + +test('Options', function(){ + var Foo = atom.Class({ + Implements: [ atom.Class.Options ] + }); + + var foo = new Foo(); + var fooOptions = { a: 15, b: 31, c: { m : 12 } }; + deepEqual(foo.options, {}, 'Empty options object'); + foo.setOptions(fooOptions); + deepEqual(foo.options, fooOptions, 'Recursive setting options'); + notEqual (foo.options, fooOptions, 'Options cloned'); + fooOptions.b = 3; + fooOptions.d = 4; + foo.setOptions({ b : 3 } , { d : 4 }); + deepEqual(foo.options, fooOptions, 'Several arguments added'); + + var Bar = atom.Class({ + Implements: [ atom.Class.Options ], + options: { k: 15 } + }); + var bar = new Bar(); + var bar2 = new Bar(); + bar.setOptions({ z: 5 }); + + deepEqual( bar.options, { k: 15, z: 5 }, 'default options linked success'); + deepEqual(bar2.options, { k: 15 }, 'options cloned'); +}); + +test('bindAll', function(){ + var Overall = atom.Class({ + initialize: function (title) { this.title = title; }, + getTitle : function ( ) { return this.title; }, + getTitle2 : function ( ) { return this.title; } + }); + + var BindAll = atom.Class({ + Extends: Overall, + + initialize: function (title) { + atom.Class.bindAll( this ); + this.parent(title); + } + }); + + var BindOne = atom.Class({ + Extends: Overall, + + initialize: function (title) { + atom.Class.bindAll( this, [ 'getTitle' ]); + this.parent(title); + } + }); + + var overall = new Overall('oa'); + var bindAll = new BindAll('ba'); + var bindOne = new BindOne('bo'); + + raises(function () { + (1, overall.getTitle )(); + }, TypeError, 'Plain - context losted'); + raises(function () { + (1, overall.getTitle2 )(); + }, TypeError, 'Plain - context losted'); + equal( (1, bindAll.getTitle )(), 'ba', 'bindAll - context saved' ); + equal( (1, bindAll.getTitle2)(), 'ba', 'bindAll - context saved' ); + equal( (1, bindOne.getTitle )(), 'bo', 'bindOne - context saved' ); + raises(function () { + (1, bindOne.getTitle2 )(); + }, TypeError, 'bindOne - context losted'); +}); + +}; \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/color.js b/bower_components/bower/Tests/tests/color.js new file mode 100644 index 00000000..8ba2a437 --- /dev/null +++ b/bower_components/bower/Tests/tests/color.js @@ -0,0 +1,101 @@ + +module('[Atom Plugins] Color'); + +test('Color Constructing', function(){ + var color; + + color = new atom.Color('#ac45de'); + + equal(color.r, 172, 'Hex: red is correct'); + equal(color.g, 69, 'Hex: green is correct'); + equal(color.b, 222, 'Hex: blue is correct'); + equal(color.a, 1, 'Hex: alpha is default'); + + color = new atom.Color(24, 56, 12, 0.7); + + equal(color.r, 24, 'Arguments: red is correct'); + equal(color.g, 56, 'Arguments: green is correct'); + equal(color.b, 12, 'Arguments: blue is correct'); + equal(color.a, 0.7, 'Arguments: alpha is correct'); + + color = new atom.Color.Shift(-24, 56, -12, 0.7); + + equal(color.r, -24, 'No limits: red is correct'); + equal(color.g, 56, 'No limits: green is correct'); + equal(color.b, -12, 'No limits: blue is correct'); + equal(color.a, 0.7, 'No limits: alpha is correct'); + + color = new atom.Color([174, 41, 62, 0.4]); + + equal(color.r, 174, 'Array: red is correct'); + equal(color.g, 41, 'Array: green is correct'); + equal(color.b, 62, 'Array: blue is correct'); + equal(color.a, 0.4, 'Array: alpha is correct'); + + color = new atom.Color({ r: 46, g: 72, b: 0, a: 0.6 }); + + equal(color.r, 46, 'Object short: red is correct'); + equal(color.g, 72, 'Object short: green is correct'); + equal(color.b, 0, 'Object short: blue is correct'); + equal(color.a, 0.6, 'Object short: alpha is correct'); + + color = new atom.Color({ red: 12, green: 34, blue: 50 }); + + equal(color.r, 12, 'Object long: red is correct'); + equal(color.g, 34, 'Object long: green is correct'); + equal(color.b, 50, 'Object long: blue is correct'); + equal(color.a, 1, 'Object long: alpha is default'); + + color = new atom.Color(0x2246dd66); + + equal(color.r, 34, 'Number: red is correct'); + equal(color.g, 70, 'Number: green is correct'); + equal(color.b, 221, 'Number: blue is correct'); + equal(color.a, 0.4, 'Number: alpha is correct'); + + color = new atom.Color(0xff000000); + + equal(color.r, 255, 'Big Int: red is correct'); +}); + +test('Color Casting', function(){ + var color = new atom.Color(0x2246dd66); + + deepEqual( color.toArray(), [34, 70, 221, 0.4], 'color.toArray()'); + deepEqual( color.toString(), 'rgba(34,70,221,0.4)', 'color.toString()'); + deepEqual( color.toString('hex'), '#2246dd', 'color.toString("hex")'); + deepEqual( color.toString('hexA'), '#2246dd66', 'color.toString("hexA")'); + deepEqual( color.toObject(), {red:34, green:70, blue:221, alpha:0.4}, 'color.toObject()'); + deepEqual( color.toObject(true), {r:34, g:70, b:221, a:0.4}, 'color.toObject(true)'); + deepEqual( color.toNumber(), 0x2246dd66, 'color.toNumber()'); +}); + +test('Color Equals', function(){ + var foo = new atom.Color(0x2246dd66); + var bar = new atom.Color(0x2246dd66); + var red = new atom.Color(0xff0000ff); + + notEqual(foo, bar, 'foo & bar are different objects'); + ok( foo.equals(bar), 'foo equals bar'); + ok(!foo.equals(red), 'foo not equals red'); + ok(!foo.equals(null),'foo not equals null'); +}); + +test('Color maniplations', function () { + var foo, bar; + + foo = 0x12345678, bar = new atom.Color(foo); + + ok( atom.Color(foo).equals(bar), 'Color.invoke' ); + + foo = new atom.Color(foo); + + ok( atom.Color(foo).equals(bar), 'Color.invoke empty' ); + + foo = new atom.Color([ 255, 240, 225, 0.8 ]); + bar = new atom.Color([ 220, 240, 250, 0.4 ]); + var diff = new atom.Color.Shift([ -35, 0, 25, -0.4 ]); + + ok( foo.diff(bar).equals(diff), 'foo.diff(bar) is correct' ); + ok( foo.move(diff).equals(bar), 'foo.move(bar) is correct' ); +}); \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/core.js b/bower_components/bower/Tests/tests/core.js new file mode 100644 index 00000000..cf14f3a8 --- /dev/null +++ b/bower_components/bower/Tests/tests/core.js @@ -0,0 +1,82 @@ + +new function(undefined) { + +module('[Atom Core]'); + +test('Initialize', function(){ + ok( atom, 'atom' ); +}); +test('JavaScript 1.8.5 Compatiblity', function(){ + equal( typeof (function(){}.bind) , 'function', 'typeof function(){}.bind' ); + equal( typeof Object.keys , 'function', 'typeof Object.keys' ); + equal( typeof Array.isArray, 'function', 'typeof Array.isArray' ); + + ok( Array.isArray([]), ' Array.isArray([])' ); + ok( !Array.isArray({}), '!Array.isArray({})' ); + + deepEqual( Object.keys({3:3,a:1,b:2}), ['3','a','b'], 'Object.keys({a:1,b:2,3:3})' ); +}); +test('atom.typeOf', function(){ + equal( atom.typeOf(document.body), 'element' , 'atom.typeOf(document.body)'); + equal( atom.typeOf(function(){}) , 'function' , 'atom.typeOf(function(){})'); + equal( atom.typeOf(new Date()) , 'date' , 'atom.typeOf(new Date())'); + equal( atom.typeOf(null) , 'null' , 'atom.typeOf(null)'); + equal( atom.typeOf(arguments), 'arguments', 'atom.typeOf(arguments)'); + equal( atom.typeOf(/abc/i) , 'regexp' , 'atom.typeOf(/abc/i)'); + equal( atom.typeOf([]) , 'array' , 'atom.typeOf([])'); + equal( atom.typeOf({}) , 'object' , 'atom.typeOf({})'); + equal( atom.typeOf(15) , 'number' , 'atom.typeOf(15)'); + equal( atom.typeOf(true) , 'boolean' , 'atom.typeOf(true)'); +}); +test('atom.clone', function(){ + // array cloning + var mixed, object, array, clone; + array = [1,2,3,[4,5]]; + clone = atom.clone(array); + notStrictEqual(clone, array, 'array !== clone'); + deepEqual(clone, array, 'clone is same to array'); + clone[4] = 'changed'; + notDeepEqual(clone, array, 'clone is changed'); + + // hash cloning + object = {a:'2', b:'3', array: [1,2,3], object: {foo:'bar'}}; + clone = atom.clone(object); + notStrictEqual(clone, object, 'object !== clone'); + deepEqual(clone, object, 'clone is same to object'); + clone['prop'] = 'changed'; + notDeepEqual(clone, object, 'clone is changed'); + + // object cloning + var Foo = function (name) { this.name = name; }; + var Bar = function (name) { + this.name = name; + this.clone = function () { + return new Bar('clone of ' + this.name); + }; + }; + + object = {foo: new Foo('fooName'), bar: new Bar('barName')}; + clone = atom.clone(object); + notStrictEqual(object.bar, clone.bar, 'Objects with "clone" - cloning'); + equal(clone.bar.name, 'clone of barName', 'Objects with "clone" - cloning'); + + // todo: [qtest] accessors +}); + + +// todo: [qtest] atom.merge +test('atom.extend', function(){ + atom.extend({ + get testProp() { return 'testPropValue:static'; }, + testMethod: function () { return 'testMethodValue:static'; } + }); + equal(atom.testProp, 'testPropValue:static' , 'atom.extend getter'); + equal(atom.testMethod(), 'testMethodValue:static', 'atom.extend method'); + + var testObject = {}; + atom.extend(testObject, { prop : 'Yes' }); + equal(testObject.prop, 'Yes', 'atom object extend'); +}); + + +}; \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/declare.js b/bower_components/bower/Tests/tests/declare.js new file mode 100644 index 00000000..09c54129 --- /dev/null +++ b/bower_components/bower/Tests/tests/declare.js @@ -0,0 +1,377 @@ +new function () { + +var undefined; + +module('[Atom Plugins] Declare'); + +test('Creating', function(){ + + var Foo = atom.declare({ + name: 'default', + + initialize: function (name) { + this.name = name; + }, + + property: 0, + setProperty: function(property) { this.property = property; }, + getProperty: function() { return this.property; }, + + _accessor: 0, + set accessor(accessor) { this._accessor = accessor * 2; }, + get accessor() { return this._accessor + 5; } + }); + + var foo = new Foo('fooName'); + var bar = new Foo('barName'); + + // instance + equal(typeof foo, 'object', 'typeof foo == "object"'); + ok(foo instanceof Foo, 'foo instanceof Foo'); + + // methods + equal(foo.name, 'fooName', 'Foo.initialize'); + + equal(foo.property, 0, 'Foo.property default value'); + equal(foo.getProperty(), 0, 'Foo.getProperty() default value'); + + foo.setProperty(7); + equal(foo.property, 7, 'Foo.property new value'); + equal(foo.getProperty(), 7, 'Foo.getProperty() new value'); + + // getters/setters + foo.accessor = 9; + equal(foo._accessor, 18, 'Property setter'); + equal(foo.accessor , 23, 'Property getter'); +}); + +test('Extending', function(){ + var Foo = atom.declare({ + name: null, + initialize: function (name) { this.name = name; }, + + property: 0, + setProperty: function(property) { this.property = property; }, + getProperty: function() { return this.property; }, + + _accessor: 0, + set accessor(accessor) { this._accessor = accessor * 2; }, + get accessor() { return this._accessor + 5; }, + + fooProperty: 21, + setFooProperty: function(fooProperty) { this.fooProperty = fooProperty; }, + getFooProperty: function() { return this.fooProperty; }, + + parentProperty: 1, + setParentProperty: function(parentProperty) { this.parentProperty = parentProperty; }, + getParentProperty: function() { return this.parentProperty; }, + + _parentSetterTest: 0, + set parentSetterTest(value) { this._parentSetterTest = value * 2; }, + get parentSetterTest() { return this._parentSetterTest * 3; } + }); + + var Bar = atom.declare({ + parent: Foo, + + prototype: { + // test overload + setProperty: function(property) { + this.property = property * 2; + }, + getProperty: function() { return this.property + 2; }, + + // test independent properties + barProperty: 0, + setBarProperty: function(fooProperty) { + this.barProperty = fooProperty; + }, + getBarProperty: function() { + return this.barProperty; + }, + + // test calling "parent" function + setParentProperty: function method(parentProperty) { + method.previous.call(this, parentProperty + 3); + }, + getParentProperty: function method() { + return method.previous.call(this) + 4; + } + } + }); + + + var foo = new Foo('fooName'); + var bar = new Bar('barName'); + + // instanceof + ok( foo instanceof Foo , ' foo instanceof Foo'); + ok(!(foo instanceof Bar), '!(foo instanceof Bar)'); + ok( bar instanceof Foo , ' bar instanceof Foo'); + ok( bar instanceof Bar , ' bar instanceof Bar'); + + // methods + equal(foo.name, 'fooName', 'Foo.initialize'); + equal(bar.name, 'barName', 'Bar.initialize'); + + // Same in Foo + equal(foo.property, 0, 'Foo.property default value'); + equal(foo.getProperty(), 0, 'Foo.getProperty() default value'); + foo.setProperty(7); + equal(foo.property, 7, 'Foo.property new value'); + equal(foo.getProperty(), 7, 'Foo.getProperty() new value'); + + // overloaded in Bar + equal(bar.property, 0, 'Bar.property default value'); + equal(bar.getProperty(), 2, 'Bar.getProperty() overloaded'); + bar.setProperty(7); + equal(bar.property, 14, 'Bar.property new value (overloaded)'); + equal(bar.getProperty(), 16, 'Bar.getProperty() new value (overloaded)'); + + // Mathod "parent" + equal(bar.parentProperty, 1, 'Bar.parentProperty default value'); + equal(bar.getParentProperty(), 5, 'Bar.getParentProperty() overloaded'); + bar.setParentProperty(7); + equal(bar.parentProperty, 10, 'Bar.parentProperty new value (overloaded)'); + equal(bar.getParentProperty(), 14, 'Bar.getParentProperty() new value (overloaded)'); + + // Setters/getters + bar.accessor = 9; + equal(bar._accessor, 18, 'Property setter is implemented'); + equal(bar.accessor, 23, 'Property getter is implemented'); + +}); + +test('Factory', function(){ + var Foo = atom.declare({ + name: 'Foo', + + firstname: null, + lastname : null, + initialize: function (firstname, lastname) { + this.firstname = firstname; + this.lastname = lastname; + } + }); + + var Bar = atom.declare({ + name: 'Bar', + + parent: Foo, + + prototype: { + surname : null, + initialize: function (firstname, lastname, surname) { + Foo.prototype.initialize.call(this, firstname, lastname); + this.surname = surname; + } + } + }); + + var foo = Foo.factory(['fooFN', 'fooLN']); + var bar = Bar.factory(['barFN', 'barLN', 'barSN']); + + // instanceof + ok( foo instanceof Foo , ' foo instanceof Foo'); + ok(!(foo instanceof Bar), '!(foo instanceof Bar)'); + ok( bar instanceof Foo , ' bar instanceof Foo'); + ok( bar instanceof Bar , ' bar instanceof Bar'); + + equal(foo.firstname, 'fooFN', 'foo.firstname'); + equal(foo.lastname , 'fooLN', 'foo.lastname'); + equal(bar.firstname, 'barFN', 'bar.firstname'); + equal(bar.lastname , 'barLN', 'bar.lastname'); + equal(bar.surname , 'barSN', 'bar.surname'); +}); + +test('Static', function(){ + + var Foo = atom.declare({ + own: { + fooStat: 'fooStatValue', + qweStat: 'qweStatValue' + }, + + prototype: {} + }); + + var Bar = atom.declare({ + parent: Foo, + own: { + qweStat: 'qweStat[Bar]', + barStat: 'barStatValue' + }, + prototype: {} + }); + + var foo = new Foo(); + var bar = new Bar(); + + equal(foo.constructor, Foo, 'correct Foo constructor'); + equal(bar.constructor, Bar, 'correct Bar constructor'); + + equal(foo.constructor.fooStat, 'fooStatValue', 'foo.constructor.fooStat'); + equal(foo.constructor.qweStat, 'qweStatValue', 'foo.constructor.qweStat'); + equal(foo.constructor.barStat, undefined, 'foo.constructor.barStat'); + + equal(bar.constructor.fooStat, 'fooStatValue', 'bar.constructor.fooStat'); + equal(bar.constructor.qweStat, 'qweStat[Bar]', 'bar.constructor.qweStat'); + equal(bar.constructor.barStat, 'barStatValue', 'bar.constructor.barStat'); +}); + +test('invoke', function () { + + var Foo = atom.declare( 'Foo', { + initialize: function (x) { + this.x = x; + } + }); + + var foo = Foo(42); + ok( foo instanceof Foo, 'Class invokation successful' ); + equal( foo.x, 42, 'Class construction successful' ); + + var Bar = atom.declare( 'Bar', { + own: { + invoke: function iiinvoke () { + return Foo.factory(arguments); + } + }, + + prototype: {} + }); + + var bar = Bar(13); + + ok( !(bar instanceof Bar), 'Class invokation rewritten' ); + equal( bar.x, 13, 'Class invokation rewritten successful' ); +}); + +test('bind', function () { + + var Foo = atom.declare({ + value: 'proto', + initialize: function () { + this.bindMethods([ 'foo' ]); + }, + foo: function () { + return this.value; + }, + bar: function () { + return this.value; + } + }); + + var foo = new Foo(); + + var cache = { + value: 'object', + foo: foo.foo, + bar: foo.bar + }; + + equal( cache.foo(), 'proto' , 'method is binded' ); + equal( cache.bar(), 'object', 'method is not binded' ); +}); + +test('AutoDefine', function () { + + var Foo = atom.declare( 'DeclareAutoDefine.Qux.Foo' ); + + equal( Foo, DeclareAutoDefine.Qux.Foo, 'declare auto define' ); + equal( Foo.NAME, 'DeclareAutoDefine.Qux.Foo', 'defineName as constructor name' ); + +}); + +test('With Class', function () { + + var Foo = atom.declare({ + own: { + nop: 'noob' + }, + prototype: { + initialize: function (value) { + this.qwe = 'qwe ' + value; + }, + method: function (value) { + this.asd = 'asd ' + value; + }, + another: function (value) { + this.qux = 'qux ' + value; + } + } + }); + + var Bar = atom.Class({ + Extends: Foo, + initialize: function (value) { + this.parent('barI ' + value); + }, + method: function (value) { + this.parent('barM ' + value); + } + }); + + equal(Bar.nop, 'noob', 'correct static extend'); + + var bar = new Bar('ii'); + bar.method('mm'); + bar.another('aa'); + + equal(bar.qwe, 'qwe barI ii', 'correct initialize parent'); + equal(bar.asd, 'asd barM mm', 'correct method parent'); + equal(bar.qux, 'qux aa' , 'correct method without override'); + + +}); + +module('[Atom Plugins] Declare Plugins'); + +asyncTest('Events', 9, function(){ + var events = new atom.Events({ foo: 'fooValue' }); + + var callback = function (arg) { + ok(true, 'Event fired!'); + equal(arg, 'bar', 'Argument is correct'); + equal(this.foo, 'fooValue', 'Context is correct'); + }; + + events.add('foo', callback); + events.fire( 'foo', ['bar'] ); + + events.remove('foo', callback); + events.fire( 'foo', ['qux'] ); + + events.add( 'qwe', function (arg) { + ok(true, 'Ready event pre-binded'); + equal(arg, 'rush', 'Ready event pre-binded argument is correct'); + equal(this.foo, 'fooValue', 'Ready event pre-binded context is correct'); + }); + events.ready( 'qwe', [ 'rush' ]); + events.add( 'qwe', function (arg) { + ok(true, 'Ready event post-binded'); + equal(arg, 'rush', 'Ready event post-binded argument is correct'); + equal(this.foo, 'fooValue', 'Ready event post-binded context is correct'); + }); + + + setTimeout(function () { + start(); + }, 20); +}); + +test('Settings', function(){ + var settings = atom.Settings(); + + var foo = { a: 15, b: 31, c: { m : 12 } }; + deepEqual(settings.values, {}, 'Empty options object'); + settings.set(foo); + deepEqual(settings.values, foo, 'Recursive setting options'); + notEqual (settings.values, foo, 'Options cloned'); + + var another = atom.Settings({ k: 15 }); + another.set({ z: 5 }); + deepEqual( another.values, { k: 15, z: 5 }, 'default options linked success'); +}); + +}; \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/dom.js b/bower_components/bower/Tests/tests/dom.js new file mode 100644 index 00000000..8deea0d0 --- /dev/null +++ b/bower_components/bower/Tests/tests/dom.js @@ -0,0 +1,208 @@ +new function () { + +var ID = 'qunit-fixture', $ID = '#' + ID, + win = window, doc = win.document, + wrapper = doc.getElementById(ID), slice=[].slice; + +module('[Atom Plugins] Dom'); + +test('Get', function(){ + strictEqual(atom.dom().get(), doc, 'atom.dom() is document'); + strictEqual(atom.dom('body').first, doc.body, 'atom.dom("body") is body'); + strictEqual(atom.dom('unknownTag').length, 0, 'atom.dom("unknownTag") returns nothing'); + strictEqual(atom.dom($ID + ' p').length , wrapper.getElementsByTagName('p').length , 'atom.dom("#cid p") right length'); + strictEqual(atom.dom('.foo', $ID).length, wrapper.getElementsByClassName('foo').length, 'atom.dom(".foo", "#cid") right length'); + strictEqual(atom.dom($ID).first, wrapper, 'atom.dom($ID).first'); + strictEqual(atom.dom(atom.dom($ID)).first, wrapper, 'atom.dom(atom.dom($ID)).first'); + deepEqual(atom.dom('#element_is_null').elems, [], 'if no element should be empty'); + // todo: [qtest] full of DOM plugin +}); + +test('atom.dom.create', function () { + var $canvas = atom.dom.create('canvas', { width: 100 }); + + ok($canvas instanceof atom.dom, 'atom.dom.create creates element, wrapped with atom.dom' ); + equal($canvas.length, 1, 'atom.dom.create creates one element'); + equal($canvas.first.tagName, 'CANVAS', 'atom.dom.create creates one element with correct name'); + equal($canvas.attr('width'), 100, 'attr sets correctly'); + +}); + +test('atom.dom().attr', function() { + var $elem = atom.dom($ID + ' code'); + + strictEqual($elem.attr('style'), wrapper.getElementsByTagName('code')[0].getAttribute('style'), 'atom.dom("#cid code").attr("style") right attribute content'); + $elem.attr('data-test-attr', 42); + equal($elem.attr('data-test-attr'), 42, 'atom.dom("#cid code").attr("data-test-attr", "42") attribute must equal to 42'); +}); + +test('atom.dom().css', function() { + var $elem = atom.dom($ID + ' code'); + + + strictEqual($elem.css('color'), 'rgb(150, 150, 150)', 'inline style "color" of atom.dom("#cid code") must equal to "rgb(150, 150, 150)"'); + strictEqual(atom.dom($ID).css('position'), 'absolute', 'css style "position" of atom.dom("#cid") must equal to "absolute"'); + + $elem.css('color', 'rgb(100, 100, 100)'); + strictEqual($elem.css('color'), 'rgb(100, 100, 100)', 'set the css style "color" of atom.dom("#cid code") should be equal to "rgb(100, 100, 100)"'); + + $elem.css({ + color: 'rgb(80, 80, 80)', + backgroundColor: 'rgb(30, 30, 30)' + }); + strictEqual($elem.css('color'), 'rgb(80, 80, 80)', 'set the css style ("color") of atom.dom("#cid code") should be equal to "rgb(80, 80, 80)"'); + strictEqual($elem.css('background-color'), 'rgb(30, 30, 30)', 'set the css style ("backgroundColor") of atom.dom("#cid code") should be equal to "rgb(30, 30, 30)"'); +}); + +test('atom.dom().addClass', function() { + var $elem = atom.dom($ID + ' p'); + $elem.each(function(e){e.className = ''}); + + $elem.addClass('cls1'); + deepEqual(slice.call(wrapper.getElementsByClassName('cls1'), 0), slice.call($elem.elems, 0), 'addClass("cls1") must make elements selectable with getElementsByClassName("cls1")'); + + var $elem2 = atom.dom($elem.elems.slice(0,2)); + $elem2.addClass('cls2'); + deepEqual(slice.call(wrapper.getElementsByClassName('cls2'), 0), slice.call($elem2.elems, 0), 'addClass("cls2") must make elements selectable with getElementsByClassName("cls2")'); + deepEqual(slice.call(wrapper.getElementsByClassName('cls1'), 0), slice.call($elem.elems, 0), 'addClass("cls2") must not remove "cls1" from elements'); + + var $elem3 = atom.dom($elem.first); + $elem3.addClass(['cls1', 'cls2']); + var classes = $elem3.first.className.split(' '); + strictEqual(classes.length, 2, 'repeated adding classes must have no effect'); + + // cleanup + $elem.each(function(e){e.className = ''}); +}); + +test('atom.dom().removeClass', function() { + var $elem = atom.dom($ID + ' p'); + $elem.each(function(e){e.className = 'cls1'}); + var $elem2 = atom.dom($elem.elems.slice(0,2)); + $elem2.each(function(e){e.className = 'cls2 cls1'}); + + var $elem3 = atom.dom($elem.get(0)); + $elem3.removeClass('cls1'); + strictEqual($elem3.get(0).className, 'cls2', 'removeClass("cls1") must remove class "cls1" but keep "cls2"'); + + $elem.removeClass('cls2'); + strictEqual($elem3.get(0).className, '', 'removeClass("cls2") must remove class "cls2"'); + deepEqual(slice.call(wrapper.getElementsByClassName('cls2'), 0), [], 'removeClass("cls2") must remove class "cls2" from all elements'); + + // cleanup + $elem.each(function(e){e.className = ''}); +}); + +test('atom.dom().hasClass', function() { + var $elem = atom.dom($ID + ' p'); + $elem.each(function(e){e.className = 'cls1'}); + + strictEqual($elem.hasClass('cls1'), true, 'hasClass("cls1") must return true if elements\' className is "cls1"'); + strictEqual($elem.hasClass('cls2'), false, 'hasClass("cls2") must return false if elements\' className is "cls1"'); + + var $elem2 = atom.dom($elem.elems.slice(0,2)); + $elem2.each(function(e){e.className='cls2 cls3'}); + + strictEqual($elem.hasClass('cls1'), true, 'hasClass(class) must return true if one of the elements has this class'); + strictEqual($elem.hasClass('cls2'), true, 'hasClass(class) must return true if one of the elements has this class'); + strictEqual($elem.hasClass(['cls2','cls3']), true, 'hasClass([classes]) must return true if one of the elements has all the classes'); + strictEqual($elem.hasClass(['cls1','cls3']), false, 'hasClass([classes]) must return false if none of the elements has all the classes'); + + // cleanup + $elem.each(function(e){e.className = ''}); +}); + +test('atom.dom().toggleClass', function() { + var $elem = atom.dom($ID + ' p'); + $elem.each(function(e){e.className = 'cls1'}); + var $elem2 = atom.dom($elem.elems.slice(0,2)); + $elem2.each(function(e){e.className='cls2 cls3'}); + + $elem.toggleClass('cls1'); + deepEqual(slice.call(wrapper.getElementsByClassName('cls1'), 0), slice.call($elem2.elems, 0), 'after toggling "cls1" the only elements having "cls1" must be those which didn\'t have "cls1" before toggling'); + $elem.toggleClass(['cls1','cls2']); + strictEqual($elem2.hasClass(['cls2','cls3']), false, 'there must not be any element in $elem2 having both "cls2" and "cls3"'); + strictEqual($elem.hasClass(['cls2','cls1']), true, 'there must be some elements in $elem having both "cls2" and "cls1"'); + + // cleanup + $elem.each(function(e){e.className = ''}); +}); + +test('atom.dom().html', function() { + var $elem = atom.dom($ID + ' h1'); + + $elem.html('42'); + strictEqual($elem.html(), '42', 'html content atom.dom("#cid h1") should be equal to "42", because it was added as html content') +}); + +test('atom.dom().text', function() { + var $elem = atom.dom($ID + ' h1'); + + $elem.html('42'); + strictEqual($elem.text(), '42', 'text content atom.dom("#cid h1") should be equal to "42", but html content is "42"'); + + $elem.find('span').text(24); + strictEqual($elem.find('span').text(), '24', 'text content atom.dom("#cid h1") should be equal to "24", because it was changed from 42'); +}); + +test('atom.dom().parent', function() { + var $elem = atom.dom.create('span').appendTo(atom.dom($ID + ' h1').html('')); + + $elem.html('' + 24 + ''); + strictEqual($elem.find('b').parent().html(), $elem.html(), 'html content should be equal to "24", because this content have parent element'); + strictEqual($elem.find('b').parent(2).html(), $elem.parent().html(), 'html content should be equal to "24", because this content have parent(2) element'); +}); + +test('atom.dom().bind', function () { + var $elem = atom.dom.create('div'); + var bind = false; + + $elem.bind("click", function () { + bind = true; + }).bind("click", false); + + var event = document.createEvent("MouseEvent"); + event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + + ok(!$elem.first.dispatchEvent(event), "bind('click', false) should prevent default action"); + ok(bind, "event listener should was called on click event"); +}); + +test('atom.dom().unbind', function () { + var $elem = atom.dom.create('div'); + var bind = 0; + + $elem.bind("click", function listener () { + bind++; + $elem.unbind("click", listener); + }); + + var event = document.createEvent("MouseEvent"); + event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + + $elem.first.dispatchEvent(event); + $elem.first.dispatchEvent(event); + + equal(bind, 1, "unbind should detach event listener"); +}); + +// Пусть всегда будет последним, чтобы не вешал остальные тесты! +asyncTest('atom.dom (ready)', 3, function () { + atom.dom(function () { + ok(true, 'onready runned'); + + var async = false; + atom.dom(function () { + ok(true, 'onReady should wait for events even after ready'); + ok(async, 'onReady should runs async always'); + }); + async = true; + }); + + setTimeout(function () { + // it has 1 sec for onDomReady + start(); + }, 1000); +}); + +}; diff --git a/bower_components/bower/Tests/tests/mootools.js b/bower_components/bower/Tests/tests/mootools.js new file mode 100644 index 00000000..bad8eaa8 --- /dev/null +++ b/bower_components/bower/Tests/tests/mootools.js @@ -0,0 +1,40 @@ + +module('[MooTools]'); + +test('Prototypes.Array', function () { + ok([1,2,3,0,0,0].contains(0), 'contains: element found'); + ok(![0,1,2].contains('not found'), 'contains: element not found'); + deepEqual([1,2,3,4].include(1).include(5), [1,2,3,4,5], 'include'); + + new function () { + var a = [1,2,4]; + var b = [2,3,4,5]; + a.append(b); + deepEqual(a, [1,2,4,2,3,4,5], 'append'); + deepEqual(b, [2,3,4,5], 'append (original element left the same)'); + }; + + deepEqual([1,2,3,0,0,0].erase(0), [1,2,3], 'erase'); + deepEqual([1,2,3,4].combine([3,1,4,5,6,7]), [1,2,3,4,5,6,7], 'combine'); + + strictEqual([null, undefined, true, 1].pick(), true, 'pick: true'); + strictEqual([].pick(), null, 'pick: null'); + + deepEqual([1,2,3,0,0,0].associate(['a', 'b', 'c', 'd']), {a:1, b:2, c:3, d:0}, 'associate'); + deepEqual([null, 1, 0, true, false, "foo", undefined].clean(), [1, 0, true, false, "foo"], 'clean'); + deepEqual([1,2,3,4].empty(), [], 'empty'); + + new function () { // Array.hexToRgb + strictEqual([].hexToRgb(), null, 'hexToRgb: null'); + strictEqual(['0','0','0'].hexToRgb(), 'rgb(0,0,0)', 'hexToRgb: string, digits'); + strictEqual(['c','c','c'].hexToRgb(), 'rgb(204,204,204)', 'hexToRgb: string, alpha'); + deepEqual(['ff','ff','ff'].hexToRgb(true), [255,255,255], 'hexToRgb: array'); + }; + + new function () { + strictEqual([0,1].rgbToHex(), null, 'rgbToHex: null'); + strictEqual(['255', '0', '0'].rgbToHex(), '#ff0000', 'rgbToHex: strings'); + strictEqual([0,0,255].rgbToHex(), '#0000ff', 'rgbToHex: numbers'); + deepEqual([0,255,0].rgbToHex(true), ['00', 'ff', '00'], 'rgbToHex: array'); + }; +}); \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/prototypes.js b/bower_components/bower/Tests/tests/prototypes.js new file mode 100644 index 00000000..c542852e --- /dev/null +++ b/bower_components/bower/Tests/tests/prototypes.js @@ -0,0 +1,173 @@ + +new function () { + +/****************************************** + * [Atom Plugins] Prototypes + ******************************************/ + +module('[Atom Plugins] Prototypes'); + +test('Function', function() { + + equal(Function.lambda('Foo')(), 'Foo', 'Function.lambda'); + + // todo: [qtest] function.delay + // todo: [qtest] function.periodical +}); + +test('Number', function(){ +ok(Number.random(150, 200).between(150, 200, true), 'Number.random in right range'); + +// between +ok( (50).between(20, 80), ' (50).between(20, 80)'); +ok(!(20).between(20, 80), '!(20).between(20, 80)'); +ok(!( 0).between(20, 80), '!( 0).between(20, 80)'); +ok( (20).between(20, 80, true), ' (20).between(20, 80, true)'); +ok(!(20).between(20, 80, 'R'), '!(20).between(20, 80, "R")'); +ok( (20).between(20, 80, 'L'), ' (20).between(20, 80, "L")'); +ok( (20).between(20, 80, 'LR'), ' (20).between(20, 80, "LR")'); +ok( (80).between(20, 80, true), ' (80).between(20, 80, true)'); +ok( (80).between(20, 80, 'R'), ' (80).between(20, 80, "R")'); +ok(!(80).between(20, 80, 'L'), '!(80).between(20, 80, "L")'); +ok( (80).between(20, 80, 'LR'), ' (80).between(20, 80, "LR")'); + +// equals +ok( (5).equals(5), '(5).equals(5)' ); +ok(!(7).equals(5), '(7).equals(5)' ); +notEqual( (0.7+0.1)*10, 8, '(0.7+0.1)*10 != 8' ); +ok( ((0.7+0.1)*10).equals(8), '(0.7+0.1)*10.equals(8)' ); +ok( (0.123456).equals(0.123456), ' (0.123456).equals(0.123456)' ); +ok(!(0.123456).equals(0.123457), '!(0.123456).equals(0.123457)' ); +ok( (0.123456).equals(0.123457, 4), ' (0.123456).equals(0.123457, 4)' ); + +// limit +equal((50).limit(20, 80), 50, '(50).limit(20, 80) == 50'); +equal((10).limit(20, 80), 20, '(10).limit(20, 80) == 20'); +equal((90).limit(20, 80), 80, '(90).limit(20, 80) == 80'); + +// todo: [qtest] number.round(value) +equal((15.234).round(), 15, '(15.234).round() == 15'); + +// todo: [qtest] number.toFloat +// todo: [qtest] number.toInt +// todo: [qtest] number.stop + +// todo: [qtest] number.Math +}); + +test('String', function(){ +// todo: [qtest] string.safehtml + +ok( 'abc def ghi'.contains('abc'), 'Search with index=0' ); +ok( 'abc def ghi'.contains('def'), 'Search with index=average' ); +ok( 'abc def ghi'.contains('ghi'), 'Search with index=max' ); +ok( !'abc def ghi'.contains('xyz'), 'Fail search' ); + +// repeat +equal('ab-'.repeat(3), 'ab-ab-ab-', 'String.repeat'); + +// repeat +equal('result is {here}!'.substitute({ here: 123 }), 'result is 123!', 'String.substitute'); + +// replaceAll +equal('Repl/ace /all "/a"'.replaceAll('/a', '0'), 'Repl0ce 0ll "0"', 'String.replaceAll(from, to)'); +equal('Repl/ace /all "/a"'.replaceAll({ '/a': '0' }), 'Repl0ce 0ll "0"', 'String.replaceAll(object)'); + +// begins +ok( 'String'.begins('Str'), 'String.begins("Str")'); +ok(!'String'.begins('ing'), 'String.begins("ing")'); + + +ok(!'String'.ends('Str'), 'String.ends("Str")'); +ok( 'String'.ends('ing'), 'String.ends("ing")'); + +// [ul]cfirst +equal( 'string'.ucfirst(), 'String', 'String.ucfirst'); +equal( 'STRING'.lcfirst(), 'sTRING', 'String.lcfirst'); +}); + +test('Array', function(){ +/** Static **/ + +// todo: [qtest] Array.pickFrom +deepEqual(Array.range(5, 9), [5,6,7,8,9], 'Array.range(5, 9)'); +deepEqual(Array.range(5, 9, 2), [5, 7, 9], 'Array.range(5, 9, 2)'); +deepEqual(Array.fill(5, 8), [8,8,8,8,8], 'Array.fill(5,8)'); +deepEqual(Array.collect({a:1, b:2, c:3}, ['a','b','z'], 9), [1,2,9], 'Array.collect'); + +/** Dynamic **/ +// Contains +ok( [1,2,3,4].contains(3), ' [1,2,3,4].contains(3)' ); +ok(![1,2,3,4].contains(0), '![1,2,3,4].contains(0)' ); + +// include +deepEqual([1,2,3].include(4), [1,2,3,4], '[1,2,3].include(4)'); +deepEqual([1,2,3].include(3), [1,2,3 ], '[1,2,3].include(3)'); + +deepEqual([1,2,3].append([2,3,4]), [1,2,3,2,3,4], '[1,2,3].append([2,3,4])'); +deepEqual([1,2,3].append([2,3,4], [5,6,7]), [1,2,3,2,3,4,5,6,7], '[1,2,3].append([2,3,4],[5,6,7])'); + +// erase +deepEqual([1,2,3,1,2,3].erase(2), [1,3,1,3], 'array.erase'); + +// combine +deepEqual([1,2,3].combine([2,3,4]), [1,2,3,4], 'array.combine'); + +// last +equal([6,7,8,9].last, 9, 'array.last'); + +// random +ok([6,7,8,9].random.between(6, 9, true), 'array.random'); + +strictEqual([undefined, null, 1, undefined].pick(), 1, 'array.pick, 1'); +strictEqual([undefined, null, 0, undefined].pick(), 0, 'array.pick, 0'); +strictEqual([undefined, null, '', undefined].pick(), '', 'array.pick, ""'); +strictEqual([undefined, null, undefined].pick(), null, 'array.pick, null'); + +deepEqual([ + function (x) { return x * this.i * 0; }, + function (x) { return x * this.i * 1; }, + function (x) { return x * this.i * 2; }, + function (x) { return x * this.i * 3; } +].invoke({i : 2}, 5), [0, 10, 20, 30], 'array.invoke'); +// todo: [qtest] array.shuffle +// todo: [qtest] array.sortBy +equal([4, 1, 8, 13, 8].min(), 1, 'array.min'); +equal([4, 1, 8, 13, 8].max(), 13, 'array.max'); +equal([1, 2, 3, 4, 5].sum(), 15, 'array.sum'); +equal([1, 2, 3, 4, 5].average(), 3, 'array.average'); +deepEqual([1, 2, 1, 2, 1, 2].unique(), [1,2], 'array.unique'); +// todo: [qtest] array.associate +deepEqual([1,2,0,null,'string'].clean(), [1,2,0,'string'], 'array.clean'); +deepEqual([1,2,3].empty(), [], 'array.empty'); +deepEqual([1,2,3].clone(), [1,2,3], 'array.clone() result is similar to array'); +notStrictEqual([1,2,3].clone(), [1,2,3], 'array.clone() result not equals to array'); + +// todo: [qtest] array.hexToRgb +// todo: [qtest] array.rgbToHex +}); + +test('Object', function(){ + +deepEqual(Object.invert({ a:'x', b:'y', c:'z' }), { x:'a', y: 'b', z: 'c'}, 'Object.invert'); +deepEqual(Object.collect({ a:'x', b:'y', c:'z' }, ['a','b','k'], 5), { a:'x', b:'y', k:5}, 'Object.collect'); + +deepEqual( Object.map({a: 5, b: 6}, function (x) { return x * x }), { a: 25, b: 36 }, 'Object.map'); +// todo: [qtest] Object.deepEquals + +var undefined, test = { foo: 2, bar: { qux: 3, zog: { asd: 4 } } }; + +equal( Object.path.get(test, 'foo'), 2, 'Object.path.get: First level'); +equal( Object.path.get(test, 'bar.zog.asd'), 4, 'Object.path.get: Third level'); +strictEqual( Object.path.get(test, 'no.value'), undefined, 'Object.path.get: no such value'); + +Object.path.set(test, 'rex', 15); +Object.path.set(test, 'bar.zog.max', 42); + +equal( test.rex, 15, 'First level Object.path.set'); +equal( test.bar.zog.max, 42, 'Third level Object.path.set'); + +deepEqual(test, { foo: 2, rex: 15, bar: { qux: 3, zog: { max: 42, asd: 4 } } }); +}); + +}; \ No newline at end of file diff --git a/bower_components/bower/Tests/tests/uri.js b/bower_components/bower/Tests/tests/uri.js new file mode 100644 index 00000000..a591e579 --- /dev/null +++ b/bower_components/bower/Tests/tests/uri.js @@ -0,0 +1,69 @@ + +new function () { + +module('[Atom Plugins] Uri'); + +var testUri = function (uri, tests) { + // based on http://stevenlevithan.com/demo/parseuri/js/ + + var parse = atom.uri(uri); + + for (prop in tests) if (prop != 'queryKey') { + equal(parse[prop], tests[prop], prop); + } + + + if ('queryKey' in tests) deepEqual(parse.queryKey, tests.queryKey, 'queryKey'); +}; + +test('Full path', function(){ + var uri = 'http://usr:pwd@www.example.com:81/dir/dir.2/index.htm?q1=0&&test1&test2=value#top'; + testUri( uri, { + anchor: 'top', + query: 'q1=0&&test1&test2=value', + file: 'index.htm', + directory: '/dir/dir.2/', + path: '/dir/dir.2/index.htm', + relative: '/dir/dir.2/index.htm?q1=0&&test1&test2=value#top', + port: '81', + host: 'www.example.com', + password: 'pwd', + user: 'usr', + userInfo: 'usr:pwd', + authority: 'usr:pwd@www.example.com:81', + protocol: 'http', + source: uri, + queryKey: { + q1: '0', + test1: '', + test2: 'value' + } + }); +}); + +test('Relative path', function(){ + var uri = '/dir/dir.2/index.htm?q1=0&&test1&test2=value#top'; + testUri( uri, { + anchor: 'top', + query: 'q1=0&&test1&test2=value', + file: 'index.htm', + directory: '/dir/dir.2/', + path: '/dir/dir.2/index.htm', + relative: '/dir/dir.2/index.htm?q1=0&&test1&test2=value#top', + port: '', + host: '', + password: '', + user: '', + userInfo: '', + authority: '', + protocol: '', + source: uri, + queryKey: { + q1: '0', + test1: '', + test2: 'value' + } + }); +}); + +}; \ No newline at end of file diff --git a/bower_components/bower/Tests/visual-tests.html b/bower_components/bower/Tests/visual-tests.html new file mode 100644 index 00000000..7a965ec9 --- /dev/null +++ b/bower_components/bower/Tests/visual-tests.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/bower/atom-full-compiled.js b/bower_components/bower/atom-full-compiled.js new file mode 100644 index 00000000..942a4797 --- /dev/null +++ b/bower_components/bower/atom-full-compiled.js @@ -0,0 +1,4989 @@ + +/* +--- + +name: "AtomJS" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +authors: + - Pavel Ponomarenko aka Shock + +inspiration: + - "[JQuery](http://jquery.com)" + - "[MooTools](http://mootools.net)" + +... +*/ + +(function (Object, Array, undefined) { // AtomJS +// Safari 5 bug: +// 'use strict'; + +var + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + slice = Array .prototype.slice, + atom = this.atom = function () { + if (atom.initialize) return atom.initialize.apply(this, arguments); + }; + +atom.global = this; + +/* +--- + +name: "JavaScript 1.8.5" + +description: "JavaScript 1.8.5 Compatiblity." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +inspiration: + - "[JQuery](http://jquery.com)" + - "[MooTools](http://mootools.net)" + +provides: js185 + +... +*/ + +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind +if (!Function.prototype.bind) { + Function.prototype.bind = function(context /*, arg1, arg2... */) { + if (typeof this !== "function") throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); + + var args = slice.call(arguments, 1), + toBind = this, + Nop = function () {}, + Bound = function () { + var isInstance; + // Opera & Safari bug fixed. I must fix it in right way + // TypeError: Second argument to 'instanceof' does not implement [[HasInstance]] + try { + isInstance = this instanceof Nop; + } catch (ignored) { + // console.log( 'bind error', Nop.prototype ); + isInstance = false; + } + return toBind.apply( + isInstance ? this : ( context || {} ), + args.concat( slice.call(arguments) ) + ); + }; + Nop.prototype = toBind.prototype; + Bound.prototype = new Nop(); + return Bound; + }; +} + +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys +if (!Object.keys) (function (has) { + + Object.keys = function(obj) { + if (obj !== Object(obj)) throw new TypeError('Object.keys called on non-object'); + + var keys = [], i; + for (i in obj) if (has.call(obj, i)) keys.push(i); + return keys; + }; +})({}.hasOwnProperty); + +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray +if (!Array.isArray) { + Array.isArray = function(o) { + return o && toString.call(o) === '[object Array]'; + }; +} + +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create +if (!Object.create) { + Object.create = function (o) { + if (arguments.length > 1) { + throw new Error('Object.create implementation only accepts the first parameter.'); + } + function F() {} + F.prototype = o; + return new F(); + }; +} + +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g, ''); + } +} + +if (!String.prototype.trimLeft) { + String.prototype.trimLeft = function () { + return this.replace(/^\s+/, ''); + } +} + +if (!String.prototype.trimRight) { + String.prototype.trimRight = function () { + return this.replace(/\s+$/g, ''); + } +} + +/* +--- + +name: "Core" + +description: "The core of AtomJS." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +inspiration: + - "[JQuery](http://jquery.com)" + - "[MooTools](http://mootools.net)" + +provides: Core + +requires: + - js185 + +... +*/ + +function coreIsFunction (item) { + return item && toString.call(item) == '[object Function]'; +} + +function coreObjectize (properties, value) { + if (typeof properties != 'object') { + var key = properties; + properties = {}; + if (key != null) { + properties[key] = value; + } + } + return properties; +} + +function coreContains (array, element) { + return array.indexOf(element) >= 0; +} + +function includeUnique(array, element) { + if (!coreContains(array, element)) { + array.push(element); + } + return array; +} + +function coreEraseOne(array, element) { + element = array.indexOf(element); + if (element != -1) { + array.splice( element, 1 ); + } + return array; +} + +function coreEraseAll(array, element) { + for (var i = array.length; i--;) { + if (array[i] == element) { + array.splice( i, 1 ); + } + } + return array; +} +function coreToArray (elem) { return slice.call(elem) } +function coreIsArrayLike (item) { + return item && (Array.isArray(item) || ( + typeof item != 'string' && + !coreIsFunction(item) && + typeof item.nodeName != 'string' && + typeof item.length == 'number' + )); +} +function coreAppend(target, source) { + if (source) for (var key in source) if (hasOwn.call(source, key)) { + target[key] = source[key]; + } + return target; +} + +new function () { + + function ensureObjectSetter (fn) { + return function (properties, value) { + return fn.call(this, coreObjectize(properties, value)) + } + } + function overloadSetter (fn) { + return function (properties, value) { + properties = coreObjectize(properties, value); + for (var i in properties) fn.call( this, i, properties[i] ); + return this; + }; + } + function overloadGetter (fn, ignoreEmpty) { + return function (properties) { + if (Array.isArray(properties)) { + var result = {}, name, value; + for (var i = properties.length; i--;) { + name = properties[i]; + value = fn.call(this, name); + if (!ignoreEmpty || typeof value !== 'undefined') { + result[name] = value; + } + } + return result; + } + return fn.call(this, properties); + }; + } + /** + * Returns function that calls callbacks.get + * if first parameter is primitive & second parameter is undefined + * object.attr('name') - get + * object.attr('name', 'value') - set + * object.attr({name: 'value'}) - set + * @param {Object} callbacks + * @param {Function} callbacks.get + * @param {Function} callbacks.set + */ + function slickAccessor (callbacks) { + var setter = atom.core.overloadSetter(callbacks.set); + + return function (properties, value) { + if (typeof value === 'undefined' && typeof properties !== 'object') { + return callbacks.get.call(this, properties); + } else { + return setter.call(this, properties, value); + } + }; + } + + atom.core = { + isFunction: coreIsFunction, + objectize : coreObjectize, + contains : coreContains, + eraseOne : coreEraseOne, + eraseAll : coreEraseAll, + toArray : coreToArray, + append : coreAppend, + isArrayLike : coreIsArrayLike, + includeUnique : includeUnique, + slickAccessor : slickAccessor, + overloadSetter: overloadSetter, + overloadGetter: overloadGetter, + ensureObjectSetter: ensureObjectSetter + }; + + /** @deprecated - use atom.core.toArray instead */ + atom.toArray = coreToArray; + /** @deprecated - use console-cap instead: https://github.com/theshock/console-cap/ */ + atom.log = function () { throw new Error('deprecated') }; + /** @deprecated - use atom.core.isArrayLike instead */ + atom.isArrayLike = coreIsArrayLike; + /** @deprecated - use atom.core.append instead */ + atom.append = coreAppend; + +}; + +/* +--- + +name: "Accessors" + +description: "Implementing accessors" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: accessors + +... +*/ + +(function (Object) { + var standard = !!Object.getOwnPropertyDescriptor, nonStandard = !!{}.__defineGetter__; + + if (!standard && !nonStandard) throw new Error('Accessors are not supported'); + + var lookup = nonStandard ? + function (from, key, bool) { + var g = from.__lookupGetter__(key), s = from.__lookupSetter__(key), has = !!(g || s); + + if (bool) return has; + + return has ? { get: g, set: s } : null; + } : + function (from, key, bool) { + var descriptor = Object.getOwnPropertyDescriptor(from, key); + if (!descriptor) { + // try to find accessors according to chain of prototypes + var proto = Object.getPrototypeOf(from); + if (proto) return atom.accessors.lookup(proto, key, bool); + } else if ( descriptor.set || descriptor.get ) { + if (bool) return true; + + return { + set: descriptor.set, + get: descriptor.get + }; + } + return bool ? false : null; + }; /* lookup */ + + var define = nonStandard ? + function (object, prop, descriptor) { + if (descriptor) { + if (descriptor.get) object.__defineGetter__(prop, descriptor.get); + if (descriptor.set) object.__defineSetter__(prop, descriptor.set); + } + return object; + } : + function (object, prop, descriptor) { + if (descriptor) { + var desc = { + get: descriptor.get, + set: descriptor.set, + configurable: true, + enumerable: true + }; + Object.defineProperty(object, prop, desc); + } + return object; + }; + + atom.accessors = { + lookup: lookup, + define: function (object, prop, descriptor) { + if (typeof prop == 'object') { + for (var i in prop) define(object, i, prop[i]); + } else { + define(object, prop, descriptor); + } + return object; + }, + has: function (object, key) { + return atom.accessors.lookup(object, key, true); + }, + inherit: function (from, to, key) { + var a = atom.accessors.lookup(from, key); + + if ( a ) { + atom.accessors.define(to, key, a); + return true; + } + return false; + } + }; +})(Object); + +/* +--- + +name: "Dom" + +description: "todo" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - accessors + +inspiration: + - "[JQuery](http://jquery.org)" + +provides: dom + +... +*/ +(function (window, document) { + var + regexp = { + Tag : /^[-_a-z0-9]+$/i, + Class: /^\.[-_a-z0-9]+$/i, + Id : /^#[-_a-z0-9]+$/i + }, + isArray = Array.isArray, + prevent = function (e) { + e.preventDefault(); + return false; + }, + ignoreCssPostfix = { + zIndex: true, + fontWeight: true, + opacity: true, + zoom: true, + lineHeight: true + }, + domReady = false, + onDomReady = [], + camelCase = function (str) { + return String(str).replace(/-\D/g, function(match){ + return match[1].toUpperCase(); + }); + }, + hyphenate = function (str) { + return String(str).replace(/[A-Z]/g, function(match){ + return '-' + match[0].toLowerCase(); + }); + }, + readyCallback = function () { + if (domReady) return; + + domReady = true; + + for (var i = 0; i < onDomReady.length;) { + onDomReady[i++](); + } + + onDomReady = []; + }, + findParentByLevel = function (elem, level) { + if (level == null || level < 0) level = 1; + + if (!elem || level <= 0) return atom.dom(elem); + + return findParentByLevel(elem.parentNode, level-1); + }; + + document.addEventListener('DOMContentLoaded', readyCallback, false); + window.addEventListener('load', readyCallback, false); + + var Dom = function (sel, context) { + if (! (this instanceof Dom)) { + return new Dom(sel, context); + } + + if (!arguments.length) { + this.elems = [document]; + return this; + } + + if (!context && sel === 'body') { + this.elems = [document.body]; + return this; + } + + if (context !== undefined) { + return new Dom(context || document).find(sel); + } + context = context || document; + + if (typeof sel == 'function' && !(sel instanceof Dom)) { + // onDomReady + var fn = sel.bind(this, atom, Dom); + domReady ? setTimeout(fn, 1) : onDomReady.push(fn); + return this; + } + + var elems = this.elems = + sel == window ? [ document ] + : sel instanceof Dom ? coreToArray(sel.elems) + : coreIsArrayLike(sel) ? coreToArray(sel) + : typeof sel == 'string' ? Dom.query(context, sel) + : Dom.find(context, sel); + + if (elems.length == 1 && elems[0] == null) { + elems.length = 0; + } + + return this; + }; + coreAppend(Dom, { + query : function (context, sel) { + return sel.match(regexp.Id) ? [(context.getElementById ? context : document).getElementById(sel.substr(1))] : + sel.match(regexp.Class) ? coreToArray(context.getElementsByClassName(sel.substr(1))) : + sel.match(regexp.Tag) ? coreToArray(context.getElementsByTagName (sel)) : + coreToArray(context.querySelectorAll (sel)); + }, + find: function (context, sel) { + if (!sel) return context == null ? [] : [context]; + + var result = sel.nodeName ? [sel] + : typeof sel == 'string' ? Dom.query(context, sel) : [context]; + return (result.length == 1 && result[0] == null) ? [] : result; + }, + create: function (tagName, attr) { + var elem = new Dom(document.createElement(tagName)); + if (attr) elem.attr(attr); + return elem; + }, + isElement: function (node) { + return !!(node && node.nodeName); + } + }); + Dom.prototype = { + constructor: Dom, + elems: [], + get length() { + return this.elems ? this.elems.length : 0; + }, + get body() { + return this.find('body'); + }, + get first() { + return this.elems[0]; + }, + get : function (index) { + return this.elems[Number(index) || 0]; + }, + parent : function(step) { + return findParentByLevel(this.first, step); + }, + contains: function (child) { + var parent = this.first; + child = atom.dom(child).first; + if ( child ) while ( child = child.parentNode ) { + if( child == parent ) { + return true; + } + } + return false; + }, + filter: function (selector) { + var property = null; + // speed optimization for "tag" & "id" filtering + if (selector.match(regexp.Tag)) { + selector = selector.toUpperCase(); + property = 'tagName'; + } else if (selector.match(regexp.Id)) { + selector = selector.substr(1).toUpperCase(); + property = 'id'; + } + + return new Dom(this.elems.filter(function (elem) { + if (property) { + return elem[property].toUpperCase() == selector; + } else { + return elem.parentNode && coreToArray( + elem.parentNode.querySelectorAll(selector) + ).indexOf(elem) >= 0; + } + })); + }, + is: function (selector) { + return this.filter(selector).length > 0; + }, + html : function (value) { + if (value != null) { + this.first.innerHTML = value; + return this; + } else { + return this.first.innerHTML; + } + }, + text : function (value) { + var property = document.body.innerText == null ? 'textContent' : 'innerText'; + if (value == null) { + return this.first[property]; + } + this.first[property] = value; + return this; + }, + create : function (tagName, index, attr) { + if (typeof index == 'object') { + attr = index; + index = 0; + } + atom.dom.create(tagName, attr).appendTo( this.get(index) ); + return this; + }, + each : function (fn) { + this.elems.forEach(fn.bind(this)); + return this; + }, + attr : atom.core.slickAccessor({ + get: function (name) { + return this.first.getAttribute(name); + }, + set: function (name, value) { + var e = this.elems, i = e.length; + while (i--) { + e[i].setAttribute(name, value) + } + } + }), + css : atom.core.slickAccessor({ + get: function (name) { + return window.getComputedStyle(this.first, "").getPropertyValue(hyphenate(name)); + }, + set: function (name, value) { + var e = this.elems, i = e.length; + while (i--) { + if (typeof value == 'number' && !ignoreCssPostfix[name]) { + value += 'px'; + } + e[i].style[camelCase(name)] = value; + } + } + }), + + addEvent: atom.core.overloadSetter(function (event, callback) { + if (callback === false) callback = prevent; + + this.each(function (elem) { + if (elem == document && event == 'load') elem = window; + elem.addEventListener(event, callback, false); + }); + + return this; + }), + removeEvent : atom.core.overloadSetter(function (event, callback) { + if (callback === false) callback = prevent; + + this.each(function (elem) { + if (elem == document && event == 'load') elem = window; + elem.removeEventListener(event, callback, false); + }); + + return this; + }), + /** @deprecated */ + bind : function (event, callback) { + return this.addEvent.apply(this, arguments) + }, + /** @deprecated */ + unbind : function (event, callback) { + return this.removeEvent.apply(this, arguments) + }, + delegate : function (selector, event, fn) { + return this.bind(event, function (e) { + if (new Dom(e.target).is(selector)) { + fn.apply(this, arguments); + } + }); + }, + wrap : function (wrapper) { + wrapper = new Dom(wrapper).first; + return this.replaceWith(wrapper).appendTo(wrapper); + }, + replaceWith: function (element) { + var obj = this.first; + element = Dom(element).first; + obj.parentNode.replaceChild(element, obj); + return this; + }, + find : function (selector) { + var result = []; + this.each(function (elem) { + var i = 0, + found = Dom.find(elem, selector), + l = found.length; + while (i < l) includeUnique(result, found[i++]); + }); + return new Dom(result); + }, + appendTo : function (to) { + var fr = document.createDocumentFragment(); + this.each(function (elem) { + fr.appendChild(elem); + }); + Dom(to).first.appendChild(fr); + return this; + }, + appendBefore: function (elem) { + var fr = document.createDocumentFragment(); + this.each(function (elem) { + fr.appendChild(elem); + }); + Dom(elem).parent().first.insertBefore(fr, Dom(elem).first); + return this; + }, + appendAfter: function (elem) { + var parent = Dom(elem).parent().first; + var next = Dom(elem).first.nextSibling; + var fr = document.createDocumentFragment(); + this.each(function (elem) { + fr.appendChild(elem); + }); + + if (next) { + parent.insertBefore(fr, next); + } else { + parent.appendChild(fr); + } + + return this; + }, + /** @private */ + manipulateClass: function (classNames, fn) { + if (!classNames) return this; + if (!isArray(classNames)) classNames = [classNames]; + + return this.each(function (elem) { + var i, all = elem.className.split(/\s+/); + + for (i = classNames.length; i--;) { + fn.call(this, all, classNames[i]); + } + + elem.className = all.join(' ').trim(); + }); + }, + addClass: function (classNames) { + return this.manipulateClass(classNames, includeUnique); + }, + removeClass: function (classNames) { + return this.manipulateClass(classNames, coreEraseAll); + }, + toggleClass: function(classNames) { + return this.manipulateClass(classNames, function (all, c) { + var i = all.indexOf(c); + if (i === -1) { + all.push(c); + } else { + all.splice(i, 1); + } + }); + }, + hasClass: function(classNames) { + if (!classNames) return this; + if (!isArray(classNames)) classNames = [classNames]; + + var result = false; + this.each(function (elem) { + if (result) return; + + var i = classNames.length, + all = elem.className.split(/\s+/); + + while (i--) if (!coreContains(all, classNames[i])) { + return; + } + + result = true; + }); + return result; + }, + offset: function () { + var element = this.first; + if (element.offsetX != null) { + return { x: element.offsetX, y: element.offsetY }; + } + + var box = element.getBoundingClientRect(), + body = document.body, + docElem = document.documentElement, + scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft, + scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop, + clientLeft = docElem.clientLeft || body.clientLeft || 0, + clientTop = docElem.clientTop || body.clientTop || 0; + + return { + x: Math.round(box.left + scrollLeft - clientLeft), + y: Math.round(box.top + scrollTop - clientTop ) + }; + }, + clone: function (deep) { + var i = 0, elements = []; + + if (deep == null) deep = true; + + for (; i < this.elems.length; i++) { + elements.push(this.elems[i].cloneNode(deep)); + } + + return atom.dom(elements); + }, + empty: function () { + return this.each(function (elem) { + while (elem.hasChildNodes()) { + elem.removeChild( elem.firstChild ); + } + }); + }, + log : function () { + console.log('atom.dom: ', this.elems); + return this; + }, + destroy : function () { + return this.each(function (elem) { + if (elem.parentNode) { + elem.parentNode.removeChild(elem); + } + }); + } + }; + + atom.dom = Dom; +}(window, window.document)); + + +/* +--- + +name: "CoreExtended" + +description: "Extended core of AtomJS - extend, implements, clone, typeOf" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +inspiration: + - "[JQuery](http://jquery.com)" + - "[MooTools](http://mootools.net)" + +provides: CoreExtended + +requires: + - js185 + - Core + +... +*/ + +new function () { + +function innerExtend (proto) { + return function (elem, from) { + if (from == null) { + from = elem; + elem = atom; + } + + var ext = proto ? elem.prototype : elem, + accessors = atom.accessors && atom.accessors.inherit; + + for (var i in from) if (i != 'constructor') { + if ( accessors && accessors(from, ext, i) ) continue; + + ext[i] = clone(from[i]); + } + return elem; + }; +} + +function typeOf (item) { + if (item == null) return 'null'; + + var string = toString.call(item); + for (var i in typeOf.types) if (i == string) return typeOf.types[i]; + + if (item.nodeName){ + if (item.nodeType == 1) return 'element'; + if (item.nodeType == 3) return /\S/.test(item.nodeValue) ? 'textnode' : 'whitespace'; + } + + var type = typeof item; + + if (item && type == 'object') { + if (atom.Class && item instanceof atom.Class) return 'class'; + if (coreIsArrayLike(item)) return 'arguments'; + } + + return type; +} + +typeOf.types = {}; +['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Class'].forEach(function(name) { + typeOf.types['[object ' + name + ']'] = name.toLowerCase(); +}); + + +function clone (object) { + var type = typeOf(object); + return type in clone.types ? clone.types[type](object) : object; +} +clone.types = { + 'array': function (array) { + var i = array.length, c = new Array(i); + while (i--) c[i] = clone(array[i]); + return c; + }, + 'class':function (object) { + return typeof object.clone == 'function' ? + object.clone() : object; + }, + 'object': function (object) { + if (typeof object.clone == 'function') return object.clone(); + + var c = {}, accessors = atom.accessors && atom.accessors.inherit; + for (var key in object) { + if (accessors && accessors(object, c, key)) continue; + c[key] = clone(object[key]); + } + return c; + } +}; + +atom.core.extend = innerExtend(false); +atom.core.implement = innerExtend(true); +atom.core.typeOf = typeOf; +atom.core.clone = clone; + +atom.extend = atom.core.extend; +atom.implement = atom.core.implement; +atom.typeOf = atom.core.typeOf; +atom.clone = atom.core.clone; + +}; + +/* +--- + +name: "Ajax" + +description: "todo" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - CoreExtended + +provides: ajax + +... +*/ + +(function () { + var extend = atom.core.extend, emptyFn = function () {}; + + var ajax = function (userConfig) { + var data, config, method, req, url; + config = {}; + extend(config, ajax.defaultProps); + extend(config, userConfig); + config.headers = {}; + extend(config.headers, ajax.defaultHeaders); + extend(config.headers, userConfig.headers); + + data = ajax.stringify( config.data ); + req = new XMLHttpRequest(); + url = config.url; + method = config.method.toUpperCase(); + if (method == 'GET' && data) { + url += (url.indexOf( '?' ) == -1 ? '?' : '&') + data; + } + if (!config.cache) { + url += (url.indexOf( '?' ) == -1 ? '?' : '&') + '_no_cache=' + Date.now(); + } + req.onreadystatechange = ajax.onready(req, config); + req.open(method, url, true); + for (var i in config.headers) { + req.setRequestHeader(i, config.headers[i]); + } + req.send( method == 'POST' && data ? data : null ); + }; + + ajax.stringify = function (object) { + if (!object) return ''; + if (typeof object == 'string' || typeof object == 'number') return String( object ); + + var array = [], e = encodeURIComponent; + for (var i in object) if (object.hasOwnProperty(i)) { + array.push( e(i) + '=' + e(object[i]) ); + } + return array.join('&'); + }; + + ajax.defaultProps = { + interval: 0, + type : 'plain', + method : 'post', + data : {}, + headers : {}, + cache : false, + url : location.href, + onLoad : emptyFn, + onError : emptyFn + }; + + ajax.defaultHeaders = { + 'X-Requested-With': 'XMLHttpRequest', + 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' + }; + /** @type {function} */ + ajax.onready = function (req, config) { + return function (e) { + if (req.readyState == 4) { + if (req.status != 200) return config.onError(e); + + var result = req.responseText; + if (config.type.toLowerCase() == 'json') { + result = JSON.parse(result); + } + if (config.interval > 0) setTimeout(function () { + atom.ajax(config); + }, config.interval * 1000); + config.onLoad(result); + } + }; + }; + + atom.ajax = ajax; +})(); + + +/* +--- + +name: "Ajax.Dom" + +description: todo + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - dom + - ajax + +provides: ajax.dom + +... +*/ + +atom.dom.prototype.ajax = function (config) { + config = coreAppend({}, config); + + var $dom = this; + + if (config.onLoad ) { + config.onLoad = config.onLoad.bind($dom); + } else { + config.onLoad = function (r) { $dom.first.innerHTML = r }; + } + if (config.onError) config.onError = config.onError.bind($dom); + + atom.ajax(config); + return $dom; +}; + + +/* +--- + +name: "Cookie" + +description: "todo" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: cookie + +... +*/ + +atom.cookie = { + get: function (name) { + var matches = document.cookie.match(new RegExp( + "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" + )); + return matches ? decodeURIComponent(matches[1]) : null; + }, + set: function (name, value, options) { + options = options || {}; + var exp = options.expires; + if (exp) { + if (typeof exp == 'number') { + exp = new Date(exp * 1000 + Date.now()); + } + if (exp.toUTCString) { + exp = exp.toUTCString(); + } + options.expires = exp; + } + + var cookie = [name + "=" + encodeURIComponent(value)]; + for (var o in options) cookie.push( + options[o] === true ? o : o + "=" + options[o] + ); + document.cookie = cookie.join('; '); + + return atom.cookie; + }, + del: function (name) { + return atom.cookie.set(name, '', { expires: -1 }); + } +}; + +/* +--- + +name: "Frame" + +description: "Provides cross-browser interface for requestAnimationFrame" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: frame + +... +*/ +(function () { + + var previous, + started = false, + callbacks = [], + remove = [], + frameTime = 16, // 62 fps + // we'll switch to real `requestAnimationFrame` here + // when all browsers will be ready + requestAnimationFrame = function (callback) { + window.setTimeout(callback, frameTime); + }; + + function startAnimation () { + if (!started) { + previous = Date.now(); + requestAnimationFrame(frame); + started = true; + } + } + + function invokeFrame () { + var fn, i, l, + now = Date.now(), + // 1 sec is max time for frame to avoid some bugs with too large time + delta = Math.min(now - previous, 1000); + + for (i = 0, l = remove.length; i < l; i++) { + coreEraseOne(callbacks, remove[i]); + } + remove.length = 0; + + for (i = 0, l = callbacks.length; i < l; i++) { + fn = callbacks[i]; + // one of previous calls can remove our fn + if (remove.indexOf(fn) == -1) { + fn.call(null, delta); + } + } + + previous = now; + } + + function frame() { + requestAnimationFrame(frame); + + if (callbacks.length == 0) { + remove.length = 0; + previous = Date.now(); + } else invokeFrame(); + } + + atom.frame = { + add: function (fn) { + startAnimation(); + includeUnique(callbacks, fn); + }, + // we dont want to fragmentate callbacks, so remove only before frame started + remove: function (fn) { + if (started) includeUnique(remove, fn); + } + }; + +}()); + +/* +--- + +name: "PointerLock" + +description: "Provides cross-browser interface for locking pointer" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: PointerLock + +... +*/ +(function (document) { + var prefix = + 'pointerLockElement' in document ? '': + 'mozPointerLockElement' in document ? 'moz': + 'webkitPointerLockElement' in document ? 'webkit': null; + + function PointerLock (supports) { + this.supports = supports; + } + + function p (string) { + return prefix ? prefix + string : + string[0].toLowerCase() + string.substr(1); + } + + function isLocked (element) { + return document[p('PointerLockElement')] === element; + } + + if (prefix == null) { + PointerLock.prototype = { + locked : function () { return false }, + request : function () {}, + exit : function () {} + }; + } else { + + document.addEventListener("mousemove", function onMove (e) { + if (lockedElement && isLocked(lockedElement)) { + e.movementX = e[p('MovementX')] || 0; + e.movementY = e[p('MovementY')] || 0; + + callback && callback(e); + } + }, false); + + + var lockedElement = false, callback = null; + + PointerLock.prototype = { + locked: function (element) { + return isLocked(element || lockedElement); + }, + request: function (element, fn) { + lockedElement = element; + callback = fn; + element[p('RequestPointerLock')](); + }, + exit: function () { + lockedElement = null; + callback = null; + document[p('ExitPointerLock')](); + } + }; + } + + atom.pointerLock = new PointerLock(prefix != null); + +}(document)); + +/* +--- + +name: "Uri" + +description: "Port of parseUri function" + +license: "MIT License" + +author: "Steven Levithan " + +requires: + - Core + +provides: uri + +... +*/ +new function () { + +var uri = function (str) { + var o = atom.uri.options, + m = o.parser.exec(str || window.location.href), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; +}; +uri.options = { + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ +}; + +atom.uri = uri; + +}; + +/* +--- + +name: "Class" + +description: "Contains the Class Function for easily creating, extending, and implementing reusable Classes." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - CoreExtended + - accessors + - Array + +inspiration: + - "[MooTools](http://mootools.net)" + +provides: Class + +deprecated: "Use declare instead" + +... +*/ + + +(function(atom){ + +var typeOf = atom.core.typeOf, + extend = atom.core.extend, + accessors = atom.accessors.inherit, + prototype = 'prototype', + lambda = function (value) { return function () { return value; }}, + prototyping = false; + +var Class = function (params) { + if (prototyping) return this; + + if (typeof params == 'function' && typeOf(params) == 'function') params = { initialize: params }; + + var Constructor = function(){ + if (this instanceof Constructor) { + if (prototyping) return this; + return this.initialize ? this.initialize.apply(this, arguments) : this; + } else { + return Constructor.invoke.apply(Constructor, arguments); + } + }; + extend(Constructor, Class); + Constructor.prototype = getInstance(Class); + + Constructor + .implement(params, false) + .reserved(true, { + parent: parent, + self : Constructor + }) + .reserved({ + factory : function() { + function Factory(args) { return Constructor.apply(this, args); } + Factory.prototype = Constructor.prototype; + return function(args) { return new Factory(args || []); } + }() + }); + + Constructor.prototype.constructor = Constructor; + + return Constructor; +}; + +var parent = function(){ + if (!this.$caller) throw new Error('The method «parent» cannot be called.'); + var name = this.$caller.$name, + parent = this.$caller.$owner.parent, + previous = parent && parent.prototype[name]; + if (!previous) throw new Error('The method «' + name + '» has no parent.'); + return previous.apply(this, arguments); +}; + +var wrap = function(self, key, method){ + // if method is already wrapped + if (method.$origin) method = method.$origin; + + var wrapper = function() { + if (!this || this == atom.global) throw new TypeError('Context lost'); + if (method.$protected && !this.$caller) throw new Error('The method «' + key + '» is protected.'); + var current = this.$caller; + this.$caller = wrapper; + var result = method.apply(this, arguments); + this.$caller = current; + return result; + }; + wrapper.$owner = self; + wrapper.$origin = method; + wrapper.$name = key; + + return wrapper; +}; + +var getInstance = function(Class){ + if (atom.declare && Class instanceof atom.declare) { + return atom.declare.config.methods.proto(Class); + } + + prototyping = true; + var proto = new Class; + prototyping = false; + return proto; +}; + +Class.extend = function (name, fn) { + if (typeof name == 'string') { + var object = {}; + object[name] = fn; + } else { + object = name; + } + + for (var i in object) if (!accessors(object, this, i)) { + this[i] = object[i]; + } + return this; +}; + +Class.extend({ + implement: function(name, fn, retain){ + if (typeof name == 'string') { + var params = {}; + params[name] = fn; + } else { + params = name; + retain = fn; + } + + for (var key in params) { + if (!accessors(params, this.prototype, key)) { + var value = params[key]; + + if (Class.Mutators.hasOwnProperty(key)){ + value = Class.Mutators[key].call(this, value); + if (value == null) continue; + } + + if (typeof value == 'function' && typeOf(value) == 'function'){ + if (value.$origin) value = value.$origin; + if (value.$hidden == 'next') { + value.$hidden = true + } else if (value.$hidden) { + continue; + } + this.prototype[key] = (retain) ? value : wrap(this, key, value); + } else { + this.prototype[key] = atom.clone(value); + } + } + } + return this; + }, + mixin: function () { + Array.from(arguments).forEach(function (item) { + this.implement(getInstance(item)); + }.bind(this)); + return this; + }, + reserved: function (toProto, props) { // use careful !! + if (arguments.length == 1) { + props = toProto; + toProto = false; + } + var target = toProto ? this.prototype : this; + for (var name in props) { + atom.accessors.define(target, name, { get: lambda(props[name]) }); + } + return this; + }, + isInstance: function (object) { + return object instanceof this; + }, + invoke: function () { + return this.factory( arguments ); + }, + Mutators: { + Extends: function(parent){ + if (parent == null) throw new TypeError('Cant extends from null'); + this.extend(parent).reserved({ parent: parent }); + this.prototype = getInstance(parent); + }, + + Implements: function(items){ + this.mixin.apply(this, Array.from(items)); + }, + + Static: function(properties) { + this.extend(properties); + } + }, + abstractMethod: function () { + throw new Error('Abstract Method «' + this.$caller.$name + '» called'); + }, + protectedMethod: function (fn) { + return extend(fn, { $protected: true }); + }, + hiddenMethod: function (fn) { + return extend(fn, { $hidden: 'next' }); + } +}); + +Class.abstractMethod.$abstract = true; +atom.Class = Class; + +})(atom); + +/* +--- + +name: "Class.BindAll" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Class + +inspiration: + - "[MooTools](http://mootools.net)" + +provides: Class.BindAll + +... +*/ + +atom.Class.bindAll = function (object, methods) { + if (typeof methods == 'string') { + if ( + methods != '$caller' && + !atom.accessors.has(object, methods) && + coreIsFunction(object[methods]) + ) { + object[methods] = object[methods].bind( object ); + } + } else if (methods) { + for (var i = methods.length; i--;) atom.Class.bindAll( object, methods[i] ); + } else { + for (var i in object) atom.Class.bindAll( object, i ); + } + return object; +}; + + +/* +--- + +name: "Class.Events" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Class + +inspiration: + - "[MooTools](http://mootools.net)" + +provides: Class.Events + +... +*/ + +new function () { + +var Class = atom.Class; + +var fire = function (name, fn, args) { + var result = fn.apply(this, Array.from(args || [])); + if (typeof result == 'string' && result.toLowerCase() == 'removeevent') { + this.removeEvent(name, fn); + } +}; + +var removeOn = function(string){ + return (string || '').replace(/^on([A-Z])/, function(full, first){ + return first.toLowerCase(); + }); +}; + +var initEvents = function (object, reset) { + if (reset || !object._events) object._events = { $ready: {} }; +}; + +var nextTick = function (fn) { + nextTick.fn.push(fn); + if (!nextTick.id) { + nextTick.id = function () { + nextTick.reset().invoke(); + }.delay(1); + } +}; +nextTick.reset = function () { + var fn = nextTick.fn; + nextTick.fn = []; + nextTick.id = 0; + return fn; +}; +nextTick.reset(); + +coreAppend(Class, { + Events: Class({ + addEvent: function(name, fn) { + initEvents(this); + + var i, l, onfinish = []; + if (arguments.length == 1 && typeof name != 'string') { + for (i in name) { + this.addEvent(i, name[i]); + } + } else if (Array.isArray(name)) { + for (i = 0, l = name.length; i < l; i++) { + this.addEvent(name[i], fn); + } + } else { + name = removeOn(name); + if (name == '$ready') { + throw new TypeError('Event name «$ready» is reserved'); + } else if (!fn) { + throw new TypeError('Function is empty'); + } else { + Object.ifEmpty(this._events, name, []); + + this._events[name].include(fn); + + var ready = this._events.$ready[name]; + if (ready) fire.apply(this, [name, fn, ready, onfinish]); + onfinish.invoke(); + } + } + return this; + }, + removeEvent: function (name, fn) { + if (!arguments.length) { + initEvents( this, true ); + return this; + } + + initEvents(this); + + if (Array.isArray(name)) { + for (var i = name.length; i--;) { + this.removeEvent(name[i], fn); + } + } else if (arguments.length == 1 && typeof name != 'string') { + for (i in name) { + this.removeEvent(i, name[i]); + } + } else { + name = removeOn(name); + if (name == '$ready') { + throw new TypeError('Event name «$ready» is reserved'); + } else if (arguments.length == 1) { + this._events[name] = []; + } else if (name in this._events) { + this._events[name].erase(fn); + } + } + return this; + }, + isEventAdded: function (name) { + initEvents(this); + + var e = this._events[name]; + return !!(e && e.length); + }, + fireEvent: function (name, args) { + initEvents(this); + + name = removeOn(name); + // we should prevent skipping next event on removing this in different fireEvents + var funcs = atom.clone(this._events[name]); + if (funcs) { + var l = funcs.length, + i = 0; + for (;i < l; i++) fire.call(this, name, funcs[i], args || []); + } + return this; + }, + readyEvent: function (name, args) { + initEvents(this); + + nextTick(function () { + name = removeOn(name); + this._events.$ready[name] = args || []; + this.fireEvent(name, args || []); + }.bind(this)); + return this; + } + }) +}); + +}; + +/* +--- + +name: "Class.Mutators.Generators" + +description: "Provides Generators mutator" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +authors: + - "Shock " + +requires: + - Core + - accessors + - Class + +provides: Class.Mutators.Generators + +... +*/ + +new function () { + +var getter = function (key, fn) { + return function() { + var pr = '_' + key, obj = this; + return pr in obj ? obj[pr] : (obj[pr] = fn.call(obj)); + }; +}; + +atom.Class.Mutators.Generators = function(properties) { + atom.Class.Mutators.Generators.init(this, properties); +}; + +atom.Class.Mutators.Generators.init = function (Class, properties) { + for (var i in properties) atom.accessors.define(Class.prototype, i, { get: getter(i, properties[i]) }); +}; + +}; + +/* +--- + +name: "Class.Options" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Class + +inspiration: + - "[MooTools](http://mootools.net)" + +provides: Class.Options + +... +*/ + +atom.Class.Options = atom.Class({ + options: {}, + fastSetOptions: false, + setOptions: function(){ + if (!this.options) { + this.options = {}; + } else if (this.options == this.self.prototype.options) { + // it shouldn't be link to static options + if (this.fastSetOptions) { + this.options = coreAppend({}, this.options); + } else { + this.options = atom.clone(this.options); + } + } + var options = this.options; + + for (var a = arguments, i = 0, l = a.length; i < l; i++) { + if (typeof a[i] == 'object') { + if (this.fastSetOptions) { + coreAppend(options, a[i]); + } else { + atom.extend(options, a[i]); + } + } + } + + if (this.addEvent) for (var option in options){ + if (atom.typeOf(options[option]) == 'function' && (/^on[A-Z]/).test(option)) { + this.addEvent(option, options[option]); + delete options[option]; + } + } + return this; + } +}); + +/* +--- + +name: "Declare" + +description: "Contains the Class Function for easily creating, extending, and implementing reusable Classes." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - accessors + +provides: declare + +... +*/ + +var declare = (function(atom){ + +var + declare, methods, + accessors = atom.accessors.inherit, + factory = false, + prototyping = false, + mutators = []; + +declare = function (declareName, Parent, params) { + if (prototyping) return this; + + params = methods.prepareParams(declareName, Parent, params); + + // line break for more user-friendly debug string + var Constructor = function () + { return methods.construct.call(this, Constructor, arguments) }; + + // - should be removed on production + if (params.name) { + Constructor = new Function('con', 'return {"' + params.name + '": ' + + function(){ return con.apply(this, arguments) } + + '}["' + params.name + '"];')(Constructor); + } + // + + for (var i = 0, l = mutators.length; i < l; i++) { + mutators[i].fn( Constructor, params[mutators[i].name] ); + } + + Constructor.prototype.constructor = Constructor; + + if (params.declareName) methods.define( params.declareName, Constructor ); + + return Constructor; +}; + +declare.prototype.bindMethods = function (methods) { + var i; + + if (typeof methods == 'string') { + if (typeof this[methods] == 'function') { + this[methods] = this[methods].bind(this); + } + return this; + } + + if (!methods) { + for (i in this) this.bindMethods(i); + return this; + } + + for (i = methods.length; i--;) this.bindMethods( methods[i] ); + return this; +}; + +declare.prototype.toString = function () { + return '[object ' + (this.constructor.NAME || 'Declare') + ']'; +}; + +declare.NAME = 'atom.declare'; + +declare.invoke = function () { + return this.factory( arguments ); +}; + +declare.own = function (properties) { + methods.addTo(this, properties, this.NAME + '.'); + return this; +}; + +declare.factory = function (args) { + factory = true; + return new this(args); +}; + +declare.castArguments = function (args) { + if (args == null) return null; + + var constructor = this; + + return (args != null && args[0] && args[0] instanceof constructor) ? + args[0] : args instanceof constructor ? args : new constructor( args ); +}; + +methods = { + define: function (path, value) { + var key, part, target = atom.global; + + path = path.split('.'); + key = path.pop(); + + while (path.length) { + part = path.shift(); + if (!target[part]) { + target = target[part] = {}; + } else { + target = target[part]; + } + } + + target[key] = value; + }, + mixin: function (target, items) { + if (!Array.isArray(items)) items = [ items ]; + for (var i = 0, l = items.length; i < l; i++) { + methods.addTo( target.prototype, methods.proto(items[i]) ); + } + return this; + }, + addTo: function (target, source, name) { + var i, property; + if (source) for (i in source) if (source.hasOwnProperty(i)) { + if (!accessors(source, target, i) && source[i] != declare.config) { + property = source[i]; + if (coreIsFunction(property)) { + if (name) property.path = name + i; + if (!property.previous && coreIsFunction(target[i])) { + property.previous = target[i]; + } + } + target[i] = property; + } + } + return target; + }, + prepareParams: function (declareName, Parent, params) { + if (typeof declareName != 'string') { + params = Parent; + Parent = declareName; + declareName = null; + } + + if (params == null && typeof Parent != 'function') { + params = Parent; + Parent = null; + } + + if (!params ) params = {}; + if (!params.prototype ) params = { prototype: params }; + if (!params.name ) params.name = declareName; + if (!params.declareName ) params.declareName = declareName; + if (!params.parent && Parent) params.parent = Parent; + + if (!params.prototype.initialize) { + params.prototype.initialize = function () { + if (!params.parent) return; + return params.parent.prototype.initialize.apply(this, arguments); + }; + } + return params; + }, + proto: function (Fn) { + prototyping = true; + var result = new Fn; + prototyping = false; + return result; + }, + construct: function (Constructor, args) { + if (factory) { + args = args[0]; + factory = false; + } + + if (prototyping) return this; + + if (this instanceof Constructor) { + if (Constructor.NAME) this.Constructor = Constructor.NAME; + return this.initialize.apply(this, args); + } else { + return Constructor.invoke.apply(Constructor, args); + } + } +}; + +declare.config = { + methods: methods, + mutator: atom.core.overloadSetter(function (name, fn) { + mutators.push({ name: name, fn: fn }); + return this; + }) +}; + +declare.config + .mutator( 'parent', function (Constructor, parent) { + parent = parent || declare; + methods.addTo( Constructor, parent ); + Constructor.prototype = methods.proto( parent ); + Constructor.Parent = parent; + }) + .mutator( 'mixin', function (Constructor, mixins) { + if (mixins) methods.mixin( Constructor, mixins ); + }) + .mutator( 'name', function (Constructor, name) { + if (!name) return; + Constructor.NAME = name; + }) + .mutator( 'own', function (Constructor, properties) { + Constructor.own(properties); + }) + .mutator( 'prototype', function (Constructor, properties) { + methods.addTo(Constructor.prototype, properties, Constructor.NAME + '#'); + }); + +return atom.declare = declare; + +})(atom); + +/* +--- + +name: "Transition" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - declare + +inspiration: + - "[MooTools](http://mootools.net)" + +provides: Transition + +... +*/ + +atom.Transition = function (method, noEase) { + var easeIn = function (progress) { + return method(progress); + }; + + if (noEase) { + return coreAppend( easeIn, { + easeIn : easeIn, + easeOut : easeIn, + easeInOut: easeIn + }); + } + + return coreAppend( easeIn, { + easeIn: easeIn, + easeOut: function(progress){ + return 1 - method(1 - progress); + }, + easeInOut: function(progress){ + if (progress > 0.5) { + return ( 2 - method(2 * (1 - progress)) ) /2 + } else { + return method(2 * progress)/2; + } + } + }); +}; + +atom.Transition.set = atom.core.overloadSetter(function (id, fn) { + atom.Transition[id] = atom.Transition(fn); +}); + +atom.Transition.get = function (fn) { + if (typeof fn != 'string') return fn; + var method = fn.split('-')[0], ease = 'easeInOut', In, Out; + if (method != fn) { + In = fn.indexOf('-in' ) > 0; + Out = fn.indexOf('-out') > 0; + if (In ^ Out) { + if (In ) ease = 'easeIn'; + if (Out) ease = 'easeOut'; + } + } + method = method[0].toUpperCase() + method.substr(1); + if (!atom.Transition[method]) { + throw new Error('No Transition method: ' + method); + } + return atom.Transition[method][ease]; +}; + +atom.Transition.Linear = atom.Transition(function(p) { return p }, true); + +atom.Transition.set({ + Expo: function(p){ + return Math.pow(2, 8 * (p - 1)); + }, + + Circ: function(p){ + return 1 - Math.sin(Math.acos(p)); + }, + + Sine: function(p){ + return 1 - Math.cos(p * Math.PI / 2); + }, + + Back: function(p){ + var x = 1.618; + return Math.pow(p, 2) * ((x + 1) * p - x); + }, + + Bounce: function(p){ + var value, a = 0, b = 1; + for (;;){ + if (p >= (7 - 4 * a) / 11){ + value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2); + break; + } + a += b, b /= 2 + } + return value; + }, + + Elastic: function(p){ + return Math.pow(2, 10 * --p) * Math.cos(12 * p); + } + +}); + +['Quad', 'Cubic', 'Quart', 'Quint'].forEach(function(transition, i){ + atom.Transition.set(transition, function(p){ + return Math.pow(p, i + 2); + }); +}); + +/* +--- + +name: "Events" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - declare + +inspiration: + - "[MooTools](http://mootools.net)" + +provides: Events + +... +*/ + +/** @class atom.Events */ +declare( 'atom.Events', { + + /** @constructs */ + initialize: function (context) { + this.context = context || this; + this.locked = []; + this.events = {}; + this.actions = {}; + this.readyList = {}; + }, + + /** + * @param {String} name + * @return Boolean + */ + exists: function (name) { + var array = this.events[this.removeOn( name )]; + return !!(array && array.length); + }, + + /** + * @param {String} name + * @param {Function} callback + * @return Boolean + */ + add: function (name, callback) { + this.run( 'addOne', name, callback ); + return this; + }, + + /** + * @param {String} name + * @param {Function} [callback] + * @return Boolean + */ + remove: function (name, callback) { + if (typeof name == 'string' && !callback) { + this.removeAll( name ); + } else { + this.run( 'removeOne', name, callback ); + } + return this; + }, + + /** + * @param {String} name + * @param {Array} args + * @return atom.Events + */ + fire: function (name, args) { + args = args ? slice.call( args ) : []; + name = this.removeOn( name ); + + this.locked.push(name); + var i = 0, l, events = this.events[name]; + if (events) for (l = events.length; i < l; i++) { + events[i].apply( this.context, args ); + } + this.unlock( name ); + return this; + }, + + /** + * @param {String} name + * @param {Array} [args=null] + * @return atom.Events + */ + ready: function (name, args) { + name = this.removeOn( name ); + this.locked.push(name); + if (name in this.readyList) { + throw new Error( 'Event «'+name+'» is ready' ); + } + this.readyList[name] = args; + this.fire(name, args); + this.removeAll(name); + this.unlock( name ); + return this; + }, + + /** + * @param {String} name + * @param {Array} [args=null] + * @return atom.Events + */ + ensureReady: function (name, args) { + if (!(name in this.readyList)) { + this.ready(name, args); + } + return this; + }, + + + // only private are below + + /** @private */ + context: null, + /** @private */ + events: {}, + /** @private */ + readyList: {}, + /** @private */ + locked: [], + /** @private */ + actions: {}, + + /** @private */ + removeOn: function (name) { + return (name || '').replace(/^on([A-Z])/, function(full, first){ + return first.toLowerCase(); + }); + }, + /** @private */ + removeAll: function (name) { + var events = this.events[name]; + if (events) for (var i = events.length; i--;) { + this.removeOne( name, events[i] ); + } + }, + /** @private */ + unlock: function (name) { + var action, + all = this.actions[name], + index = this.locked.indexOf( name ); + + this.locked.splice(index, 1); + + if (all) for (index = 0; index < all.length; index++) { + action = all[index]; + + this[action.method]( name, action.callback ); + } + }, + /** @private */ + run: function (method, name, callback) { + var i = 0, l = 0; + + if (Array.isArray(name)) { + for (i = 0, l = name.length; i < l; i++) { + this[method](name[i], callback); + } + } else if (typeof name == 'object') { + for (i in name) { + this[method](i, name[i]); + } + } else if (typeof name == 'string') { + this[method](name, callback); + } else { + throw new TypeError( 'Wrong arguments in Events.' + method ); + } + }, + /** @private */ + register: function (name, method, callback) { + var actions = this.actions; + if (!actions[name]) { + actions[name] = []; + } + actions[name].push({ method: method, callback: callback }) + }, + /** @private */ + addOne: function (name, callback) { + var events, ready, context; + + name = this.removeOn( name ); + + if (this.locked.indexOf(name) == -1) { + ready = this.readyList[name]; + if (ready) { + context = this.context; + setTimeout(function () { + callback.apply(context, ready); + }, 0); + return this; + } else { + events = this.events; + if (!events[name]) { + events[name] = [callback]; + } else { + events[name].push(callback); + } + } + } else { + this.register(name, 'addOne', callback); + } + }, + /** @private */ + removeOne: function (name, callback) { + name = this.removeOn( name ); + + if (this.locked.indexOf(name) == -1) { + var events = this.events[name], i = events.length; + while (i--) if (events[i] == callback) { + events.splice(i, 1); + } + } else { + this.register(name, 'removeOne', callback); + } + } +}); + +// local alias +var Events = atom.Events; + +/* +--- + +name: "Settings" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - declare + +provides: Settings + +... +*/ + +/** @class atom.Settings */ +declare( 'atom.Settings', { + /** @private */ + recursive: false, + + /** @private */ + values: {}, + + /** + * @constructs + * @param {Object} [initialValues] + */ + initialize: function (initialValues) { + this.values = {}; + + if (initialValues) this.set(initialValues); + }, + + /** + * @param {atom.Events} events + * @return atom.Options + */ + addEvents: function (events) { + this.events = events; + return this.invokeEvents(); + }, + + /** + * @param {string|Array} name + */ + get: function (name, defaultValue) { + if (Array.isArray(name)) return this.subset(name, defaultValue); + + return name in this.values ? this.values[name] : defaultValue; + }, + + /** + * @param {object} target + * @param {string[]} [names=undefined] + * @return {atom.Settings} + */ + properties: function (target, names) { + var originalNames = this.propertiesNames; + + if (typeof names == 'string') { + names = names.split(' '); + } + + if (names == null || names === true) { + this.propertiesNames = true; + } else if (originalNames == null) { + this.propertiesNames = names; + } else if (originalNames !== true) { + atom.array.append(originalNames, names); + } + + this.propertiesTarget = target; + + for (var i in this.values) { + this.exportProperty(i, this.values); + } + + return this; + }, + + subset: function (names, defaultValue) { + var i, values = {}; + + for (i = names.length; i--;) { + values[names[i]] = this.get( names[i], defaultValue ); + } + + return values; + }, + + /** @private */ + propertiesNames : null, + /** @private */ + propertiesTarget: null, + + /** + * @param {Object} options + * @return atom.Options + */ + set: function (options, value) { + var i, values = this.values; + + options = this.prepareOptions(options, value); + + for (i in options) { + value = options[i]; + if (values[i] != value) { + values[i] = value; + this.exportProperty(i, values); + } + } + + this.invokeEvents(); + + return this; + }, + + /** @private */ + exportProperty: function (i, values) { + var + target = this.propertiesTarget, + names = this.propertiesNames; + + if (target && (names === true || names.indexOf(i) >= 0)) { + target[i] = values[i]; + } + }, + + /** @private */ + prepareOptions: function (options, value) { + if (typeof options == 'string') { + var i = options; + options = {}; + options[i] = value; + } else if (options instanceof this.constructor) { + options = options.values; + } + return options; + }, + + /** + * @param {String} name + * @return atom.Options + */ + unset: function (name) { + delete this.values[name]; + return this; + }, + + /** @private */ + invokeEvents: function () { + if (!this.events) return this; + + var values = this.values, name, option; + for (name in values) if (values.hasOwnProperty(name)) { + option = values[name]; + if (this.isInvokable(name, option)) { + this.events.add(name, option); + this.unset(name); + } + } + return this; + }, + + /** @private */ + isInvokable: function (name, option) { + return name && + option && + coreIsFunction(option) && + (/^on[A-Z]/).test(name); + } +}); + +var Settings = atom.Settings; + +/* +--- + +name: "Types.Object" + +description: "Object generic methods" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: Types.Object + +... +*/ + +atom.object = { + append: function (target, source1, source2) { + for (var i = 1, l = arguments.length; i < l; i++) { + atom.core.append(target, arguments[i]); + } + return target; + }, + invert: function (object) { + var newObj = {}; + for (var i in object) newObj[object[i]] = i; + return newObj; + }, + collect: function (obj, props, Default) { + var newObj = {}; + props.forEach(function (i){ + newObj[i] = i in obj ? obj[i] : Default; + }); + return newObj; + }, + values: function (obj) { + var values = []; + for (var i in obj) values.push(obj[i]); + return values; + }, + /** @deprecated */ + isDefined: function (obj) { + return typeof obj !== 'undefined'; + }, + /** @deprecated */ + isReal: function (obj) { + return obj != null; + }, + map: function (obj, fn) { + var mapped = {}; + for (var i in obj) if (obj.hasOwnProperty(i)) { + mapped[i] = fn( obj[i], i, obj ); + } + return mapped; + }, + max: function (obj) { + var max = null, key = null; + for (var i in obj) if (max == null || obj[i] > max) { + key = i; + max = obj[i]; + } + return key; + }, + min: function (obj) { + var min = null, key = null; + for (var i in obj) if (min == null || obj[i] < min) { + key = i; + min = obj[i]; + } + return key; + }, + deepEquals: function (first, second) { + if (!first || (typeof first) !== (typeof second)) return false; + + for (var i in first) { + var f = first[i], s = second[i]; + if (typeof f === 'object') { + if (!s || !Object.deepEquals(f, s)) return false; + } else if (f !== s) { + return false; + } + } + + for (i in second) if (!(i in first)) return false; + + return true; + }, + isEmpty: function (object) { + for (var i in object) if (object.hasOwnProperty(i)) { + return false; + } + return true; + }, + ifEmpty: function (object, key, defaultValue) { + if (!(key in object)) { + object[key] = defaultValue; + } + return object; + }, + path: { + parts: function (path, delimiter) { + return Array.isArray(path) ? path : String(path).split( delimiter || '.' ); + }, + get: function (object, path, delimiter) { + if (!path) return object; + + path = atom.object.path.parts( path, delimiter ); + + for (var i = 0; i < path.length; i++) { + if (object != null && path[i] in object) { + object = object[path[i]]; + } else { + return; + } + } + + return object; + }, + set: function (object, path, value, delimiter) { + path = atom.object.path.parts( path, delimiter ); + + var key = path.pop(); + + while (path.length) { + var current = path.shift(); + if (object[current]) { + object = object[current]; + } else { + object = object[current] = {}; + } + } + + object[key] = value; + } + } +}; + +/* +--- + +name: "Animatable" + +description: "Provides Color class" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - declare + - frame + - Transition + - Events + - Settings + - Types.Object + +provides: Animatable + +... +*/ + +/** @class atom.Animatable */ +declare( 'atom.Animatable', { + + element: null, + + initialize: function (callbacks, context) { + this.bindMethods('animate'); + this.context = context || null; + + if (!callbacks) throw new TypeError( 'callbacks cant be null' ); + + this.animations = []; + if (this.isValidCallbacks(callbacks)) { + this.callbacks = callbacks; + } else { + this.callbacks = this.getDefaultCallbacks(callbacks); + } + }, + + get current () { + return this.animations[0]; + }, + + /** + * Binded to `Animatable` + * @returns {atom.Animatable.Animation} + */ + animate: atom.core.ensureObjectSetter(function (properties) { + return this.next(new atom.Animatable.Animation(this, properties)); + }), + + stop: function (all) { + var current = this.current; + if (current) { + if (all) this.animations.length = 0; + current.destroy('stop'); + } + return this; + }, + + /** @private */ + getDefaultCallbacks: function (element) { + return { + get: function (property) { + return atom.object.path.get(element, property); + }, + set: atom.core.overloadSetter(function (property, value) { + return atom.object.path.set(element, property, value); + }) + }; + }, + /** @private */ + isValidCallbacks: function (callbacks) { + return typeof callbacks == 'object' && + Object.keys(callbacks).length == 2 && + coreIsFunction(callbacks.set) && + coreIsFunction(callbacks.get); + }, + + /** @private */ + animations: null, + + /** @private */ + next: function (animation) { + var queue = this.animations; + if (animation) { + queue.push(animation); + if (queue.length == 1) { + this.launch(animation); + } + } else if (queue.length) { + this.launch(this.current); + } + return animation; + }, + /** @private */ + launch: function (animation) { + var queue = this.animations, animatable = this; + animation.events.add('destroy', function remove () { + queue.splice(queue.indexOf(animation), 1); + animation.events.remove('destroy', remove); + animatable.next(); + }); + animation.start(); + }, + /** @private */ + get: function (name) { + return this.callbacks.get.apply(this.context, arguments); + }, + /** @private */ + set: function (name, value) { + return this.callbacks.set.apply(this.context, arguments); + } +}); + +/** @class atom.Animatable.Animation */ +declare( 'atom.Animatable.Animation', { + /** @property {atom.Animatable} */ + animatable: null, + + /** + * initial values of properties + * @property {Object} + */ + initial: null, + + /** + * target values of properties + * @property {Object} + */ + target: null, + + initialize: function (animatable, settings) { + this.bindMethods([ 'tick', 'start' ]); + + if (!settings.props) settings = {props: settings}; + this.events = new atom.Events(animatable); + this.settings = new atom.Settings({ + fn : 'linear', + time: 500 + }) + .set(settings) + .addEvents(this.events); + this.animatable = animatable; + this.transition = atom.Transition.get(this.settings.get('fn')); + this.allTime = this.settings.get('time'); + this.target = this.settings.get('props'); + }, + + start: function () { + this.initial = this.fetchInitialValues(); + this.delta = this.countValuesDelta(); + this.timeLeft = this.allTime; + this.events.fire( 'start', [ this ]); + atom.frame.add(this.tick); + return this; + }, + + /** @private */ + countValuesDelta: function () { + var initial = this.initial; + return atom.object.map(this.target, function (value, key) { + var start = initial[key]; + if (atom.Color && start instanceof atom.Color) { + return start.diff( new atom.Color(value) ); + } else { + return value - start; + } + }); + }, + + /** @private */ + fetchInitialValues: function () { + var animatable = this.animatable; + return atom.object.map(this.target, function (value, key) { + var v = animatable.get(key); + if (atom.Color && atom.Color.isColorString(value) || value instanceof atom.Color) { + if (!v) { + v = new atom.Color(value); + v.alpha = 0; + return v; + } + return new atom.Color(v); + } else if (isNaN(v)) { + throw new Error('value is not animatable: ' + v); + } else { + return v; + } + }); + }, + + /** @private */ + changeValues: function (progress) { + var delta = this.delta, animatable = this.animatable, initial, target; + for (var i in delta) if (delta.hasOwnProperty(i)) { + if (progress == null) { + target = this.target[i]; + animatable.set( i, + atom.Color && target instanceof atom.Color + ? target.toString() : target + ); + } else { + initial = this.initial[i]; + animatable.set( i, + atom.Color && initial instanceof atom.Color ? + initial.clone().move(delta[i].clone().mul(progress)).toString() : + initial + delta[i] * progress + ); + } + } + }, + + /** @private */ + tick: function (time) { + var lastTick = time >= this.timeLeft; + this.timeLeft = lastTick ? 0 : this.timeLeft - time; + + this.changeValues(this.transition( + lastTick ? 1 : (this.allTime - this.timeLeft) / this.allTime + )); + this.events.fire( 'tick', [ this ]); + + if (lastTick) this.destroy('complete'); + }, + + destroy: function (type) { + if (!type) type = 'error'; + this.events.fire( type, [ this ]); + this.events.fire( 'destroy', [ this ]); + atom.frame.remove(this.tick); + return this; + } +}); + +if (atom.dom) (function (animatable) { + var accessors = { + get: function (name) { + var value = this.css(name); + return atom.Color && atom.Color.isColorString(value) ? value : parseFloat(value); + }, + set: function (name, value) { + this.css(name, value); + } + }; + + atom.dom.prototype.animate = atom.core.ensureObjectSetter(function (params) { + this.each(function (elem) { + if (!elem[animatable]) { + elem[animatable] = new atom.Animatable(accessors, atom.dom(elem)); + } + elem[animatable].animate(params); + }); + return this + }); + + atom.dom.prototype.stopAnimation = function (force) { + this.each(function (elem) { + if (elem[animatable]) { + elem[animatable].stop(force); + } + }); + return this; + }; +})('atom.animatable'); + +/* +--- + +name: "ClassCompat" + +description: "Contains the Class Function for easily creating, extending, and implementing reusable Classes." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - CoreExtended + - declare + +provides: ClassCompat +... +*/ + +declare( 'atom.Settings.Mixin', +/** @deprecated */ +{ + /** + * @private + * @property atom.Settings + */ + settings: null, + options : {}, + + setOptions: function (options) { + if (!this.settings) { + this.settings = new atom.Settings( + atom.clone(this.options || {}) + ); + this.options = this.settings.values; + } + + for (var i = 0; i < arguments.length; i++) { + this.settings.set(arguments[i]); + } + + return this; + } +}); + +declare( 'atom.Events.Mixin', new function () { + var init = function () { + var events = this.__events; + if (!events) events = this.__events = new atom.Events(this); + if (this._events) { + for (var name in this._events) if (name != '$ready') { + this._events[name].forEach(function (fn) { + events.add(name, fn); + }); + } + } + return events; + }; + + var method = function (method, useReturn) { + return function () { + var result, events = init.call(this); + + result = events[method].apply( events, arguments ); + return useReturn ? result : this; + } + }; + + return { + get events ( ) { return init.call(this); }, + set events (e) { this.__events = e; }, + isEventAdded: method( 'exists', true ), + addEvent : method( 'add' , false ), + removeEvent : method( 'remove', false ), + fireEvent : method( 'fire' , false ), + readyEvent : method( 'ready' , false ) + }; +}); + +/* +--- + +name: "Color" + +description: "Provides Color class" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - declare + +provides: Color + +... +*/ +/** @class atom.Color */ +declare( 'atom.Color', { + initialize: function (value) { + var a = arguments, type; + if (a.length == 4 || a.length == 3) { + value = slice.call(a); + } else if (value && value.length == 1) { + value = value[0]; + } + + type = typeof value; + if (Array.isArray(value)) { + this.fromArray(value); + } else if (type == 'number') { + this.fromNumber(value); + } else if (type == 'string') { + this.fromString(value); + } else if (type == 'object') { + this.fromObject(value); + } else { + throw new TypeError('Unknown type in atom.Color: ' + typeof value + ';\n' + value); + } + }, + + /** @private */ + r: 0, + /** @private */ + g: 0, + /** @private */ + b: 0, + /** @private */ + a: 1, + + /** + * We are array-like object (looks at accessors at bottom of class) + * @constant + */ + length: 4, + + noLimits: false, + + get red () { return this.r; }, + get green () { return this.g; }, + get blue () { return this.b; }, + get alpha () { return this.a; }, + + set red (v) { this.setValue('r', v) }, + set green (v) { this.setValue('g', v) }, + set blue (v) { this.setValue('b', v) }, + set alpha (v) { this.setValue('a', v, true) }, + + /** @private */ + safeAlphaSet: function (v) { + if (v != null) { + this.alpha = Math.round(v*1000)/1000; + } + }, + + /** @private */ + setValue: function (prop, value, isFloat) { + value = Number(value); + if (value != value) { // isNaN + throw new TypeError('Value is NaN (' + prop + '): ' + value); + } + + if (!isFloat) value = Math.round(value); + // We don't want application down, if user script (e.g. animation) + // generates such wrong array: [150, 125, -1] + // `noLimits` switch off this check + this[prop] = this.noLimits ? value : + atom.number.limit( value, 0, isFloat ? 1 : 255 ); + }, + + // Parsing + + /** + * @param {int[]} array + * @returns {atom.Color} + */ + fromArray: function (array) { + if (!array || array.length < 3 || array.length > 4) { + throw new TypeError('Wrong array in atom.Color: ' + array); + } + this.red = array[0]; + this.green = array[1]; + this.blue = array[2]; + this.safeAlphaSet(array[3]); + return this; + }, + /** + * @param {Object} object + * @param {number} object.red + * @param {number} object.green + * @param {number} object.blue + * @returns {atom.Color} + */ + fromObject: function (object) { + if (typeof object != 'object') { + throw new TypeError( 'Not object in "fromObject": ' + typeof object ); + } + + function fetch (p1, p2) { + return object[p1] != null ? object[p1] : object[p2] + } + + this.red = fetch('r', 'red' ); + this.green = fetch('g', 'green'); + this.blue = fetch('b', 'blue' ); + this.safeAlphaSet(fetch('a', 'alpha')); + return this; + }, + /** + * @param {string} string + * @returns {atom.Color} + */ + fromString: function (string) { + if (!this.constructor.isColorString(string)) { + throw new TypeError( 'Not color string in "fromString": ' + string ); + } + + var hex, array; + + string = string.toLowerCase(); + string = this.constructor.colorNames[string] || string; + + if (hex = string.match(/^#(\w{1,2})(\w{1,2})(\w{1,2})(\w{1,2})?$/)) { + array = atom.array.clean(hex.slice(1)); + array = array.map(function (part) { + if (part.length == 1) part += part; + return parseInt(part, 16); + }); + if (array.length == 4) array[3] /= 255; + } else { + array = string.match(/([\.\d]{1,})/g).map( Number ); + } + return this.fromArray(array); + }, + /** + * @param {number} number + * @returns {atom.Color} + */ + fromNumber: function (number) { + if (typeof number != 'number' || number < 0 || number > 0xffffffff) { + throw new TypeError( 'Not color number in "fromNumber": ' + (number.toString(16)) ); + } + + return this.fromArray([ + (number>>24) & 0xff, + (number>>16) & 0xff, + (number>> 8) & 0xff, + (number & 0xff) / 255 + ]); + }, + + // Casting + + /** @returns {int[]} */ + toArray: function () { + return [this.r, this.g, this.b, this.a]; + }, + /** @returns {string} */ + toString: function (type) { + var arr = this.toArray(); + if (type == 'hex' || type == 'hexA') { + return '#' + arr.map(function (color, i) { + if (i == 3) { // alpha + if (type == 'hex') return ''; + color = Math.round(color * 255); + } + var bit = color.toString(16); + return bit.length == 1 ? '0' + bit : bit; + }).join(''); + } else { + return 'rgba(' + arr + ')'; + } + }, + /** @returns {number} */ + toNumber: function () { + // maybe needs optimizations + return parseInt( this.toString('hexA').substr(1) , 16) + }, + /** @returns {object} */ + toObject: function (abbreviationNames) { + return abbreviationNames ? + { r : this.r, g : this.g, b : this.b, a : this.a } : + { red: this.r, green: this.g, blue: this.b, alpha: this.a }; + }, + + // manipulations + + /** + * @param {atom.Color} color + * @returns {atom.Color} + */ + diff: function (color) { + // we can't use this.constructor, because context exists in such way + // && invoke is not called + color = atom.Color( color ); + return new atom.Color.Shift([ + color.red - this.red , + color.green - this.green, + color.blue - this.blue , + color.alpha - this.alpha + ]); + }, + /** + * @param {atom.Color} color + * @returns {atom.Color} + */ + move: function (color) { + color = atom.Color.Shift(color); + this.red += color.red ; + this.green += color.green; + this.blue += color.blue ; + this.alpha += color.alpha; + return this; + }, + /** @deprecated - use `clone`+`move` instead */ + shift: function (color) { + return this.clone().move(color); + }, + map: function (fn) { + var color = this; + ['red', 'green', 'blue', 'alpha'].forEach(function (component) { + color[component] = fn.call( color, color[component], component, color ); + }); + return color; + }, + add: function (factor) { + return this.map(function (value) { + return value + factor; + }); + }, + mul: function (factor) { + return this.map(function (value) { + return value * factor; + }); + }, + /** + * @param {atom.Color} color + * @returns {boolean} + */ + equals: function (color) { + return color && + color instanceof this.constructor && + color.red == this.red && + color.green == this.green && + color.blue == this.blue && + color.alpha == this.alpha; + }, + + /** @private */ + dump: function () { + return '[atom.Color(' + this.toString('hexA') + ')]'; + }, + + /** + * @returns {atom.Color} + */ + clone: function () { + return new this.constructor(this); + } +}).own({ + invoke: declare.castArguments, + + /** + * Checks if string is color description + * @param {string} string + * @returns {boolean} + */ + isColorString : function (string) { + if (typeof string != 'string') return false; + return Boolean( + string in this.colorNames || + string.match(/^#\w{3,6}$/) || + string.match(/^rgba?\([\d\., ]+\)$/) + ); + }, + + colorNames: { + white: '#ffffff', + silver: '#c0c0c0', + gray: '#808080', + black: '#000000', + red: '#ff0000', + maroon: '#800000', + yellow: '#ffff00', + olive: '#808000', + lime: '#00ff00', + green: '#008000', + aqua: '#00ffff', + teal: '#008080', + blue: '#0000ff', + navy: '#000080', + fuchsia:'#ff00ff', + purple: '#800080', + orange: '#ffa500' + }, + + /** + * @param {boolean} [html=false] - only html color names + * @returns {atom.Color} + */ + random: function (html) { + var source, random = atom.number.random; + + if (html) { + source = atom.array.random( this.colorNamesList ); + } else { + source = [ random(0, 255), random(0, 255), random(0, 255) ]; + } + + return new this(source); + } +}); + +atom.Color.colorNamesList = Object.keys(atom.Color.colorNames); + +/** @class atom.Color.Shift */ +declare( 'atom.Color.Shift', atom.Color, { noLimits: true }); + +/* +--- + +name: "ImagePreloader" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - declare + - Events + - Settings + +provides: ImagePreloader + +... +*/ + +atom.declare( 'atom.ImagePreloader', { + processed : 0, + number : 0, + + initialize: function (settings) { + this.events = new Events(this); + this.settings = new Settings(settings).addEvents(this.events); + + this.count = { + error: 0, + abort: 0, + load : 0 + }; + + this.suffix = this.settings.get('suffix') || ''; + this.usrImages = this.prefixImages(this.settings.get('images')); + this.imageUrls = this.fetchUrls(); + this.domImages = {}; + //this.domImages = this.createDomImages(); + this.images = {}; + this.createNext(); + }, + get isReady () { + return this.number == this.processed; + }, + get info () { + var stat = atom.string.substitute( + "Images loaded: {load}; Errors: {error}; Aborts: {abort}", + this.count + ); + if (this.isReady) stat = "Image preloading has completed;\n" + stat; + return stat; + }, + get progress () { + return this.isReady ? 1 : atom.number.round(this.processed / this.number, 4); + }, + append: function (preloader) { + for (var i in preloader.images) { + this.images[i] = preloader.images[i]; + } + return this; + }, + exists: function (name) { + return !!this.images[name]; + }, + get: function (name) { + var image = this.images[name]; + if (image) { + return image; + } else { + throw new Error('No image «' + name + '»'); + } + }, + + /** @private */ + cropImage: function (img, c) { + if (!c) return img; + + var canvas = document.createElement('canvas'); + canvas.width = c[2]; + canvas.height = c[3]; + canvas.getContext('2d').drawImage( img, + c[0], c[1], c[2], c[3], 0, 0, c[2], c[3] + ); + return canvas; + }, + /** @private */ + withoutPrefix: function (src) { + return src.indexOf('http://') === 0 || src.indexOf('https://') === 0; + }, + /** @private */ + prefixImages: function (images) { + var prefix = this.settings.get('prefix'); + if (!prefix) return images; + + return atom.object.map(images, function (src) { + return this.withoutPrefix(src) ? src : prefix + src; + }.bind(this)); + }, + /** @private */ + cutImages: function () { + var i, parts, img; + for (i in this.usrImages) if (this.usrImages.hasOwnProperty(i)) { + parts = this.splitUrl( this.usrImages[i] ); + img = this.domImages[ parts.url ]; + this.images[i] = this.cropImage(img, parts.coords); + } + return this; + }, + /** @private */ + splitUrl: function (str) { + var url = str, size, cell, match, coords = null; + + // searching for pattern 'url [x:y:w:y]' + if (match = str.match(/ \[(\d+):(\d+):(\d+):(\d+)\]$/)) { + coords = match.slice( 1 ); + // searching for pattern 'url [w:y]{x:y}' + } else if (match = str.match(/ \[(\d+):(\d+)\]\{(\d+):(\d+)\}$/)) { + coords = match.slice( 1 ).map( Number ); + size = coords.slice( 0, 2 ); + cell = coords.slice( 2, 4 ); + coords = [ cell[0] * size[0], cell[1] * size[1], size[0], size[1] ]; + } + if (match) { + url = str.substr(0, str.lastIndexOf(match[0])); + coords = coords.map( Number ); + } + if (this.suffix) { + if (typeof this.suffix == 'function') { + url = this.suffix( url ); + } else { + url += this.suffix; + } + } + + return { url: url, coords: coords }; + }, + /** @private */ + fetchUrls: function () { + var i, result = [], hash = {}, url, images = this.usrImages; + for (i in images) if (images.hasOwnProperty(i)) { + url = this.splitUrl( images[i] ).url; + if (!hash[url]) { + result.push(url); + hash[url] = true; + this.number++; + } + } + return result; + }, + /** @private */ + createDomImage : function (src) { + var img = new Image(); + img.src = src; + if (window.opera && img.complete) { + setTimeout(this.onProcessed.bind(this, 'load', img), 10); + } else { + ['load', 'error', 'abort'].forEach(function (event) { + img.addEventListener( event, this.onProcessed.bind(this, event, img), false ); + }.bind(this)); + } + return img; + }, + createNext: function () { + if (this.imageUrls.length) { + var url = this.imageUrls.shift(); + this.domImages[url] = this.createDomImage(url); + } + }, + resetImage: function (img) { + // opera fullscreen bug workaround + img.width = img.width; + img.height = img.height; + img.naturalWidth = img.naturalWidth; + img.naturalHeight = img.naturalHeight; + }, + /** @private */ + onProcessed : function (type, img) { + if (type == 'load' && window.opera) { + this.resetImage(img); + } + this.count[type]++; + this.processed++; + this.events.fire('progress', [this, img]); + + if (this.isReady) { + this.cutImages(); + this.events.ensureReady('ready', [this]); + } else { + this.createNext(); + } + return this; + } +}).own({ + run: function (images, callback, context) { + var preloader = new this({ images: images }); + + preloader.events.add( 'ready', context ? callback.bind(context) : callback ); + + return preloader; + } +}); + +/* +--- + +name: "Keyboard" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - declare + - Events + +provides: Keyboard + +... +*/ + +var Keyboard = function () { + +var + keyName, + codeNames = {}, + keyCodes = { + // Alphabet + a:65, b:66, c:67, d:68, e:69, + f:70, g:71, h:72, i:73, j:74, + k:75, l:76, m:77, n:78, o:79, + p:80, q:81, r:82, s:83, t:84, + u:85, v:86, w:87, x:88, y:89, z:90, + // Numbers + n0:48, n1:49, n2:50, n3:51, n4:52, + n5:53, n6:54, n7:55, n8:56, n9:57, + // Controls + tab: 9, enter:13, shift:16, backspace:8, + ctrl:17, alt :18, esc :27, space :32, + menu:93, pause:19, cmd :91, + insert :45, home:36, pageup :33, + 'delete':46, end :35, pagedown:34, + // F* + f1:112, f2:113, f3:114, f4 :115, f5 :116, f6 :117, + f7:118, f8:119, f9:120, f10:121, f11:122, f12:123, + // numpad + np0: 96, np1: 97, np2: 98, np3: 99, np4:100, + np5:101, np6:102, np7:103, np8:104, np9:105, + npslash:11,npstar:106,nphyphen:109,npplus:107,npdot:110, + // Lock + capslock:20, numlock:144, scrolllock:145, + + // Symbols + equals: 61, hyphen :109, coma :188, dot:190, + gravis:192, backslash:220, sbopen:219, sbclose:221, + slash :191, semicolon: 59, apostrophe: 222, + + // Arrows + aleft:37, aup:38, aright:39, adown:40 + }; + +for (keyName in keyCodes) if (keyCodes.hasOwnProperty(keyName)) { + codeNames[ keyCodes[keyName] ] = keyName; +} + +/** @class atom.Keyboard */ +return declare( 'atom.Keyboard', { + initialize : function (element, preventDefault) { + if (Array.isArray(element)) { + preventDefault = element; + element = null; + } + if (element == null) element = document; + + if (element == document) { + if (this.constructor.instance) { + return this.constructor.instance; + } + this.constructor.instance = this; + } + + this.events = new Events(this); + this.keyStates = {}; + this.preventDefault = preventDefault; + + atom.dom(element).bind({ + keyup: this.keyEvent('up'), + keydown: this.keyEvent('down'), + keypress: this.keyEvent('press') + }); + }, + /** @private */ + keyEvent: function (event) { + return this.onKeyEvent.bind(this, event); + }, + /** @private */ + onKeyEvent: function (event, e) { + var key = this.constructor.keyName(e), + prevent = this.prevent(key); + + e.keyName = key; + + if (prevent) e.preventDefault(); + this.events.fire( event, [e] ); + + if (event == 'down') { + this.events.fire(key, [e]); + this.keyStates[key] = true; + } else if (event == 'up') { + this.events.fire(key + ':up', [e]); + delete this.keyStates[key]; + } else if (event == 'press') { + this.events.fire(key + ':press', [e]); + } + + return !prevent; + }, + /** @private */ + prevent : function (key) { + var pD = this.preventDefault; + return pD && (pD === true || pD.indexOf(key) >= 0); + }, + key: function (keyName) { + return !!this.keyStates[ this.constructor.keyName(keyName) ]; + } +}).own({ + keyCodes : keyCodes, + codeNames: codeNames, + keyName: function (code) { + if (code && code.keyCode != null) { + code = code.keyCode; + } + + var type = typeof code; + + if (type == 'number') { + return this.codeNames[code]; + } else if (type == 'string' && code in this.keyCodes) { + return code; + } + + return null; + } +}); + +}(); + + +/* +--- + +name: "Registry" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - declare + +provides: Registry + +... +*/ + +/** @class atom.Registry */ +declare( 'atom.Registry', { + items: {}, + initialize: function (initial) { + this.items = {}; + if (initial) this.set(initial); + }, + set: atom.core.overloadSetter(function (name, value) { + this.items[name] = value; + }), + get: atom.core.overloadGetter(function (name) { + return this.items[name]; + }) +}); + +var Registry = atom.Registry; + +/* +--- + +name: "trace" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - declare + - dom + - CoreExtended + +provides: trace + +... +*/ + +atom.trace = declare( 'atom.trace', { + initialize : function (object) { + this.value = object; + this.stopped = false; + }, + set value (value) { + if (!this.stopped) { + var html = atom.string.replaceAll( this.constructor.dump(value), { + '\t': ' '.repeat(3), + '\n': '
    ' + }); + this.createNode().html(html); + } + }, + destroy : function (force) { + var trace = this; + if (force) this.stop(); + if (trace.node) { + trace.node.addClass('atom-trace-node-destroy'); + trace.timeout = setTimeout(function () { + if (trace.node) { + trace.node.destroy(); + trace.node = null; + } + }, 500); + } + return trace; + }, + /** @private */ + stop : function () { + this.stopped = true; + return this; + }, + /** @private */ + getContainer : function () { + var cont = atom.dom('#atom-trace-container'); + return cont.length ? cont : + atom.dom.create('div', { 'id' : 'atom-trace-container'}) + .appendTo('body'); + }, + /** @deprecated */ + trace : function (value) { + this.value = value; + return this; + }, + /** @private */ + createNode : function () { + var trace = this, node = trace.node; + + if (node) { + if (trace.timeout) { + clearTimeout(trace.timeout); + node.removeClass('atom-trace-node-destroy'); + } + return node; + } + + return trace.node = atom.dom + .create('div') + .addClass('atom-trace-node') + .appendTo(trace.getContainer()) + .bind({ + click : function () { trace.destroy(0) }, + dblclick : function () { trace.destroy(1) } + }); + } +}).own({ + dumpRec : function dumpRec (obj, level, plain) { + var html = '', type, tabs; + + level = parseInt(level) || 0; + + if (level > 5) return '*TOO_DEEP*'; + + if (obj && typeof obj == 'object' && coreIsFunction(obj.dump)) return obj.dump(); + + function escape (v) { + return plain ? v : atom.string.safeHtml(v); + } + + function subDump (elem, index) { + return tabs + '\t' + index + ': ' + dumpRec(elem, level+1, plain) + '\n'; + } + + type = atom.typeOf(obj); + tabs = '\t'.repeat(level); + + switch (type) { + case 'object': + for (var index in obj) if (obj.hasOwnProperty(index)) { + html += subDump(obj[index], index); + } + return '{\n' + html + tabs + '}'; + + case 'element': + var prop = (obj.width && obj.height) ? '('+obj.width+'×'+obj.height+')' : ''; + return '[DOM ' + obj.tagName.toLowerCase() + prop + ']'; + + case 'textnode': + case 'whitespace': + return '[DOM ' + type + ']'; + + case 'array' : return '[\n' + obj.map(subDump).join('') + tabs + ']'; + case 'null' : return 'null'; + case 'boolean': return obj ? 'true' : 'false'; + case 'string' : return escape('"' + obj + '"'); + default : return escape('' + obj); + } + }, + dumpPlain: function (object) { + return (this.dumpRec(object, 0, true)); + }, + dump : function (object) { + return (this.dumpRec(object, 0)); + } +}); + +/* +--- + +name: "Types.Number" + +description: "Contains number-manipulation methods like limit, round, times, and ceil." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: Types.Number + +... +*/ + +atom.number = { + randomFloat: function (max, min) { + return Math.random() * (max - min) + min; + }, + random : function (min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); + }, + between: function (number, n1, n2, equals) { + number = Number(number); + n1 = Number(n1); + n2 = Number(n2); + return (n1 <= n2) && ( + (equals == 'L' && number == n1) || + (equals == 'R' && number == n2) || + (number > n1 && number < n2) || + ([true,'LR','RL'].indexOf(equals) != -1 && (n1 == number || n2 == number)) + ); + }, + equals : function (number, to, accuracy) { + if (accuracy == null) accuracy = 8; + return number.toFixed(accuracy) == to.toFixed(accuracy); + }, + limit: function(number, min, max){ + var bottom = Math.max(min, Number(number)); + return max != null ? Math.min(max, bottom) : bottom; + }, + round: function(number, precision){ + if (!precision) return Math.round(number); + + if (precision < 0) { + precision = Number( Math.pow(10, precision).toFixed( -precision ) ); + } else { + precision = Math.pow(10, precision); + } + return Math.round(number * precision) / precision; + }, + stop: function(num) { + num = Number(num); + if (num) { + clearInterval(num); + clearTimeout (num); + } + return this; + } +}; + +/* +--- + +name: "Types.Array" + +description: "Contains array-manipulation methods like include, contains, and erase." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Types.Number + +provides: Types.Array + +... +*/ + +atom.array = { + /** + * Checks if arguments is array + * @param {Array} array + * @returns {boolean} + */ + is: function (array) { + return Array.isArray(array); + }, + /** + * Creates rangearray + * @param {int} from + * @param {int} to + * @param {int} [step=1] - should be + * @returns {int[]} + */ + range: function (from, to, step) { + from = Number(from); + to = Number(to ); + step = Number(step); + + if (typeof from != 'number') throw new TypeError( '`from` should be number' ); + if (typeof to != 'number') throw new TypeError( '`to` should be number' ); + + var increase = to > from, stepIncrease = step > 0; + + if (!step) { + step = increase ? 1 : -1; + } else if ( increase != stepIncrease ) { + throw new RangeError( 'step direction is wrong' ); + } + + var result = []; + do { + result.push(from); + from += step; + } while (increase ? from <= to : from >= to); + + return result; + }, + /** + * @param {*} item + * @returns {Array} + */ + from: function (item) { + if (item == null) return []; + return (!coreIsArrayLike(item)) ? [item] : + Array.isArray(item) ? item : slice.call(item); + }, + /** + * @private + * @param {Array} args + * @returns {Array} + */ + pickFrom: function (args) { + var fromZeroArgument = args && args.length == 1 + && coreIsArrayLike( args[0] ); + + return atom.array.from( fromZeroArgument ? args[0] : args ); + }, + /** + * @param {number|Array} array + * @param {*} fill + * @returns {Array} + */ + fill: function (array, fill) { + array = Array.isArray(array) ? array : new Array(Number(array)); + for (var i = array.length; i--;) array[i] = fill; + return array; + }, + /** + * @param {number} width + * @param {number} height + * @param {*} fill + * @returns {Array[]} + */ + fillMatrix: function (width, height, fill) { + var array = new Array(height); + while (height--) { + array[height] = Array.fill(width, fill); + } + return array; + }, + /** + * It returns array, atom.object.collect returns hash + * @param {Object} source + * @param {Array} props + * @param {*} [defaultValue=undefined] + * @returns {Array} + */ + collect: function (source, props, defaultValue) { + var array = [], i = 0, l = props.length, prop; + for (;i < l; i++) { + prop = props[i]; + array.push(prop in source ? source[prop] : defaultValue); + } + return array; + }, + /** + * @param {Number} length + * @param {function} callback + * @param {Object} [context=undefined] + * @returns {Array} + */ + create: function (length, callback, context) { + if (!coreIsFunction(callback)) { + throw new TypeError('callback should be function'); + } + var array = new Array(Number(length)); + for (var i = 0; i < length; i++) { + array[i] = callback.call(context, i, array); + } + return array; + }, + /** + * @param {Array} array + * @returns {Object} + */ + toHash: function (array) { + var hash = {}, i = 0, l = array.length; + for (; i < l; i++) { + hash[i] = array[i]; + } + return hash; + }, + /** + * @param {Array} array + * @returns {*} + */ + last: function (array) { + return array.length ? array[array.length - 1] : null; + }, + /** + * @param {Array} array + * @returns number + */ + randomIndex: function (array) { + if (array.length == 0) return null; + + return atom.number.random(0, array.length - 1); + }, + /** + * @param {Array} array + * @param {boolean} erase - erase element after splice, or leave at place + * @returns {*} + */ + random: function (array, erase) { + if (array.length == 0) return null; + + var index = atom.array.randomIndex(array); + + return erase ? array.splice(index, 1)[0] : array[index]; + }, + /** + * Return array of property `name` values of objects + * @param {Array} array + * @param {string} name + * @returns {Array} + */ + property: function (array, name) { + return array.map(function (elem) { + return elem != null ? elem[ name ] : null; + }); + }, + /** @deprecated - use `create` instead */ + fullMap: function (array, fn, bind) { + var mapped = new Array(array.length); + for (var i = 0, l = mapped.length; i < l; i++) { + mapped[i] = fn.call(bind, array[i], i, array); + } + return mapped; + }, + /** + * Check, if array contains elem + * @param {Array} array + * @param {*} elem + * @param {number} [fromIndex=0] + * @returns {boolean} + */ + contains: function (array, elem, fromIndex) { + return array.indexOf(elem, fromIndex) != -1; + }, + /** + * Push element to array, if it doesn't contains such element + * @param {Array} target + * @param {*} item + * @returns {Array} - target array + */ + include: includeUnique, + /** + * Erase item from array + * @param {Array} target + * @param {*} item + * @returns {Array} - target array + */ + erase: coreEraseAll, + /** + * `push` source array values to the end of target array + * @param {Array} target + * @param {Array} source + * @returns {Array} - target array + */ + append: function (target, source) { + for (var i = 1, l = arguments.length; i < l; i++) if (arguments[i]) { + target.push.apply(target, arguments[i]); + } + return target; + }, + /** @deprecated */ + toKeys: function (value) { + var useValue = arguments.length == 1, obj = {}; + for (var i = 0, l = this.length; i < l; i++) + obj[this[i]] = useValue ? value : i; + return obj; + }, + /** + * `include` source array values to the end of target array + * @param {Array} target + * @param {Array} source + * @returns {Array} - target array + */ + combine: function(target, source){ + for (var i = 0, l = source.length; i < l; i++) { + atom.array.include(target, source[i]); + } + return target; + }, + /** + * returns first not-null value, or returns null + * @param {Array} source + * @returns {*} + */ + pick: function(source){ + for (var i = 0, l = source.length; i < l; i++) { + if (source[i] != null) return source[i]; + } + return null; + }, + /** + * You can invoke array of functions with context "context" + * Or all methods of objects in array + * all params except zero & first will be sed as argument + * @param {Array} array + * @param {Object|string} [context=null] + * @returns {Array} - array of results + */ + invoke: function(array, context){ + var args = slice.call(arguments, 2); + if (typeof context == 'string') { + var methodName = context; + context = null; + } + return array.map(function(item){ + return item && (methodName ? item[methodName] : item).apply(methodName ? item : context, args); + }); + }, + /** + * shuffle array with smart algorithm + * @param {Array} array + * @returns {Array} + */ + shuffle : function (array) { + var tmp, moveTo, index = array.length; + while (index--) { + moveTo = atom.number.random( 0, index ); + tmp = array[index ]; + array[index] = array[moveTo]; + array[moveTo] = tmp; + } + return array; + }, + /** + * sort array by property value or method returns + * @param {Array} array + * @param {string} method + * @param {boolean} [reverse=false] (if true) first - smallest, last - biggest + * @returns {Array} + */ + sortBy : function (array, method, reverse) { + var get = function (elem) { + return (coreIsFunction(elem[method]) ? elem[method]() : elem[method]) || 0; + }; + var multi = reverse ? -1 : 1; + return array.sort(function ($0, $1) { + var diff = get($1) - get($0); + return diff ? (diff < 0 ? -1 : 1) * multi : 0; + }); + }, + /** + * Returns min value in array + * @param {Array} array + * @returns {Array} + */ + min: function(array){ + return Math.min.apply(null, array); + }, + /** + * Returns max value in array + * @param {Array} array + * @returns {Array} + */ + max: function(array){ + return Math.max.apply(null, array); + }, + /** + * Multiply all values in array to factor & returns result array + * @param {Array} array + * @param {number} factor + * @returns {Array} + */ + mul: function (array, factor) { + for (var i = array.length; i--;) array[i] *= factor; + return array; + }, + /** + * Add to all values in array number & returns result array + * @param {Array} array + * @param {number} number + * @returns {Array} + */ + add: function (array, number) { + for (var i = array.length; i--;) array[i] += number; + return array; + }, + /** + * Returns sum of all elements in array + * @param {Array} array + * @returns {number} + */ + sum: function (array) { + for (var result = 0, i = array.length; i--;) result += array[i]; + return result; + }, + /** + * Returns product (result of multiplying) of all elements in array + * @param {Array} array + * @returns {number} + */ + product: function (array) { + for (var result = 1, i = array.length; i--;) result *= array[i]; + return result; + }, + /** + * Returns average value in array ( sum / length ) + * @param {Array} array + * @returns {number} + */ + average: function (array) { + return array.length ? atom.array.sum(array) / array.length : 0; + }, + /** + * returns array with only unique values ( [1,2,2,3] => [1,2,3] ) + * @param {Array} array + * @returns {Array} + */ + unique: function(array){ + return atom.array.combine([], array); + }, + /** + * associate array values with keys + * if `keys` is array it used as keys names, and array used as values + * if `keys` if function it used as function, generated values & array used as keys + * @param {Array} array + * @param {Function|Array} keys + * @returns {Object} + */ + associate: function(array, keys){ + var + i = 0, + obj = {}, + length = array.length, + isFn = coreIsFunction(keys), + keysSource = isFn ? array : keys; + + if (!isFn) length = Math.min(length, keys.length); + for (;i < length; i++) { + obj[ keysSource[i] ] = isFn ? keys(array[i], i) : array[i]; + } + return obj; + }, + /** + * clean array from empty values & returns empty array + * @param {Array} array + * @returns {Array} + */ + clean: function (array){ + return array.filter(function (item) { return item != null }); + }, + /** + * quickly erase all values from array + * @param {Array} array + * @returns {Array} + */ + empty: function (array) { + array.length = 0; + return array; + }, + /** @deprecated */ + clone: function (array) { return atom.clone(array) }, + /** + * @param array + * @param {boolean} [asArray=false] - returns result as array, or as string + * @returns {Array|string} + */ + hexToRgb: function(array, asArray){ + if (array.length != 3) return null; + var rgb = array.map(function(value){ + if (value.length == 1) value += value; + return parseInt(value, 16); + }); + return asArray ? rgb : 'rgb(' + rgb + ')'; + }, + /** + * @param array + * @param {boolean} [asArray=false] - returns result as array, or as string + * @returns {Array|string} + */ + rgbToHex: function(array, asArray) { + if (array.length < 3) return null; + if (array.length == 4 && array[3] == 0 && !asArray) return 'transparent'; + var hex = [], i = 0, bit; + for (; i < 3; i++){ + bit = (array[i] - 0).toString(16); + hex.push((bit.length == 1) ? '0' + bit : bit); + } + return asArray ? hex : '#' + hex.join(''); + }, + + /** + * @param {Array} array + * @param {Function} callback + * @param {*} value + * @returns {*} + */ + reduce: function(array, callback, value){ + if (coreIsFunction(array.reduce)) return array.reduce(callback, value); + + for (var i = 0, l = array.length; i < l; i++) if (i in array) { + value = value === undefined ? array[i] : callback.call(null, value, array[i], i, array); + } + return value; + }, + + /** + * @param {Array} array + * @param {Function} callback + * @param {*} value + * @returns {*} + */ + reduceRight: function(array, callback, value){ + if (coreIsFunction(array.reduceRight)) return array.reduceRight(callback, value); + + for (var i = array.length; i--;) if (i in array) { + value = value === undefined ? array[i] : callback.call(null, value, array[i], i, array); + } + return value; + } +}; + +/* +--- + +name: "Prototypes.Abstract" + +description: "Contains office methods for prototypes extension." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Types.Array + - Types.Object + +provides: Prototypes.Abstract + +... +*/ + +var prototypize = { + callbacks: [], + fn: function (source) { + return function (methodName) { + return function () { + var args = slice.call(arguments); + args.unshift(this); + return source[methodName].apply(source, args); + }; + }; + }, + proto: function (object, proto, methodsString) { + coreAppend(object.prototype, atom.array.associate( + methodsString.split(' '), proto + )); + return prototypize; + }, + own: function (object, source, methodsString) { + coreAppend(object, atom.object.collect( source, methodsString.split(' ') )); + return prototypize; + }, + add: function (callback) { + this.callbacks.push(callback); + } +}; + +atom.patching = function (globalObject) { + prototypize.callbacks.forEach(function (callback) { + callback(globalObject); + }); +}; + +/* +--- + +name: "Prototypes.Array" + +description: "Contains Array Prototypes like include, contains, and erase." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Types.Array + - Prototypes.Abstract + +provides: Prototypes.Array + +... +*/ + +prototypize.add(function (globalObject) { + +var Array = globalObject.Array; + +var proto = prototypize.fn(atom.array); + +prototypize + .own(Array, atom.array, 'range from pickFrom fill fillMatrix collect create toHash') + .proto(Array, proto, 'randomIndex property contains include append erase combine pick invoke shuffle sortBy min max mul add sum product average unique associate clean empty clone hexToRgb rgbToHex' ); + +atom.accessors.define(Array.prototype, { + last : { get: function () { + return atom.array.last(this); + }}, + random: { get: function () { + return atom.array.random(this, false); + }} +}); + +coreAppend(Array.prototype, { + popRandom: function () { + return atom.array.random(this, true); + }, + /** @deprecated */ + toKeys: function () { + console.log( '[].toKeys is deprecated. Use forEach instead' ); + return atom.array.toKeys(this); + }, + /** @deprecated */ + fullMap: function (callback, context) { + console.log( '[].fullMap is deprecated. Use atom.array.create instead' ); + return atom.array.create(this.length, callback, context); + } +}); + +if (!Array.prototype.reduce ) Array.prototype.reduce = proto('reduce'); +if (!Array.prototype.reduceRight) Array.prototype.reduceRight = proto('reduceRight'); + +}); + +/* +--- + +name: "Types.Function" + +description: "Contains function manipulation methods." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Types.Array + +provides: Types.Function + +... +*/ + +atom.fn = { + lambda: function (value) { + var returnThis = (arguments.length == 0); + return function () { return returnThis ? this : value; }; + }, + + after: function (onReady, fnName) { + var after = {}, ready = {}; + function checkReady (){ + for (var i in after) if (!ready[i]) return; + onReady(ready); + } + slice.call(arguments, 1).forEach(function (key) { + after[key] = function () { + ready[key] = slice.call(arguments); + ready[key].context = this; + checkReady(); + }; + }); + return after; + } +}; + + +/* +--- + +name: "Prototypes.Function" + +description: "Contains Function Prototypes like after, periodical and delay." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + - Types.Function + - Prototypes.Abstract + +provides: Prototypes.Function + +... +*/ + +prototypize.add(function (globalObject) { + + var Function = globalObject.Function; + + Function.lambda = atom.fn.lambda; + + function timer (periodical) { + var set = periodical ? setInterval : setTimeout; + + return function (time, bind, args) { + var fn = this; + return set(function () { + fn.apply( bind, args || [] ); + }, time); + }; + } + + coreAppend(Function.prototype, { + after: prototypize.fn(atom.fn)('after'), + delay : timer(false), + periodical: timer(true ) + }); + +}); + + +/* +--- + +name: "Types.Math" + +description: "" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: Types.Math + +... +*/ + +(function () { + +var + degree = Math.PI / 180, + deg360 = Math.PI * 2; + +atom.math = { + + DEGREE360: deg360, + + /** + * Cast degrees to radians + * atom.math.degree(90) == Math.PI/2 + */ + degree: function (degrees) { + return degrees * degree; + }, + + /** + * Cast radians to degrees + * atom.math.getDegree(Math.PI/2) == 90 + */ + getDegree: function (radians, round) { + radians /= degree; + + return round ? Math.round(radians) : radians; + }, + normalizeAngle : function (radians) { + radians %= deg360; + + return radians + ( radians < 0 ? deg360 : 0 ); + }, + + hypotenuse: function (cathetus1, cathetus2) { + return Math.sqrt(cathetus1*cathetus1 + cathetus2*cathetus2); + }, + cathetus: function (hypotenuse, cathetus2) { + return Math.sqrt(hypotenuse*hypotenuse - cathetus2*cathetus2); + } +}; + +})(); + + +/* +--- + +name: "Prototypes.Number" + +description: "Contains Number Prototypes like limit, round, times, and ceil." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Types.Number + - Types.Math + - Prototypes.Abstract + +provides: Prototypes.Number + +... +*/ + +prototypize.add(function (globalObject) { + +var Number = globalObject.Number; + +prototypize + .own(Number, atom.number, 'random randomFloat') + .proto(Number, prototypize.fn(atom.number), 'between equals limit round stop' ) + .proto(Number, prototypize.fn(atom.math ), 'degree getDegree normalizeAngle' ); + +coreAppend(Number.prototype, { + toFloat: function(){ + return parseFloat(this); + }, + toInt: function(base){ + return parseInt(this, base || 10); + } +}); + +'abs acos asin atan atan2 ceil cos exp floor log max min pow sin sqrt tan' + .split(' ') + .forEach(function(method) { + if (Number[method]) return; + + Number.prototype[method] = function() { + return Math[method].apply(null, [this].append(arguments)); + }; + }); +}); + +/* +--- + +name: "Prototypes.Object" + +description: "Object generic methods" + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Types.Object + +provides: Prototypes.Object + +... +*/ + +prototypize.add(function (globalObject) { + coreAppend(globalObject.Object, atom.object); +}); + +/* +--- + +name: "Types.String" + +description: "Contains string-manipulation methods like repeat, substitute, replaceAll and begins." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Core + +provides: Types.String + +... +*/ + +new function () { + +var UID = Date.now(); + +atom.string = { + /** + * @returns {string} - unique for session value in 36-radix + */ + uniqueID: function () { + return (UID++).toString(36); + }, + /** + * escape all html unsafe characters - & ' " < > + * @param {string} string + * @returns {string} + */ + safeHtml: function (string) { + return this.replaceAll(string, /[<'&">]/g, { + '&' : '&', + '\'' : ''', + '\"' : '"', + '<' : '<', + '>' : '>' + }); + }, + /** + * repeat string `times` times + * @param {string} string + * @param {int} times + * @returns {string} + */ + repeat: function(string, times) { + return new Array(times + 1).join(string); + }, + /** + * @param {string} string + * @param {Object} object + * @param {RegExp} [regexp=null] + * @returns {string} + */ + substitute: function(string, object, regexp){ + return string.replace(regexp || /\\?\{([^{}]+)\}/g, function(match, name){ + return (match[0] == '\\') ? match.slice(1) : (object[name] == null ? '' : object[name]); + }); + }, + /** + * @param {string} string + * @param {Object|RegExp|string} find + * @param {Object|string} [replace=null] + * @returns {String} + */ + replaceAll: function (string, find, replace) { + if (toString.call(find) == '[object RegExp]') { + return string.replace(find, function (symb) { return replace[symb]; }); + } else if (typeof find == 'object') { + for (var i in find) string = this.replaceAll(string, i, find[i]); + return string; + } + return string.split(find).join(replace); + }, + /** + * Checks if string contains such substring + * @param {string} string + * @param {string} substr + */ + contains: function (string, substr) { + return string ? string.indexOf( substr ) >= 0 : false; + }, + /** + * Checks if string begins with such substring + * @param {string} string + * @param {string} substring + * @param {boolean} [caseInsensitive=false] + * @returns {boolean} + */ + begins: function (string, substring, caseInsensitive) { + if (!string) return false; + return (!caseInsensitive) ? substring == string.substr(0, substring.length) : + substring.toLowerCase() == string.substr(0, substring.length).toLowerCase(); + }, + /** + * Checks if string ends with such substring + * @param {string} string + * @param {string} substring + * @param {boolean} [caseInsensitive=false] + * @returns {boolean} + */ + ends: function (string, substring, caseInsensitive) { + if (!string) return false; + return (!caseInsensitive) ? substring == string.substr(string.length - substring.length) : + substring.toLowerCase() == string.substr(string.length - substring.length).toLowerCase(); + }, + /** + * Uppercase first character + * @param {string} string + * @returns {string} + */ + ucfirst : function (string) { + return string ? string[0].toUpperCase() + string.substr(1) : ''; + }, + /** + * Lowercase first character + * @param {string} string + * @returns {string} + */ + lcfirst : function (string) { + return string ? string[0].toLowerCase() + string.substr(1) : ''; + } +}; + +}(); + +/* +--- + +name: "Prototypes.String" + +description: "Contains String Prototypes like repeat, substitute, replaceAll and begins." + +license: + - "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)" + - "[MIT License](http://opensource.org/licenses/mit-license.php)" + +requires: + - Types.String + - Prototypes.Abstract + +provides: Prototypes.String + +... +*/ + +prototypize.add(function (globalObject) { + prototypize.proto(globalObject.String, prototypize.fn(atom.string), + 'safeHtml repeat substitute replaceAll contains begins ends ucfirst lcfirst' + ); +}); + +}.call(typeof exports == 'undefined' ? window : exports, Object, Array)); diff --git a/bower_components/chai/.bower.json b/bower_components/chai/.bower.json new file mode 100644 index 00000000..ed4bb733 --- /dev/null +++ b/bower_components/chai/.bower.json @@ -0,0 +1,37 @@ +{ + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "license": "MIT", + "keywords": [ + "test", + "assertion", + "assert", + "testing", + "chai" + ], + "main": "chai.js", + "ignore": [ + "build", + "components", + "lib", + "node_modules", + "support", + "test", + "index.js", + "Makefile", + ".*" + ], + "dependencies": {}, + "devDependencies": {}, + "homepage": "https://github.com/chaijs/chai", + "version": "3.5.0", + "_release": "3.5.0", + "_resolution": { + "type": "version", + "tag": "3.5.0", + "commit": "57c85f624a7e19ffaf1a2c7d07d81180db17bec7" + }, + "_source": "https://github.com/chaijs/chai.git", + "_target": "^3.2.0", + "_originalSource": "chai" +} \ No newline at end of file diff --git a/bower_components/chai/CODE_OF_CONDUCT.md b/bower_components/chai/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..5194527f --- /dev/null +++ b/bower_components/chai/CODE_OF_CONDUCT.md @@ -0,0 +1,58 @@ +# Contributor Code of Conduct + +> Read in: [Español](http://contributor-covenant.org/version/1/3/0/es/) | +[Français](http://contributor-covenant.org/version/1/3/0/fr/) | +[Italiano](http://contributor-covenant.org/version/1/3/0/it/) | +[Magyar](http://contributor-covenant.org/version/1/3/0/hu/) | +[Polskie](http://contributor-covenant.org/version/1/3/0/pl/) | +[Português](http://contributor-covenant.org/version/1/3/0/pt/) | +[Português do Brasil](http://contributor-covenant.org/version/1/3/0/pt_br/) + +As contributors and maintainers of this project, and in the interest of +fostering an open and welcoming community, we pledge to respect all people who +contribute through reporting issues, posting feature requests, updating +documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic + addresses, without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to +fairly and consistently applying these principles to every aspect of managing +this project. Project maintainers who do not follow or enforce the Code of +Conduct may be permanently removed from the project team. + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting a project maintainer at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. Maintainers are +obligated to maintain confidentiality with regard to the reporter of an +incident. + + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.3.0, available at +[http://contributor-covenant.org/version/1/3/0/][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/3/0/ diff --git a/bower_components/chai/CONTRIBUTING.md b/bower_components/chai/CONTRIBUTING.md new file mode 100644 index 00000000..8de9ba8e --- /dev/null +++ b/bower_components/chai/CONTRIBUTING.md @@ -0,0 +1,214 @@ +# Chai Contribution Guidelines + +We like to encourage you to contribute to the Chai.js repository. This should be as easy as possible for you but there are a few things to consider when contributing. The following guidelines for contribution should be followed if you want to submit a pull request or open an issue. + +Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features. + +#### Table of Contents + +- [TLDR;](#tldr) +- [Contributing](#contributing) + - [Bug Reports](#bugs) + - [Feature Requests](#features) + - [Pull Requests](#pull-requests) +- [Releasing](#releasing) +- [Support](#support) + - [Resources](#resources) + - [Core Contributors](#contributors) + + +## TLDR; + +- Creating an Issue or Pull Request requires a [GitHub](http://github.com) account. +- Issue reports should be **clear**, **concise** and **reproducible**. Check to see if your issue has already been resolved in the [master]() branch or already reported in Chai's [GitHub Issue Tracker](https://github.com/chaijs/chai/issues). +- Pull Requests must adhere to strict [coding style guidelines](https://github.com/chaijs/chai/wiki/Chai-Coding-Style-Guide). +- In general, avoid submitting PRs for new Assertions without asking core contributors first. More than likely it would be better implemented as a plugin. +- Additional support is available via the [Google Group](http://groups.google.com/group/chaijs) or on irc.freenode.net#chaijs. +- **IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. + + + + +## Contributing + +The issue tracker is the preferred channel for [bug reports](#bugs), +[feature requests](#features) and [submitting pull +requests](#pull-requests), but please respect the following restrictions: + +* Please **do not** use the issue tracker for personal support requests (use + [Google Group](https://groups.google.com/forum/#!forum/chaijs) or IRC). +* Please **do not** derail or troll issues. Keep the discussion on topic and + respect the opinions of others + + +### Bug Reports + +A bug is a **demonstrable problem** that is caused by the code in the repository. + +Guidelines for bug reports: + +1. **Use the GitHub issue search** — check if the issue has already been reported. +2. **Check if the issue has been fixed** — try to reproduce it using the latest `master` or development branch in the repository. +3. **Isolate the problem** — create a test case to demonstrate your issue. Provide either a repo, gist, or code sample to demonstrate you problem. + +A good bug report shouldn't leave others needing to chase you up for more information. Please try to be as detailed as possible in your report. What is your environment? What steps will reproduce the issue? What browser(s) and/or Node.js versions experience the problem? What would you expect to be the outcome? All these details will help people to fix any potential bugs. + +Example: + +> Short and descriptive example bug report title +> +> A summary of the issue and the browser/OS environment in which it occurs. If suitable, include the steps required to reproduce the bug. +> +> 1. This is the first step +> 2. This is the second step +> 3. Further steps, etc. +> +> `` - a link to the reduced test case OR +> ```js +> expect(a).to.equal('a'); +> // code sample +> ``` +> +> Any other information you want to share that is relevant to the issue being reported. This might include the lines of code that you have identified as causing the bug, and potential solutions (and your opinions on their merits). + + +### Feature Requests + +Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the project. It's up to *you* to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible. + +Furthermore, since Chai.js has a [robust plugin API](http://chaijs.com/guide/plugins/), we encourage you to publish **new Assertions** as plugins. If your feature is an enhancement to an **existing Assertion**, please propose your changes as an issue prior to opening a pull request. If the core Chai.js contributors feel your plugin would be better suited as a core assertion, they will invite you to open a PR in [chaijs/chai](https://github.com/chaijs/chai). + + +### Pull Requests + +- PRs for new core-assertions are advised against. +- PRs for core-assertion bug fixes are always welcome. +- PRs for enhancing the interfaces are always welcome. +- PRs that increase test coverage are always welcome. +- PRs are scrutinized for coding-style. + +Good pull requests - patches, improvements, new features - are a fantastic help. They should remain focused in scope and avoid containing unrelated commits. + +**Please ask first** before embarking on any significant pull request (e.g. implementing features, refactoring code), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project. + +Please adhere to the coding conventions used throughout a project (indentation, accurate comments, etc.) and any other requirements (such as test coverage). Please review the [Chai.js Coding Style Guide](https://github.com/chaijs/chai/wiki/Chai-Coding-Style-Guide). + +Follow this process if you'd like your work considered for inclusion in the project: + +1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, and configure the remotes: + +```bash +# Clone your fork of the repo into the current directory +git clone https://github.com// +# Navigate to the newly cloned directory +cd +# Assign the original repo to a remote called "upstream" +git remote add upstream https://github.com// +``` + +2. If you cloned a while ago, get the latest changes from upstream: + +```bash +git checkout +git pull upstream +``` + +3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix: + +```bash +git checkout -b +``` + +4. Commit your changes in logical chunks. Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public. + +5. Run you code to make sure it works. If you're still having problems please try to run `make clean` and then test your code again. + +```bash +npm test +# when finished running tests... +git checkout chai.js +``` + +6. Locally merge (or rebase) the upstream development branch into your topic branch: + +```bash +git pull [--rebase] upstream +``` + +7. Push your topic branch up to your fork: + +```bash +git push origin +``` + +8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description. + +**IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. + + +## Releasing + +Releases can be **prepared** by anyone with access to the code. + +Simply run `make release-major`, `make release-minor`, or `make-release-patch` +and it will automatically do the following: + + - Build chai.js + - Bump the version numbers accross the project + - Make a commit within git + +All you need to do is push the commit up and make a pull request, one of the core contributors will merge it and publish a release. + +### Publishing a Release + +Anyone who is a core contributor (see the [Core Contributors Heading in the Readme](https://github.com/chaijs/chai#core-contributors)) can publish a release: + +1. Go to te [Releases page on Github](https://github.com/chaijs/chai/releases) +2. Hit "Draft a new release" (if you can't see this, you're not a core contributor!) +3. Write human-friendly Release Notes based on changelog. + - The release title is "x.x.x / YYYY-MM-DD" (where x.x.x is the version number) + - If breaking changes, write migration tutorial(s) and reasoning. + - Callouts for community contributions (PRs) with links to PR and contributing user. + - Callouts for other fixes made by core contributors with links to issue. +4. Hit "Save Draft" and get other core contributors to check your work, or alternatively hit "Publish release" +5. That's it! + + +## Support + + +### Resources + +For most of the documentation you are going to want to visit [ChaiJS.com](http://chaijs.com). + +- [Getting Started Guide](http://chaijs.com/guide/) +- [API Reference](http://chaijs.com/api/) +- [Plugins](http://chaijs.com/plugins/) + +Alternatively, the [wiki](https://github.com/chaijs/chai/wiki) might be what you are looking for. + +- [Chai Coding Style Guide](https://github.com/chaijs/chai/wiki/Chai-Coding-Style-Guide) +- [Third-party Resources](https://github.com/chaijs/chai/wiki/Third-Party-Resources) + +Or finally, you may find a core-contributor or like-minded developer in any of our support channels. + +- IRC: irc.freenode.org #chaijs +- [Mailing List / Google Group](https://groups.google.com/forum/#!forum/chaijs) + + +### Core Contributors + +Feel free to reach out to any of the core-contributors with you questions or concerns. We will do our best to respond in a timely manner. + +- Jake Luer + - GH: [@logicalparadox](https://github.com/logicalparadox) + - TW: [@jakeluer](http://twitter.com/jakeluer) + - IRC: logicalparadox +- Veselin Todorov + - GH: [@vesln](https://github.com/vesln/) + - TW: [@vesln](http://twitter.com/vesln) + - IRC: vesln +- Keith Cirkel + - GH: [@keithamus](https://github.com/keithamus) + - TW: [@keithamus](http://twitter.com/keithamus) + - IRC: keithamus diff --git a/bower_components/chai/History.md b/bower_components/chai/History.md new file mode 100644 index 00000000..ae4d323e --- /dev/null +++ b/bower_components/chai/History.md @@ -0,0 +1,1059 @@ +### Note + +As of 3.0.0, the History.md file has been deprecated. [Please refer to the full +commit logs available on GitHub](https://github.com/chaijs/chai/commits/master). + +--- + +2.3.0 / 2015-04-26 +================== + + * Merge pull request #423 from ehntoo/patch-1 + * Merge pull request #422 from ljharb/fix_descriptor_tests + * Fix a small bug in the .null assertion docs + * Use a regex to account for property ordering issues across engines. + * Add `make test-firefox` + * Merge pull request #417 from astorije/astorije/minimalist-typo + * Remove trailing whitespaces + * Fix super minor typo in an example + * Merge pull request #408 from ljharb/enumerableProperty + * Add `ownPropertyDescriptor` assertion. + +2.2.0 / 2015-03-26 +================== + + * Merge pull request #405 from chaijs/deep-escape-doc-tweaks + * Tweak documentation on `.deep` flag. + * Merge pull request #402 from umireon/escaping-dot-should-be-taken + * Documentation of escaping in `.deep` flag. + * take regular expression apart + * Feature: backslash-escaping in `.deep.property` + * Escaping dot should be taken in deep property + +2.1.2 / 2015-03-15 +================== + + * Merge pull request #396 from chaijs/add-keith-cirkel-contributing-md + * Add Keith Cirkel to CONTRIBUTING.md + * Merge pull request #395 from cjqed/386-assert-operator-no-eval + * No longer using eval on assert operator #386 + * Merge pull request #389 from chaijs/update-git-summary + * Update `git summary` in README + +2.1.1 / 2015-03-04 +================== + + * Merge pull request #385 from eldritch-fossicker/master + * updates to reflect code style preference from @keithamus + * fix indexing into array with deep propery + * Merge pull request #382 from astorije/patch-2 + * Merge pull request #383 from gurdiga/config-doc-wording-improvement + * config.truncateThreshold docs: simpler wording + * Add missing docstring for showDiff argument of assert + * Merge pull request #381 from astorije/patch-1 + * Add a minor precision that empty asserts on strings too. + * Merge pull request #379 from dcneiner/should-primitive-fix + * Primitives now use valueOf in shouldGetter + +2.1.0 / 2015-02-23 +================== + + * Merge pull request #374 from jmm/v2.0.1 + * Increment version to 2.0.1. + * Merge pull request #365 from chaijs/fix-travis + * Fix travis.yml deploy + * Merge pull request #356 from Soviut/master + * documented fail methods for expect and should interfaces + * fail method added directly to expect + +2.0.0 / 2015-02-09 +================== + + * Merge pull request #361 from gregglind/b265-keys-object + * fix #359. Add `.keys(object)` + * Merge pull request #359 from gregglind/b359-unexpected-keys-sort + * Fix #359 keys() sorts input unexpectedly + * contrib: publish release strategy and travis npm creds #337 + * Merge pull request #357 from danilovaz/master + * Update copyright date + * Merge pull request #349 from toastynerd/add-which-chain-method + * add the which chain method as per issue #347 + * Merge pull request #333 from cmpolis/change-assertions + * more `by` cleanup + * cleaned out `.by` for #333 + * Merge pull request #335 from DingoEatingFuzz/expose-util + * Expose chai util through the chai object + * cleanup (per notes on pr #333) + * updated `change` to work w/ non-number values + tests + * Merge pull request #334 from hurrymaplelad/patch-1 + * Typo, the flag is called 'contains' with an 's' + * updated assertion interface with `change` (#330) + * added `change`,`increase`,`decrease` assertions (#330) + * assert tests for `change`,`increase`,`decrease` + * expect/should tests for `change`,`increase`,`decrease` + * Merge pull request #328 from lo1tuma/issue-327 + * Add includes and contains alias (fixes #327) + * Merge pull request #325 from chasenlehara/overwriteChainableMethodDocs + * Fix docs for overwriteChainableMethod parameters + * Merge pull request #317 from jasonkarns/patch-2 + * Merge pull request #318 from jasonkarns/patch-3 + * Merge pull request #316 from jasonkarns/patch-1 + * typos in docs + * minor docs typo + * update docs: getAllFlags -> transferFlags + * Merge pull request #313 from cjqed/254-expect-any-all + * Added the all and any flags for keys assertion, with all being the default behavior + * Merge pull request #312 from cjqed/291-assert-same-deep-members + * Changed public comment of sameDeepMemebers to be more clear + * Fixes issue #291, adds assert.sameDeepMembers + * Merge pull request #311 from cjqed/305-above-below-on-assert + * Merge pull request #308 from prodatakey/hasproperty + * Issue #305 fixed, added assert.isAbove and assert.isBelow + * Fix typo + * More unit tests for new utility functions + * Refactor common functionality, document, test + * Refactor if statement out + * Small unit test fix + * Handle array indexing terminating paths + * Merge pull request #309 from ericdouglas/iterableEqual-couting-once + * couting variables just once + * Fix properties with `undefined` value pass property assertion + * Merge pull request #306 from chaijs/revert-297-noopchainfunc + * Revert "Allows writing lint-friendly tests" + +1.10.0 / 2014-11-10 +================== + + * Merge pull request #297 from prodatakey/noopchainfunc + * Merge pull request #300 from julienw/299-fix-getMessage-test + * Fix #299: the test is defining global variables + * Add a couple more unit tests + * Add unit tests for chained terminating property asserts + * Revise documentation wording + * Add docs for function style NOOP asserts + * Make the NOOP function a shared constant + * Merge pull request #298 from dasilvacontin/negativeZeroLogging + * why not more assertions + * added test for inspecting `-0` + * a more readable/simple condition statement, as pointed out by @keithamus + * added check for logging negative zero + * Change test to not trigger argument bug + * Allows writing lint-friendly tests + * readme: update contributors for 1.9.2 + +1.9.2 / 2014-09-29 +================== + + * Merge pull request #268 from charlierudolph/cr-lazyMessages + * Merge pull request #269 from charlierudolph/cr-codeCleanup + * Merge pull request #277 from charlierudolph/fix-doc + * Merge pull request #279 from mohayonao/fix-closeTo + * Merge pull request #292 from boneskull/mocha + * resolves #255: upgrade mocha + * Merge pull request #289 from charlierudolph/cr-dryUpCode + * Dry up code + * Merge pull request #275 from DrRataplan/master + * assert: .closeTo() verify value's type before assertion + * Rewrite pretty-printing HTML elements to prevent throwing internal errors Fixes errors occuring when using a non-native DOM implementation + * Fix assert documentation + * Remove unused argument + * Allow messages to be functions + * Merge pull request #267 from shinnn/master + * Use SVG badge + * Merge pull request #264 from cjthompson/keys_diff + * Show diff for keys assertion + +1.9.1 / 2014-03-19 +================== + + * deps update + * util: [getActual] select actual logic now allows undefined for actual. Closes #183 + * docs: [config] make public, express param type + * Merge pull request #251 from romario333/threshold3 + * Fix issue #166 - configurable threshold in objDisplay. + * Move configuration options to config.js. + * Merge pull request #233 from Empeeric/master + * Merge pull request #244 from leider/fix_for_contains + * Merge pull request #247 from didoarellano/typo-fixes + * Fix typos + * Merge pull request #245 from lfac-pt/patch-1 + * Update `exports.version` to 1.9.0 + * aborting loop on finding + * declaring variable only once + * additional test finds incomplete implementation + * simplified code + * fixing #239 (without changing chai.js) + * ssfi as it should be + * Merge pull request #228 from duncanbeevers/deep_members + * Deep equality check for collection membership + +1.9.0 / 2014-01-29 +================== + + * docs: add contributing.md #238 + * assert: .throws() returns thrown error. Closes #185 + * Merge pull request #232 from laconbass/assert-throws + * assert: .fail() parameter mismatch. Closes #206 + * Merge branch 'karma-fixes' + * Add karma phantomjs launcher + * Use latest karma and sauce launcher + * Karma tweaks + * Merge pull request #230 from jkroso/include + * Merge pull request #237 from chaijs/coverage + * Add coverage to npmignore + * Remove lib-cov from test-travisci dependents + * Remove the not longer needed lcov reporter + * Test coverage with istanbul + * Remove jscoverage + * Remove coveralls + * Merge pull request #226 from duncanbeevers/add_has + * Avoid error instantiation if possible on assert.throws + * Merge pull request #231 from duncanbeevers/update_copyright_year + * Update Copyright notices to 2014 + * handle negation correctly + * add failing test case + * support `{a:1,b:2}.should.include({a:1})` + * Merge pull request #224 from vbardales/master + * Add `has` to language chains + * Merge pull request #219 from demands/overwrite_chainable + * return error on throw method to chain on error properties, possibly different from message + * util: store chainable behavior in a __methods object on ctx + * util: code style fix + * util: add overwriteChainableMethod utility (for #215) + * Merge pull request #217 from demands/test_cleanup + * test: make it possible to run utilities tests with --watch + * makefile: change location of karma-runner bin script + * Merge pull request #202 from andreineculau/patch-2 + * test: add tests for throwing custom errors + * Merge pull request #201 from andreineculau/patch-1 + * test: updated for the new assertion errors + * core: improve message for assertion errors (throw assertion) + +1.8.1 / 2013-10-10 +================== + + * pkg: update deep-eql version + +1.8.0 / 2013-09-18 +================== + + * test: [sauce] add a few more browsers + * Merge branch 'refactor/deep-equal' + * util: remove embedded deep equal utility + * util: replace embedded deep equal with external module + * Merge branch 'feature/karma' + * docs: add sauce badge to readme [ci skip] + * test: [sauce] use karma@canary to prevent timeouts + * travis: only run on node 0.10 + * test: [karma] use karma phantomjs runner + * Merge pull request #181 from tricknotes/fix-highlight + * Fix highlight for example code + +1.7.2 / 2013-06-27 +================== + + * coverage: add coveralls badge + * test: [coveralls] add coveralls api integration. testing travis-ci integration + * Merge branch 'master' of github.com:chaijs/chai + * Merge branch 'feature/bower' + * Merge pull request #180 from tricknotes/modify-method-title + * Merge pull request #179 from tricknotes/highlight-code-example + * Modify method title to include argument name + * Fix to highlight code example + * bower: granular ignores + +1.7.1 / 2013-06-24 +================== + + * Merge branch 'feature/bower'. #175 + * bower: add json file + * build: browser + +1.7.0 / 2013-06-17 +================== + + * error: remove internal assertion error constructor + * core: [assertion-error] replace internal assertion error with dep + * deps: add chaijs/assertion-error@1.0.0 + * docs: fix typo in source file. #174 + * Merge pull request #174 from piecioshka/master + * typo + * Merge branch 'master' of github.com:chaijs/chai + * pkg: lock mocha/mocha-phantomjs versions (for now) + * Merge pull request #173 from chaijs/inspect-fix + * Fix `utils.inspect` with custom object-returning inspect()s. + * Merge pull request #171 from Bartvds/master + * replaced tabs with 2 spaces + * added assert.notOk() + * Merge pull request #169 from katsgeorgeek/topics/master + * Fix comparison objects. + +1.6.1 / 2013-06-05 +================== + + * Merge pull request #168 from katsgeorgeek/topics/master + * Add test for different RegExp flags. + * Add test for regexp comparison. + * Downgrade mocha version for fix running Phantom tests. + * Fix comparison equality of two regexps. + * Merge pull request #161 from brandonpayton/master + * Fix documented name for assert interfaces isDefined method + +1.6.0 / 2013-04-29 +================== + + * build: browser + * assert: [(not)include] throw on incompatible haystack. Closes #142 + * assert: [notInclude] add assert.notInclude. Closes #158 + * browser build + * makefile: force browser build on browser-test + * makefile: use component for browser build + * core: [assertions] remove extraneous comments + * Merge branch 'master' of github.com:chaijs/chai + * test: [assert] deep equal ordering + * Merge pull request #153 from NickHeiner/array-assertions + * giving members a no-flag assertion + * Code review comments - changing syntax + * Code review comments + * Adding members and memberEquals assertions for checking for subsets and set equality. Implements chaijs/chai#148. + * Merge pull request #140 from RubenVerborgh/function-prototype + * Restore the `call` and `apply` methods of Function when adding a chainable method. + * readme: 2013 + * notes: migration notes for deep equal changes + * test: for ever err() there must be a passing version + +1.5.0 / 2013-02-03 +================== + + * docs: add Release Notes for non-gitlog summary of changes. + * lib: update copyright to 2013 + * Merge branch 'refactor/travis' + * makefile: remove test-component for full test run + * pkg: script test now runs make test so travis will test browser + * browser: build + * tests: refactor some tests to support new objDisplay output + * test: [bootstrap] normalize boostrap across all test scenarios + * assertions: refactor some assertions to use objDisplay instead of inspect + * util: [objDisplay] normalize output of functions + * makefile: refactor for full build scenarios + * component: fix build bug where missing util:type file + * assertions: [throw] code cleanup + * Merge branch 'refactor/typeDetection' + * browser: build + * makefile: chai.js is .PHONY so it builds every time + * test: [expect] add arguments type detection test + * core/assertions: [type] (a/an) refactor to use type detection utility + * util: add cross-browser type detection utility + * Merge branch 'feature/component' + * browser: build + * component: add component.json file + * makefile: refactor for fine grain control of testing scenarios + * test: add mochaPhantomJS support and component test file + * deps: add component and mocha-phantomjs for browser testing + * ignore: update ignore files for component support + * travis: run for all branches + * Merge branch 'feature/showDiff' + * test: [Assertion] configruable showDiff flag. Closes #132 + * lib: [Assertion] add configurable showDiff flag. #132 + * Merge branch 'feature/saucelabs' + * Merge branch 'master' into feature/saucelabs + * browser: build + * support: add mocha cloud runner, client, and html test page + * test: [saucelabs] add auth placeholder + * deps: add mocha-cloud + * Merge pull request #136 from whatthejeff/message_fix + * Merge pull request #138 from timnew/master + * Fix issue #137, test message existence by using message!=null rather than using message + * Fixed backwards negation messages. + * Merge pull request #133 from RubenVerborgh/throw + * Functions throwing strings can reliably be tested. + * Merge pull request #131 from RubenVerborgh/proto + * Cache whether __proto__ is supported. + * Use __proto__ if available. + * Determine the property names to exclude beforehand. + * Merge pull request #126 from RubenVerborgh/eqls + * Add alias eqls for eql. + * Use inherited enumerable properties in deep equality comparison. + * Show inherited properties when inspecting an object. + * Add new getProperties and getEnumerableProperties utils. + * showDiff: force true for equal and eql + +1.4.2 / 2012-12-21 +================== + + * browser build: (object diff support when used with mocha) #106 + * test: [display] array test for mocha object diff + * browser: no longer need different AssertionError constructor + +1.4.1 / 2012-12-21 +================== + + * showDiff: force diff for equal and eql. #106 + * test: [expect] type null. #122 + * Merge pull request #115 from eshao/fix-assert-Throw + * FIX: assert.Throw checks error type/message + * TST: assert.Throw should check error type/message + +1.4.0 / 2012-11-29 +================== + + * pre-release browser build + * clean up index.js to not check for cov, revert package.json to use index.js + * convert tests to use new bootstrap + * refactor testing bootstrap + * use spaces (not tabs). Clean up #114 + * Merge pull request #114 from trantorLiu/master + * Add most() (alias: lte) and least() (alias: gte) to the API with new chainers "at" and "of". + * Change `main` to ./lib/chai. Fixes #28. + * Merge pull request #104 from connec/deep_equals_circular_references_ + * Merge pull request #109 from nnarhinen/patch-1 + * Check for 'actual' type + * Added support for circular references when checking deep (in)equality. + +1.3.0 / 2012-10-01 +================== + + * browser build w/ folio >= 0.3.4. Closes #99 + * add back buffer test for deep equal + * do not write flags to assertion.prototype + * remove buffer test from expect + * browser build + * improve documentation of custom error messages + * Merge branch 'master' of git://github.com/Liffft/chai into Liffft-master + * browser build + * improved buffer deep equal checking + * mocha is npm test command + * Cleaning up the js style… + * expect tests now include message pass-through + * packaging up browser-side changes… + * Increasing Throws error message verbosity + * Should syntax: piping message through + * Make globalShould test work in browser too. + * Add a setter for `Object.prototype.should`. Closes #86. + +1.2.0 / 2012-08-07 +================== + + * Merge branch 'feature/errmsg' + * browser build + * comment updates for utilities + * tweak objDislay to only kick in if object inspection is too long + * Merge branch 'master' into feature/errmsg + * add display sample for error message refactor + * first draft of error message refactor. #93 + * add `closeTo` assertion to `assert` interface. Closes #89. + * update folio build for better require.js handling. Closes #85 + * Merge pull request #92 from paulmillr/topics/add-dom-checks + * Add check for DOM objects. + * browser build + * Merge branch 'master' of github.com:chaijs/chai + * bug - getActual not defaulting to assertion subject + * Merge pull request #88 from pwnall/master + * Don't inspect() assertion arguments if the assertion passes. + +1.1.1 / 2012-07-09 +================== + + * improve commonjs support on browser build + * Merge pull request #83 from tkazec/equals + * Document .equals + * Add .equals as an alias of .equal + * remove unused browser prefix/suffix + * Merge branch 'feature/folio-build' + * browser build + * using folio to compile + * clean up makefile + * early folio 0.3.x support + +1.1.0 / 2012-06-26 +================== + + * browser build + * Disable "Assertion.includeStack is false" test in IE. + * Use `utils.getName` for all function inspections. + * Merge pull request #80 from kilianc/closeTo + * fixes #79 + * browser build + * expand docs to indicate change of subject for chaining. Closes #78 + * add `that` chain noop + * Merge branch 'bug/74' + * comments on how to property use `length` as chain. Closes #74 + * tests for length as chainable property. #74 + * add support for `length` as chainable prop/method. + * Merge branch 'bug/77' + * tests for getPathValue when working with nested arrays. Closes #77 + * add getPathValue support for nested arrays + * browser build + * fix bug for missing browser utils + * compile tool aware of new folder layout + * Merge branch 'refactor/1dot1' + * move core assertions to own file and refactor all using utils + * rearrange folder structure + +1.0.4 / 2012-06-03 +================== + + * Merge pull request #68 from fizker/itself + * Added itself chain. + * simplify error inspections for cross browser compatibility + * fix safari `addChainableMethod` errors. Closes #69 + +1.0.3 / 2012-05-27 +================== + + * Point Travis badge to the right place. + * Make error message for eql/deep.equal more clear. + * Fix .not.deep.equal. + * contributors list + +1.0.2 / 2012-05-26 +================== + + * Merge pull request #67 from chaijs/chaining-and-flags + * Browser build. + * Use `addChainableMethod` to get away from `__proto__` manipulation. + * New `addChainableMethod` utility. + * Replace `getAllFlags` with `transferFlags` utility. + * browser build + * test - get all flags + * utility - get all flags + * Add .mailmap to .npmignore. + * Add a .mailmap file to fix my name in shortlogs. + +1.0.1 / 2012-05-18 +================== + + * browser build + * Fixing "an" vs. "a" grammar in type assertions. + * Uniformize `assert` interface inline docs. + * Don't use `instanceof` for `assert.isArray`. + * Add `deep` flag for equality and property value. + * Merge pull request #64 from chaijs/assertion-docs + * Uniformize assertion inline docs. + * Add npm-debug.log to .gitignore. + * no reserved words as actuals. #62 + +1.0.0 / 2012-05-15 +================== + + * readme cleanup + * browser build + * utility comments + * removed docs + * update to package.json + * docs build + * comments / docs updates + * plugins app cleanup + * Merge pull request #61 from joliss/doc + * Fix and improve documentation of assert.equal and friends + * browser build + * doc checkpoint - texture + * Update chai-jquery link + * Use defined return value of Assertion extension functions + * Update utility docs + +1.0.0-rc3 / 2012-05-09 +================== + + * Merge branch 'feature/rc3' + * docs update + * browser build + * assert test conformity for minor refactor api + * assert minor refactor + * update util tests for new add/overwrite prop/method format + * added chai.Assertion.add/overwrite prop/method for plugin toolbox + * add/overwrite prop/method don't make assumptions about context + * doc test suite + * docs don't need coverage + * refactor all simple chains into one forEach loop, for clean documentation + * updated npm ignore + * remove old docs + * docs checkpoint - guide styled + * Merge pull request #59 from joliss/doc + * Document how to run the test suite + * don't need to rebuild docs to view + * dep update + * docs checkpoint - api section + * comment updates for docs + * new doc site checkpoint - plugin directory! + * Merge pull request #57 from kossnocorp/patch-1 + * Fix typo: devDependancies → devDependencies + * Using message flag in `getMessage` util instead of old `msg` property. + * Adding self to package.json contributors. + * `getMessage` shouldn't choke on null/omitted messages. + * `return this` not necessary in example. + * `return this` not necessary in example. + * Sinon–Chai has a dash + * updated plugins list for docs + +1.0.0-rc2 / 2012-05-06 +================== + + * Merge branch 'feature/test-cov' + * browser build + * missing assert tests for ownProperty + * appropriate assert equivalent for expect.to.have.property(key, val) + * reset AssertionError to include full stack + * test for plugin utilities + * overwrite Property and Method now ensure chain + * version notes in readme + +1.0.0-rc1 / 2012-05-04 +================== + + * browser build (rc1) + * assert match/notMatch tests + * assert interface - notMatch, ownProperty, notOwnProperty, ownPropertyVal, ownPropertyNotVal + * cleaner should interface export. + * added chai.Assertion.prototype._obj (getter) for quick access to object flag + * moved almostEqual / almostDeepEqual to stats plugin + * added mocha.opts + * Add test for `utils.addMethod` + * Fix a typo + * Add test for `utils.overwriteMethod` + * Fix a typo + * Browser build + * Add undefined assertion + * Add null assertion + * Fix an issue with `mocha --watch` + * travis no longer tests on node 0.4.x + * removing unnecissary carbon dep + * Merge branch 'feature/plugins-app' + * docs build + * templates for docs express app for plugin directory + * express app for plugin and static serving + * added web server deps + * Merge pull request #54 from josher19/master + * Remove old test.assert code + * Use util.inspect instead of inspect for deepAlmostEqual and almostEqual + * browser build + * Added almostEqual and deepAlmostEqual to assert test suite. + * bug - context determinants for utils + * dec=0 means rounding, so assert.deepAlmostEqual({pi: 3.1416}, {pi: 3}, 0) is true + * wrong travis link + * readme updates for version information + * travis tests 0.5.x branch as well + * [bug] util `addProperty` not correctly exporting + * read me version notes + * browser build 1.0.0alpha1 + * not using reserved words in internal assertions. #52 + * version tick + * clean up redundant tests + * Merge branch 'refs/heads/0.6.x' + * update version tag in package 1.0.0alpha1 + * browser build + * added utility tests to browser specs + * beginning utility testing + * updated utility comments + * utility - overwriteMethod + * utility - overwriteProperty + * utility - addMethod + * utility - addProperty + * missing ; + * contributors list update + * Merge branch 'refs/heads/0.6.x-docs' into 0.6.x + * Added guide link to docs. WIP + * Include/contain are now both properties and methods + * Add an alias annotation + * Remove usless function wrapper + * Fix a typo + * A/an are now both properties and methods + * [docs] new site homepage layout / color checkpoint + * Ignore IE-specific error properties. + * Fixing order of error message test. + * New cross-browser `getName` util. + * Fixing up `AssertionError` inheritance. + * backup docs + * Add doctypes + * [bug] was still using `constructor.name` in `throw` assertion + * [bug] flag Object.create(null) instead of new Object + * [test] browser build + * [refactor] all usage of Assertion.prototype.assert now uses template tags and flags + * [refactor] remove Assertion.prototype.inspect for testable object inspection + * [refactor] object to test is now stored in flag, with ssfi and custom message + * [bug] flag util - don't return on `set` + * [docs] comments for getMessage utility + * [feature] getMessage + * [feature] testing utilities + * [refactor] flag doesn't require `call` + * Make order of source files well-defined + * Added support for throw(errorInstance). + * Use a foolproof method of grabbing an error's name. + * Removed constructor.name check from throw. + * disabled stackTrack configuration tests until api is stable again + * first version of line displayed error for node js (unstable) + * refactor core Assertion to use flag utility for negation + * added flag utility + * tests for assert interface negatives. Closed #42 + * added assertion negatives that were missing. #42 + * Support for expected and actual parameters in assert-style error object + * chai as promised - readme + * Added assert.fail. Closes #40 + * better error message for assert.operator. Closes #39 + * [refactor] Assertion#property to use getPathValue property + * added getPathValue utility helper + * removed todo about browser build + * version notes + * version bumb 0.6.0 + * browser build + * [refactor] browser compile function to replace with `require('./error')' with 'require('./browser/error')' + * [feature] browser uses different error.js + * [refactor] error without chai.fail + * Assertion & interfaces use new utils helper export + * [refactor] primary export for new plugin util usage + * added util index.js helper + * added 2012 to copyright headers + * Added DeepEqual assertions + +0.5.3 / 2012-04-21 +================== + + * Merge branch 'refs/heads/jgonera-oldbrowsers' + * browser build + * fixed reserved names for old browsers in interface/assert + * fixed reserved names for old browsers in interface/should + * fixed: chai.js no longer contains fail() + * fixed reserved names for old browsers in Assertion + * Merge pull request #49 from joliss/build-order + * Make order of source files well-defined + * Merge pull request #43 from zzen/patch-1 + * Support for expected and actual parameters in assert-style error object + * chai as promised - readme + +0.5.2 / 2012-03-21 +================== + + * browser build + * Merge branch 'feature/assert-fail' + * Added assert.fail. Closes #40 + * Merge branch 'bug/operator-msg' + * better error message for assert.operator. Closes #39 + * version notes + +0.5.1 / 2012-03-14 +================== + + * chai.fail no longer exists + * Merge branch 'feature/assertdefined' + * Added asset#isDefined. Closes #37. + * dev docs update for Assertion#assert + +0.5.0 / 2012-03-07 +================== + + * [bug] on inspect of reg on n 0.4.12 + * Merge branch 'bug/33-throws' + * Merge pull request #35 from logicalparadox/empty-object + * browser build + * updated #throw docs + * Assertion#throw `should` tests updated + * Assertion#throw `expect` tests + * Should interface supports multiple throw parameters + * Update Assertion#throw to support strings and type checks. + * Add more tests for `empty` in `should`. + * Add more tests for `empty` in `expect`. + * Merge branch 'master' into empty-object + * don't switch act/exp + * Merge pull request #34 from logicalparadox/assert-operator + * Update the compiled verison. + * Add `assert.operator`. + * Notes on messages. #22 + * browser build + * have been test + * below tests + * Merge branch 'feature/actexp' + * browser build + * remove unnecessary fail export + * full support for actual/expected where relevant + * Assertion.assert support expected value + * clean up error + * Update the compiled version. + * Add object & sane arguments support to `Assertion#empty`. + +0.4.2 / 2012-02-28 +================== + + * fix for `process` not available in browser when used via browserify. Closes #28 + * Merge pull request #31 from joliss/doc + * Document that "should" works in browsers other than IE + * Merge pull request #30 from logicalparadox/assert-tests + * Update the browser version of chai. + * Update `assert.doesNotThrow` test in order to check the use case when type is a string. + * Add test for `assert.ifError`. + * Falsey -> falsy. + * Full coverage for `assert.throws` and `assert.doesNotThrow`. + * Add test for `assert.doesNotThrow`. + * Add test for `assert.throws`. + * Add test for `assert.length`. + * Add test for `assert.include`. + * Add test for `assert.isBoolean`. + * Fix the implementation of `assert.isNumber`. + * Add test for `assert.isNumber`. + * Add test for `assert.isString`. + * Add test for `assert.isArray`. + * Add test for `assert.isUndefined`. + * Add test for `assert.isNotNull`. + * Fix `assert.isNotNull` implementation. + * Fix `assert.isNull` implementation. + * Add test for `assert.isNull`. + * Add test for `assert.notDeepEqual`. + * Add test for `assert.deepEqual`. + * Add test for `assert.notStrictEqual`. + * Add test for `assert.strictEqual`. + * Add test for `assert.notEqual`. + +0.4.1 / 2012-02-26 +================== + + * Merge pull request #27 from logicalparadox/type-fix + * Update the browser version. + * Add should tests for type checks. + * Add function type check test. + * Add more type checks tests. + * Add test for `new Number` type check. + * Fix type of actual checks. + +0.4.0 / 2012-02-25 +================== + + * docs and readme for upcoming 0.4.0 + * docs generated + * putting coverage and tests for docs in docs/out/support + * make docs + * makefile copy necessary resources for tests in docs + * rename configuration test + * Merge pull request #21 from logicalparadox/close-to + * Update the browser version. + * Update `closeTo()` docs. + * Add `Assertion.closeTo()` method. + * Add `.closeTo()` should test. + * Add `.closeTo()` expect test. + * Merge pull request #20 from logicalparadox/satisfy + * Update the browser version. + * `..` -> `()` in `.satisfy()` should test. + * Update example for `.satisfy()`. + * Update the compiled browser version. + * Add `Assertion.satisfy()` method. + * Add `.satisfy()` should test. + * Add `.satisfy()` expect test. + * Merge pull request #19 from logicalparadox/respond-to + * Update the compiled browser version. + * Add `respondTo` Assertion. + * Add `respondTo` should test. + * Add `respondTo` expect test. + * Merge branch 'feature/coverage' + * mocha coverage support + * doc contributors + * README contributors + +0.3.4 / 2012-02-23 +================== + + * inline comment typos for #15 + * Merge branch 'refs/heads/jeffbski-configErrorStackCompat' + * includeStack documentation for all interfaces + * suite name more generic + * Update test to be compatible with browsers that do not support err.stack + * udpated compiled chai.js and added to browser tests + * Allow inclusion of stack trace for Assert error messages to be configurable + * docs sharing buttons + * sinon-chai link + * doc updates + * read me updates include plugins + +0.3.3 / 2012-02-12 +================== + + * Merge pull request #14 from jfirebaugh/configurable_properties + * Make Assertion.prototype properties configurable + +0.3.2 / 2012-02-10 +================== + + * codex version + * docs + * docs cleanup + +0.3.1 / 2012-02-07 +================== + + * node 0.4.x compat + +0.3.0 / 2012-02-07 +================== + + * Merge branch 'feature/03x' + * browser build + * remove html/json/headers testign + * regex error.message testing + * tests for using plugins + * Merge pull request #11 from domenic/master + * Make `chai.use` a no-op if the function has already been used. + +0.2.4 / 2012-02-02 +================== + + * added in past tense switch for `been` + +0.2.3 / 2012-02-01 +================== + + * try that again + +0.2.2 / 2012-02-01 +================== + + * added `been` (past of `be`) alias + +0.2.1 / 2012-01-29 +================== + + * added Throw, with a capital T, as an alias to `throw` (#7) + +0.2.0 / 2012-01-26 +================== + + * update gitignore for vim *.swp + * Merge branch 'feature/plugins' + * browser build + * interfaces now work with use + * simple .use function. See #9. + * readme notice on browser compat + +0.1.7 / 2012-01-25 +================== + + * added assert tests to browser test runner + * browser update + * `should` interface patch for primitives support in FF + * fix isObject() Thanks @milewise + * travis only on branch `master` + * add instanceof alias `instanceOf`. #6 + * some tests for assert module + +0.1.6 / 2012-01-02 +================== + + * commenting for assert interface + * updated codex dep + +0.1.5 / 2012-01-02 +================== + + * browser tests pass + * type in should.not.equal + * test for should (not) exist + * added should.exist and should.not.exist + * browser uses tdd + * convert tests to tdd + +0.1.4 / 2011-12-26 +================== + + * browser lib update for new assert interface compatiblitiy + * inspect typos + * added strict equal + negatives and ifError + * interface assert had doesNotThrow + * added should tests to browser + * new expect empty tests + * should test browser compat + * Fix typo for instanceof docs. Closes #3 [ci skip] + +0.1.3 / 2011-12-18 +================== + + * much cleaner reporting string on error. + +0.1.2 / 2011-12-18 +================== + + * [docs] for upcoming 0.1.2 + * browser version built with pre/suffix … all tests passing + * make / compile now use prefix/suffix correctly + * code clean + * prefix/suffix to wrap browser output to prevent conflicts with other `require` methods. + * Merge branch 'feature/should4xcompatibility' + * compile for browser tests.. all pass + * added header/status/html/json + * throw tests + * should.throw & should.not.throw shortcuts + * improved `throw` type detection and messaging + * contain is now `include` … keys modifier is now `contain` + * removed object() test + * removed #respondTo + * Merge branch 'bug/2' + * replaced __defineGetter__ with defineProperty for all uses + * [docs] change mp tracking code + * docs site updated with assert (TDD) interface + * updated doc comments for assert interface + +0.1.1 / 2011-12-16 +================== + + * docs ready for upcoming 0.1.1 + * readme image fixed [ci skip] + * more readme tweaks [ci skip] + * réadmet image fixed [ci skip] + * documentation + * codex locked in version 0.0.5 + * more comments to assertions for docs + * assertions fully commented, browser library updated + * adding codex as doc dependancy + * prepping for docs + * assertion component completely commented for documentation + * added exist test + * var expect outside of browser if check + * added keywords to package.json + +0.1.0 / 2011-12-15 +================== + + * failing on purpose successful .. back to normal + * testing travis failure + * assert#arguments getter + * readme typo + * updated README + * added travis and npmignore + * copyright notices … think i got them all + * moved expect interface to own file for consistency + * assert ui deepEqual + * browser tests expect (all working) + * browser version built + * chai.fail (should ui) + * expect tests browser compatible + * tests for should and expect (all pass) + * moved fail to primary export + * should compatibility testing + * within, greaterThan, object, keys, + * Aliases + * Assertion#property now correctly works with negate and undefined values + * error message language matches should + * Assertion#respondTo + * Assertion now uses inspect util + * git ignore node modules + * should is exported + * AssertionError __proto__ from Error.prototype + * add should interface for should.js compatibility + * moved eql to until folder and added inspect from (joyent/node) + * added mocha for testing + * browser build for current api + * multiple .property assertions + * added deep equal from node + +0.0.2 / 2011-12-07 +================== + + * cleaner output on error + * improved exists detection + * package remnant artifact + * empty deep equal + * test browser build + * assertion cleanup + * client compile script + * makefile + * most of the basic assertions + * allow no parameters to assertion error + * name change + * assertion error instance + * main exports: assert() & expect() + * initialize diff --git a/bower_components/chai/README.md b/bower_components/chai/README.md new file mode 100644 index 00000000..c61bfa8b --- /dev/null +++ b/bower_components/chai/README.md @@ -0,0 +1,83 @@ +[![Chai Documentation](http://chaijs.com/public/img/chai-logo.png)](http://chaijs.com) + +[![license:mit](https://img.shields.io/badge/license-mit-green.svg?style=flat-square)](#license)
    +[![tag:?](https://img.shields.io/github/tag/chaijs/chai.svg?style=flat-square)](https://github.com/chaijs/chai/releases) +[![build:?](https://img.shields.io/travis/chaijs/chai/master.svg?style=flat-square)](https://travis-ci.org/chaijs/chai) +[![coverage:?](https://img.shields.io/coveralls/chaijs/chai/master.svg?style=flat-square)](https://coveralls.io/r/chaijs/chai)
    +[![npm:](https://img.shields.io/npm/v/chai.svg?style=flat-square)](https://www.npmjs.com/packages/chai) +[![dependencies:?](https://img.shields.io/npm/dm/chai.svg?style=flat-square)](https://www.npmjs.com/packages/chai) +[![devDependencies:?](https://img.shields.io/david/chaijs/chai.svg?style=flat-square)](https://david-dm.org/chaijs/chai) + +[![Selenium Test Status](https://saucelabs.com/browser-matrix/chaijs.svg)](https://saucelabs.com/u/chaijs) + +[![Slack Status](https://chai-slack.herokuapp.com/badge.svg)]( https://chai-slack.herokuapp.com/) +[![Join the chat at https://gitter.im/chaijs/chai](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/chaijs/chai) + +Chai is a BDD / TDD assertion library for [node](http://nodejs.org) and the browser that +can be delightfully paired with any javascript testing framework. + +For more information or to download plugins, view the [documentation](http://chaijs.com). + +### Plugins + +Chai offers a robust Plugin architecture for extending Chai's assertions and interfaces. + +- Need a plugin? View the [official plugin list](http://chaijs.com/plugins). +- Have a plugin and want it listed? Open a Pull Request at [chaijs/chai-docs:plugin.js](https://github.com/chaijs/chai-docs/blob/master/plugins.js#L1-L12). +- Want to build a plugin? Read the [plugin api documentation](http://chaijs.com/guide/plugins/). + +### Related Projects + +- [chaijs / assertion-error](https://github.com/chaijs/assertion-error): Custom `Error` constructor thrown upon an assertion failing. +- [chaijs / deep-eql](https://github.com/chaijs/deep-eql): Improved deep equality testing for Node.js and the browser. +- [chaijs / type-detect](https://github.com/chaijs/type-detect): Improved typeof detection for node.js and the browser. + +### Contributing + +Thank you very much for considering to contribute! + +Here are a few issues other contributors frequently ran into when opening pull requests: + +- Please do not commit changes to the `chai.js` build. We do it once per release. +- Before pushing your commits, please make sure you [rebase](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md#pull-requests) them. + +We also strongly encourage you to read our detailed [contribution guidelines](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md). + +### Contributors + +Please see the full +[Contributors Graph](https://github.com/chaijs/chai/graphs/contributors) for our +list of contributors. + +### Core Contributors + +Feel free to reach out to any of the core contributors with your questions or +concerns. We will do our best to respond in a timely manner. + +[![Jake Luer](https://avatars3.githubusercontent.com/u/58988?v=3&s=50)](https://github.com/logicalparadox) +[![Veselin Todorov](https://avatars3.githubusercontent.com/u/330048?v=3&s=50)](https://github.com/vesln) +[![Keith Cirkel](https://avatars3.githubusercontent.com/u/118266?v=3&s=50)](https://github.com/keithamus) + +## License + +(The MIT License) + +Copyright (c) 2011-2015 Jake Luer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/bower_components/chai/ReleaseNotes.md b/bower_components/chai/ReleaseNotes.md new file mode 100644 index 00000000..2a80d5ce --- /dev/null +++ b/bower_components/chai/ReleaseNotes.md @@ -0,0 +1,737 @@ +# Release Notes + +## Note + +As of 3.0.0, the ReleaseNotes.md file has been deprecated. [Please refer to the release notes available on Github](https://github.com/chaijs/chai/releases). Or +[the release notes on the chaijs.com website](https://chaijs.com/releases). + +--- + +## 2.3.0 / 2015-04-26 + +Added `ownPropertyDescriptor` assertion: + +```js +expect('test').to.have.ownPropertyDescriptor('length'); +expect('test').to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 4 }); +expect('test').not.to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 3 }); +expect('test').ownPropertyDescriptor('length').to.have.property('enumerable', false); +expect('test').ownPropertyDescriptor('length').to.have.keys('value'); +``` + +### Community Contributions + +#### Code Features & Fixes + + * [#408](https://github.com/chaijs/chai/pull/408) Add `ownPropertyDescriptor` + assertion. + By [@ljharb](https://github.com/ljharb) + * [#422](https://github.com/chaijs/chai/pull/422) Improve ownPropertyDescriptor + tests. + By [@ljharb](https://github.com/ljharb) + +#### Documentation fixes + + * [#417](https://github.com/chaijs/chai/pull/417) Fix documentation typo + By [@astorije](https://github.com/astorije) + * [#423](https://github.com/chaijs/chai/pull/423) Fix inconsistency in docs. + By [@ehntoo](https://github.com/ehntoo) + + +## 2.2.0 / 2015-03-26 + +Deep property strings can now be escaped using `\\` - for example: + +```js +var deepCss = { '.link': { '[target]': 42 }}; +expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42) +``` + +### Community Contributions + +#### Code Features & Fixes + + * [#402](https://github.com/chaijs/chai/pull/402) Allow escaping of deep + property keys. + By [@umireon](https://github.com/umireon) + +#### Documentation fixes + + * [#405](https://github.com/chaijs/chai/pull/405) Tweak documentation around + deep property escaping. + By [@keithamus](https://github.com/keithamus) + + +## 2.1.2 / 2015-03-15 + +A minor bug fix. No new features. + +### Community Contributions + +#### Code Features & Fixes + + * [#395](https://github.com/chaijs/chai/pull/395) Fix eval-related bugs with + assert.operator ([#386](https://github.com/chaijs/chai/pull/386)). + By [@cjqed](https://github.com/cjqed) + +## 2.1.1 / 2015-03-04 + +Two minor bugfixes. No new features. + +### Community Contributions + +#### Code Features & Fixes + + * [#385](https://github.com/chaijs/chai/pull/385) Fix a bug (also described in + [#387](https://github.com/chaijs/chai/pull/385)) where `deep.property` would not work with single + key names. By [@eldritch-fossicker](https://github.com/eldritch-fossicker) + * [#379](https://github.com/chaijs/chai/pull/379) Fix bug where tools which overwrite + primitive prototypes, such as Babel or core-js would fail. + By [@dcneiner](https://github.com/dcneiner) + +#### Documentation fixes + + * [#382](https://github.com/chaijs/chai/pull/382) Add doc for showDiff argument in assert. + By [@astorije](https://github.com/astorije) + * [#383](https://github.com/chaijs/chai/pull/383) Improve wording for truncateTreshold docs + By [@gurdiga](https://github.com/gurdiga) + * [#381](https://github.com/chaijs/chai/pull/381) Improve wording for assert.empty docs + By [@astorije](https://github.com/astorije) + +## 2.1.0 / 2015-02-23 + +Small release; fixes an issue where the Chai lib was incorrectly reporting the +version number. + +Adds new `should.fail()` and `expect.fail()` methods, which are convinience +methods to throw Assertion Errors. + +### Community Contributions + +#### Code Features & Fixes + + * [#356](https://github.com/chaijs/chai/pull/356) Add should.fail(), expect.fail(). By [@Soviut](https://github.com/Soviut) + * [#374](https://github.com/chaijs/chai/pull/374) Increment version. By [@jmm](https://github.com/jmm) + +## 2.0.0 / 2015-02-09 + +Unfortunately with 1.10.0 - compatibility broke with older versions because of +the `addChainableNoop`. This change has been reverted. + +Any plugins using `addChainableNoop` should cease to do so. + +Any developers wishing for this behaviour can use [dirty-chai](https://www.npmjs.com/package/dirty-chai) +by [@joshperry](https://github.com/joshperry) + +### Community Contributions + +#### Code Features & Fixes + + * [#361](https://github.com/chaijs/chai/pull/361) `.keys()` now accepts Objects, extracting keys from them. By [@gregglind](https://github.com/gregglind) + * [#359](https://github.com/chaijs/chai/pull/359) `.keys()` no longer mutates passed arrays. By [@gregglind](https://github.com/gregglind) + * [#349](https://github.com/chaijs/chai/pull/349) Add a new chainable keyword - `.which`. By [@toastynerd](https://github.com/toastynerd) + * [#333](https://github.com/chaijs/chai/pull/333) Add `.change`, `.increase` and `.decrease` assertions. By [@cmpolis](https://github.com/cmpolis) + * [#335](https://github.com/chaijs/chai/pull/335) `chai.util` is now exposed [@DingoEatingFuzz](https://github.com/DingoEatingFuzz) + * [#328](https://github.com/chaijs/chai/pull/328) Add `.includes` and `.contains` aliases (for `.include` and `.contain`). By [@lo1tuma](https://github.com/lo1tuma) + * [#313](https://github.com/chaijs/chai/pull/313) Add `.any.keys()` and `.all.keys()` qualifiers. By [@cjqed](https://github.com/cjqed) + * [#312](https://github.com/chaijs/chai/pull/312) Add `assert.sameDeepMembers()`. By [@cjqed](https://github.com/cjqed) + * [#311](https://github.com/chaijs/chai/pull/311) Add `assert.isAbove()` and `assert.isBelow()`. By [@cjqed](https://github.com/cjqed) + * [#308](https://github.com/chaijs/chai/pull/308) `property` and `deep.property` now pass if a value is set to `undefined`. By [@prodatakey](https://github.com/prodatakey) + * [#309](https://github.com/chaijs/chai/pull/309) optimize deep equal in Arrays. By [@ericdouglas](https://github.com/ericdouglas) + * [#306](https://github.com/chaijs/chai/pull/306) revert #297 - allowing lint-friendly tests. By [@keithamus](https://github.com/keithamus) + +#### Documentation fixes + + * [#357](https://github.com/chaijs/chai/pull/357) Copyright year updated in docs. By [@danilovaz](https://github.com/danilovaz) + * [#325](https://github.com/chaijs/chai/pull/325) Fix documentation for overwriteChainableMethod. By [@chasenlehara](https://github.com/chasenlehara) + * [#334](https://github.com/chaijs/chai/pull/334) Typo fix. By [@hurrymaplelad](https://github.com/hurrymaplelad) + * [#317](https://github.com/chaijs/chai/pull/317) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) + * [#318](https://github.com/chaijs/chai/pull/318) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) + * [#316](https://github.com/chaijs/chai/pull/316) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) + + +## 1.10.0 / 2014-11-10 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required +- **Plugin Developers:** + - Review `addChainableNoop` notes below. +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Noop Function for Terminating Assertion Properties + +The following assertions can now also be used in the function-call form: + +* ok +* true +* false +* null +* undefined +* exist +* empty +* arguments +* Arguments + +The above list of assertions are property getters that assert immediately on +access. Because of that, they were written to be used by terminating the assertion +chain with a property access. + +```js +expect(true).to.be.true; +foo.should.be.ok; +``` + +This syntax is definitely aesthetically pleasing but, if you are linting your +test code, your linter will complain with an error something like "Expected an +assignment or function call and instead saw an expression." Since the linter +doesn't know about the property getter it assumes this line has no side-effects, +and throws a warning in case you made a mistake. + +Squelching these errors is not a good solution as test code is getting to be +just as important as, if not more than, production code. Catching syntactical +errors in tests using static analysis is a great tool to help make sure that your +tests are well-defined and free of typos. + +A better option was to provide a function-call form for these assertions so that +the code's intent is more clear and the linters stop complaining about something +looking off. This form is added in addition to the existing property access form +and does not impact existing test code. + +```js +expect(true).to.be.true(); +foo.should.be.ok(); +``` + +These forms can also be mixed in any way, these are all functionally identical: + +```js +expect(true).to.be.true.and.not.false(); +expect(true).to.be.true().and.not.false; +expect(true).to.be.true.and.not.false; +``` + +#### Plugin Authors + +If you would like to provide this function-call form for your terminating assertion +properties, there is a new function to register these types of asserts. Instead +of using `addProperty` to register terminating assertions, simply use `addChainableNoop` +instead; the arguments to both are identical. The latter will make the assertion +available in both the attribute and function-call forms and should have no impact +on existing users of your plugin. + +### Community Contributions + +- [#297](https://github.com/chaijs/chai/pull/297) Allow writing lint-friendly tests. [@joshperry](https://github.com/joshperry) +- [#298](https://github.com/chaijs/chai/pull/298) Add check for logging `-0`. [@dasilvacontin](https://github.com/dasilvacontin) +- [#300](https://github.com/chaijs/chai/pull/300) Fix #299: the test is defining global variables [@julienw](https://github.com/julienw) + +Thank you to all who took time to contribute! + +## 1.9.2 / 2014-09-29 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required +- **Plugin Developers:** + - No changes required +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Community Contributions + +- [#264](https://github.com/chaijs/chai/pull/264) Show diff for keys assertions [@cjthompson](https://github.com/cjthompson) +- [#267](https://github.com/chaijs/chai/pull/267) Use SVG badges [@shinnn](https://github.com/shinnn) +- [#268](https://github.com/chaijs/chai/pull/268) Allow messages to be functions (sinon-compat) [@charlierudolph](https://github.com/charlierudolph) +- [#269](https://github.com/chaijs/chai/pull/269) Remove unused argument for #lengthOf [@charlierudolph](https://github.com/charlierudolph) +- [#275](https://github.com/chaijs/chai/pull/275) Rewrite pretty-printing HTML elements to prevent throwing internal errors [@DrRataplan](https://github.com/DrRataplan) +- [#277](https://github.com/chaijs/chai/pull/277) Fix assert documentation for #sameMembers [@charlierudolph](https://github.com/charlierudolph) +- [#279](https://github.com/chaijs/chai/pull/279) closeTo should check value's type before assertion [@mohayonao](https://github.com/mohayonao) +- [#289](https://github.com/chaijs/chai/pull/289) satisfy is called twice [@charlierudolph](https://github.com/charlierudolph) +- [#292](https://github.com/chaijs/chai/pull/292) resolve conflicts with node-webkit and global usage [@boneskull](https://github.com/boneskull) + +Thank you to all who took time to contribute! + +## 1.9.1 / 2014-03-19 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - Migrate configuration options to new interface. (see notes) +- **Plugin Developers:** + - No changes required +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Configuration + +There have been requests for changes and additions to the configuration mechanisms +and their impact in the Chai architecture. As such, we have decoupled the +configuration from the `Assertion` constructor. This not only allows for centralized +configuration, but will allow us to shift the responsibility from the `Assertion` +constructor to the `assert` interface in future releases. + +These changes have been implemented in a non-breaking way, but a depretiation +warning will be presented to users until they migrate. The old config method will +be removed in either `v1.11.0` or `v2.0.0`, whichever comes first. + +#### Quick Migration + +```js +// change this: +chai.Assertion.includeStack = true; +chai.Assertion.showDiff = false; + +// ... to this: +chai.config.includeStack = true; +chai.config.showDiff = false; +``` + +#### All Config Options + +##### config.includeStack + +- **@param** _{Boolean}_ +- **@default** `false` + +User configurable property, influences whether stack trace is included in +Assertion error message. Default of `false` suppresses stack trace in the error +message. + +##### config.showDiff + +- **@param** _{Boolean}_ +- **@default** `true` + +User configurable property, influences whether or not the `showDiff` flag +should be included in the thrown AssertionErrors. `false` will always be `false`; +`true` will be true when the assertion has requested a diff be shown. + +##### config.truncateThreshold **(NEW)** + +- **@param** _{Number}_ +- **@default** `40` + +User configurable property, sets length threshold for actual and expected values +in assertion errors. If this threshold is exceeded, the value is truncated. + +Set it to zero if you want to disable truncating altogether. + +```js +chai.config.truncateThreshold = 0; // disable truncating +``` + +### Community Contributions + +- [#228](https://github.com/chaijs/chai/pull/228) Deep equality check for memebers. [@duncanbeevers](https://github.com/duncanbeevers) +- [#247](https://github.com/chaijs/chai/pull/247) Proofreading. [@didorellano](https://github.com/didoarellano) +- [#244](https://github.com/chaijs/chai/pull/244) Fix `contain`/`include` 1.9.0 regression. [@leider](https://github.com/leider) +- [#233](https://github.com/chaijs/chai/pull/233) Improvements to `ssfi` for `assert` interface. [@refack](https://github.com/refack) +- [#251](https://github.com/chaijs/chai/pull/251) New config option: object display threshold. [@romario333](https://github.com/romario333) + +Thank you to all who took time to contribute! + +### Other Bug Fixes + +- [#183](https://github.com/chaijs/chai/issues/183) Allow `undefined` for actual. (internal api) +- Update Karam(+plugins)/Istanbul to most recent versions. + +## 1.9.0 / 2014-01-29 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required +- **Plugin Developers:** + - Review [#219](https://github.com/chaijs/chai/pull/219). +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Community Contributions + +- [#202](https://github.com/chaijs/chai/pull/201) Improve error message for .throw(). [@andreineculau](https://github.com/andreineculau) +- [#217](https://github.com/chaijs/chai/pull/217) Chai tests can be run with `--watch`. [@demands](https://github.com/demands) +- [#219](https://github.com/chaijs/chai/pull/219) Add overwriteChainableMethod utility. [@demands](https://github.com/demands) +- [#224](https://github.com/chaijs/chai/pull/224) Return error on throw method to chain on error properties. [@vbardales](https://github.com/vbardales) +- [#226](https://github.com/chaijs/chai/pull/226) Add `has` to language chains. [@duncanbeevers](https://github.com/duncanbeevers) +- [#230](https://github.com/chaijs/chai/pull/230) Support `{a:1,b:2}.should.include({a:1})` [@jkroso](https://github.com/jkroso) +- [#231](https://github.com/chaijs/chai/pull/231) Update Copyright notices to 2014 [@duncanbeevers](https://github.com/duncanbeevers) +- [#232](https://github.com/chaijs/chai/pull/232) Avoid error instantiation if possible on assert.throws. [@laconbass](https://github.com/laconbass) + +Thank you to all who took time to contribute! + +### Other Bug Fixes + +- [#225](https://github.com/chaijs/chai/pull/225) Improved AMD wrapper provided by upstream `component(1)`. +- [#185](https://github.com/chaijs/chai/issues/185) `assert.throws()` returns thrown error for further assertions. +- [#237](https://github.com/chaijs/chai/pull/237) Remove coveralls/jscoverage, include istanbul coverage report in travis test. +- Update Karma and Sauce runner versions for consistent CI results. No more karma@canary. + +## 1.8.1 / 2013-10-10 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - Refresh `node_modules` folder for updated dependencies. +- **Plugin Developers:** + - No changes required +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Browserify + +This is a small patch that updates the dependency tree so browserify users can install +chai. (Remove conditional requires) + +## 1.8.0 / 2013-09-18 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - See `deep.equal` notes. +- **Plugin Developers:** + - No changes required +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Deep Equals + +This version of Chai focused on a overhaul to the deep equal utility. The code for this +tool has been removed from the core lib and can now be found at: +[chai / deep-eql](https://github.com/chaijs/deep-eql). As stated in previous releases, +this is part of a larger initiative to provide transparency, independent testing, and coverage for +some of the more complicated internal tools. + +For the most part `.deep.equal` will behave the same as it has. However, in order to provide a +consistent ruleset across all types being tested, the following changes have been made and _might_ +require changes to your tests. + +**1.** Strict equality for non-traversable nodes according to [egal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). + +_Previously:_ Non-traversable equal via `===`. + +```js +expect(NaN).to.deep.equal(NaN); +expect(-0).to.not.deep.equal(+0); +``` + +**2.** Arguments are not Arrays (and all types must be equal): + +_Previously:_ Some crazy nonsense that led to empty arrays deep equaling empty objects deep equaling dates. + +```js +expect(arguments).to.not.deep.equal([]); +expect(Array.prototype.slice.call(arguments)).to.deep.equal([]); +``` + +- [#156](https://github.com/chaijs/chai/issues/156) Empty object is eql to empty array +- [#192](https://github.com/chaijs/chai/issues/192) empty object is eql to a Date object +- [#194](https://github.com/chaijs/chai/issues/194) refactor deep-equal utility + +### CI and Browser Testing + +Chai now runs the browser CI suite using [Karma](http://karma-runner.github.io/) directed at +[SauceLabs](https://saucelabs.com/). This means we get to know where our browser support stands... +and we get a cool badge: + +[![Selenium Test Status](https://saucelabs.com/browser-matrix/logicalparadox.svg)](https://saucelabs.com/u/logicalparadox) + +Look for the list of browsers/versions to expand over the coming releases. + +- [#195](https://github.com/chaijs/chai/issues/195) karma test framework + +## 1.7.2 / 2013-06-27 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required. +- **Plugin Developers:** + - No changes required +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Coverage Reporting + +Coverage reporting has always been available for core-developers but the data has never been published +for our end users. In our ongoing effort to improve accountability this data will now be published via +the [coveralls.io](https://coveralls.io/) service. A badge has been added to the README and the full report +can be viewed online at the [chai coveralls project](https://coveralls.io/r/chaijs/chai). Furthermore, PRs +will receive automated messages indicating how their PR impacts test coverage. This service is tied to TravisCI. + +### Other Fixes + +- [#175](https://github.com/chaijs/chai/issues/175) Add `bower.json`. (Fix ignore all) + +## 1.7.1 / 2013-06-24 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required. +- **Plugin Developers:** + - No changes required +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### Official Bower Support + +Support has been added for the Bower Package Manager ([bower.io])(http://bower.io/). Though +Chai could be installed via Bower in the past, this update adds official support via the `bower.json` +specification file. + +- [#175](https://github.com/chaijs/chai/issues/175) Add `bower.json`. + +## 1.7.0 / 2013-06-17 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required. +- **Plugin Developers:** + - Review AssertionError update notice. +- **Core Contributors:** + - Refresh `node_modules` folder for updated dependencies. + +### AssertionError Update Notice + +Chai now uses [chaijs/assertion-error](https://github.com/chaijs/assertion-error) instead an internal +constructor. This will allow for further iteration/experimentation of the AssertionError constructor +independant of Chai. Future plans include stack parsing for callsite support. + +This update constructor has a different constructor param signature that conforms more with the standard +`Error` object. If your plugin throws and `AssertionError` directly you will need to update your plugin +with the new signature. + +```js +var AssertionError = require('chai').AssertionError; + +/** + * previous + * + * @param {Object} options + */ + +throw new AssertionError({ + message: 'An assertion error occurred' + , actual: actual + , expect: expect + , startStackFunction: arguments.callee + , showStack: true +}); + +/** + * new + * + * @param {String} message + * @param {Object} options + * @param {Function} start stack function + */ + +throw new AssertionError('An assertion error occurred', { + actual: actual + , expect: expect + , showStack: true +}, arguments.callee); + +// other signatures +throw new AssertionError('An assertion error occurred'); +throw new AssertionError('An assertion error occurred', null, arguments.callee); +``` + +#### External Dependencies + +This is the first non-developement dependency for Chai. As Chai continues to evolve we will begin adding +more; the next will likely be improved type detection and deep equality. With Chai's userbase continually growing +there is an higher need for accountability and documentation. External dependencies will allow us to iterate and +test on features independent from our interfaces. + +Note: The browser packaged version `chai.js` will ALWAYS contain all dependencies needed to run Chai. + +### Community Contributions + +- [#169](https://github.com/chaijs/chai/pull/169) Fix deep equal comparison for Date/Regexp types. [@katsgeorgeek](https://github.com/katsgeorgeek) +- [#171](https://github.com/chaijs/chai/pull/171) Add `assert.notOk()`. [@Bartvds](https://github.com/Bartvds) +- [#173](https://github.com/chaijs/chai/pull/173) Fix `inspect` utility. [@domenic](https://github.com/domenic) + +Thank you to all who took the time to contribute! + +## 1.6.1 / 2013-06-05 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required. +- **Plugin Developers:** + - No changes required. +- **Core Contributors:** + - Refresh `node_modules` folder for updated developement dependencies. + +### Deep Equality + +Regular Expressions are now tested as part of all deep equality assertions. In previous versions +they silently passed for all scenarios. Thanks to [@katsgeorgeek](https://github.com/katsgeorgeek) for the contribution. + +### Community Contributions + +- [#161](https://github.com/chaijs/chai/pull/161) Fix documented name for assert interface's isDefined method. [@brandonpayton](https://github.com/brandonpayton) +- [#168](https://github.com/chaijs/chai/pull/168) Fix comparison equality of two regexps for when using deep equality. [@katsgeorgeek](https://github.com/katsgeorgeek) + +Thank you to all who took the time to contribute! + +### Additional Notes + +- Mocha has been locked at version `1.8.x` to ensure `mocha-phantomjs` compatibility. + +## 1.6.0 / 2013-04-29 + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - No changes required. +- **Plugin Developers:** + - No changes required. +- **Core Contributors:** + - Refresh `node_modules` folder for updated developement dependencies. + +### New Assertions + +#### Array Members Inclusion + +Asserts that the target is a superset of `set`, or that the target and `set` have the same members. +Order is not taken into account. Thanks to [@NickHeiner](https://github.com/NickHeiner) for the contribution. + +```js +// (expect/should) full set +expect([4, 2]).to.have.members([2, 4]); +expect([5, 2]).to.not.have.members([5, 2, 1]); + +// (expect/should) inclusion +expect([1, 2, 3]).to.include.members([3, 2]); +expect([1, 2, 3]).to.not.include.members([3, 2, 8]); + +// (assert) full set +assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members'); + +// (assert) inclusion +assert.includeMembers([ 1, 2, 3 ], [ 2, 1 ], 'include members'); + +``` + +#### Non-inclusion for Assert Interface + +Most `assert` functions have a negative version, like `instanceOf()` has a corresponding `notInstaceOf()`. +However `include()` did not have a corresponding `notInclude()`. This has been added. + +```js +assert.notInclude([ 1, 2, 3 ], 8); +assert.notInclude('foobar', 'baz'); +``` + +### Community Contributions + +- [#140](https://github.com/chaijs/chai/pull/140) Restore `call`/`apply` methods for plugin interface. [@RubenVerborgh](https://github.com/RubenVerborgh) +- [#148](https://github.com/chaijs/chai/issues/148)/[#153](https://github.com/chaijs/chai/pull/153) Add `members` and `include.members` assertions. [#NickHeiner](https://github.com/NickHeiner) + +Thank you to all who took time to contribute! + +### Other Bug Fixes + +- [#142](https://github.com/chaijs/chai/issues/142) `assert#include` will no longer silently pass on wrong-type haystack. +- [#158](https://github.com/chaijs/chai/issues/158) `assert#notInclude` has been added. +- Travis-CI now tests Node.js `v0.10.x`. Support for `v0.6.x` has been removed. `v0.8.x` is still tested as before. + +## 1.5.0 / 2013-02-03 + +### Migration Requirements + +The following changes are required if you are upgrading from the previous version: + +- **Users:** + - _Update [2013-02-04]:_ Some users may notice a small subset of deep equality assertions will no longer pass. This is the result of + [#120](https://github.com/chaijs/chai/issues/120), an improvement to our deep equality algorithm. Users will need to revise their assertions + to be more granular should this occur. Further information: [#139](https://github.com/chaijs/chai/issues/139). +- **Plugin Developers:** + - No changes required. +- **Core Contributors:** + - Refresh `node_modules` folder for updated developement dependencies. + +### Community Contributions + +- [#126](https://github.com/chaijs/chai/pull/126): Add `eqls` alias for `eql`. [@RubenVerborgh](https://github.com/RubenVerborgh) +- [#127](https://github.com/chaijs/chai/issues/127): Performance refactor for chainable methods. [@RubenVerborgh](https://github.com/RubenVerborgh) +- [#133](https://github.com/chaijs/chai/pull/133): Assertion `.throw` support for primitives. [@RubenVerborgh](https://github.com/RubenVerborgh) +- [#137](https://github.com/chaijs/chai/issues/137): Assertion `.throw` support for empty messages. [@timnew](https://github.com/timnew) +- [#136](https://github.com/chaijs/chai/pull/136): Fix backward negation messages when using `.above()` and `.below()`. [@whatthejeff](https://github.com/whatthejeff) + +Thank you to all who took time to contribute! + +### Other Bug Fixes + +- Improve type detection of `.a()`/`.an()` to work in cross-browser scenarios. +- [#116](https://github.com/chaijs/chai/issues/116): `.throw()` has cleaner display of errors when WebKit browsers. +- [#120](https://github.com/chaijs/chai/issues/120): `.eql()` now works to compare dom nodes in browsers. + + +### Usage Updates + +#### For Users + +**1. Component Support:** Chai now included the proper configuration to be installed as a +[component](https://github.com/component/component). Component users are encouraged to consult +[chaijs.com](http://chaijs.com) for the latest version number as using the master branch +does not gaurantee stability. + +```js +// relevant component.json + devDependencies: { + "chaijs/chai": "1.5.0" + } +``` + +Alternatively, bleeding-edge is available: + + $ component install chaijs/chai + +**2. Configurable showDiff:** Some test runners (such as [mocha](http://visionmedia.github.com/mocha/)) +include support for showing the diff of strings and objects when an equality error occurs. Chai has +already included support for this, however some users may not prefer this display behavior. To revert to +no diff display, the following configuration is available: + +```js +chai.Assertion.showDiff = false; // diff output disabled +chai.Assertion.showDiff = true; // default, diff output enabled +``` + +#### For Plugin Developers + +**1. New Utility - type**: The new utility `.type()` is available as a better implementation of `typeof` +that can be used cross-browser. It handles the inconsistencies of Array, `null`, and `undefined` detection. + +- **@param** _{Mixed}_ object to detect type of +- **@return** _{String}_ object type + +```js +chai.use(function (c, utils) { + // some examples + utils.type({}); // 'object' + utils.type(null); // `null' + utils.type(undefined); // `undefined` + utils.type([]); // `array` +}); +``` + +#### For Core Contributors + +**1. Browser Testing**: Browser testing of the `./chai.js` file is now available in the command line +via PhantomJS. `make test` and Travis-CI will now also rebuild and test `./chai.js`. Consequently, all +pull requests will now be browser tested in this way. + +_Note: Contributors opening pull requests should still NOT include the browser build._ + +**2. SauceLabs Testing**: Early SauceLab support has been enabled with the file `./support/mocha-cloud.js`. +Those interested in trying it out should create a free [Open Sauce](https://saucelabs.com/signup/plan) account +and include their credentials in `./test/auth/sauce.json`. diff --git a/bower_components/chai/bower.json b/bower_components/chai/bower.json new file mode 100644 index 00000000..af2ee029 --- /dev/null +++ b/bower_components/chai/bower.json @@ -0,0 +1,26 @@ +{ + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "license": "MIT", + "keywords": [ + "test", + "assertion", + "assert", + "testing", + "chai" + ], + "main": "chai.js", + "ignore": [ + "build", + "components", + "lib", + "node_modules", + "support", + "test", + "index.js", + "Makefile", + ".*" + ], + "dependencies": {}, + "devDependencies": {} +} diff --git a/bower_components/chai/chai.js b/bower_components/chai/chai.js new file mode 100644 index 00000000..1d30296a --- /dev/null +++ b/bower_components/chai/chai.js @@ -0,0 +1,6142 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.chai = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o + * MIT Licensed + */ + +var used = [] + , exports = module.exports = {}; + +/*! + * Chai version + */ + +exports.version = '3.5.0'; + +/*! + * Assertion Error + */ + +exports.AssertionError = require('assertion-error'); + +/*! + * Utils for plugins (not exported) + */ + +var util = require('./chai/utils'); + +/** + * # .use(function) + * + * Provides a way to extend the internals of Chai + * + * @param {Function} + * @returns {this} for chaining + * @api public + */ + +exports.use = function (fn) { + if (!~used.indexOf(fn)) { + fn(this, util); + used.push(fn); + } + + return this; +}; + +/*! + * Utility Functions + */ + +exports.util = util; + +/*! + * Configuration + */ + +var config = require('./chai/config'); +exports.config = config; + +/*! + * Primary `Assertion` prototype + */ + +var assertion = require('./chai/assertion'); +exports.use(assertion); + +/*! + * Core Assertions + */ + +var core = require('./chai/core/assertions'); +exports.use(core); + +/*! + * Expect interface + */ + +var expect = require('./chai/interface/expect'); +exports.use(expect); + +/*! + * Should interface + */ + +var should = require('./chai/interface/should'); +exports.use(should); + +/*! + * Assert interface + */ + +var assert = require('./chai/interface/assert'); +exports.use(assert); + +},{"./chai/assertion":3,"./chai/config":4,"./chai/core/assertions":5,"./chai/interface/assert":6,"./chai/interface/expect":7,"./chai/interface/should":8,"./chai/utils":22,"assertion-error":30}],3:[function(require,module,exports){ +/*! + * chai + * http://chaijs.com + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ + +var config = require('./config'); + +module.exports = function (_chai, util) { + /*! + * Module dependencies. + */ + + var AssertionError = _chai.AssertionError + , flag = util.flag; + + /*! + * Module export. + */ + + _chai.Assertion = Assertion; + + /*! + * Assertion Constructor + * + * Creates object for chaining. + * + * @api private + */ + + function Assertion (obj, msg, stack) { + flag(this, 'ssfi', stack || arguments.callee); + flag(this, 'object', obj); + flag(this, 'message', msg); + } + + Object.defineProperty(Assertion, 'includeStack', { + get: function() { + console.warn('Assertion.includeStack is deprecated, use chai.config.includeStack instead.'); + return config.includeStack; + }, + set: function(value) { + console.warn('Assertion.includeStack is deprecated, use chai.config.includeStack instead.'); + config.includeStack = value; + } + }); + + Object.defineProperty(Assertion, 'showDiff', { + get: function() { + console.warn('Assertion.showDiff is deprecated, use chai.config.showDiff instead.'); + return config.showDiff; + }, + set: function(value) { + console.warn('Assertion.showDiff is deprecated, use chai.config.showDiff instead.'); + config.showDiff = value; + } + }); + + Assertion.addProperty = function (name, fn) { + util.addProperty(this.prototype, name, fn); + }; + + Assertion.addMethod = function (name, fn) { + util.addMethod(this.prototype, name, fn); + }; + + Assertion.addChainableMethod = function (name, fn, chainingBehavior) { + util.addChainableMethod(this.prototype, name, fn, chainingBehavior); + }; + + Assertion.overwriteProperty = function (name, fn) { + util.overwriteProperty(this.prototype, name, fn); + }; + + Assertion.overwriteMethod = function (name, fn) { + util.overwriteMethod(this.prototype, name, fn); + }; + + Assertion.overwriteChainableMethod = function (name, fn, chainingBehavior) { + util.overwriteChainableMethod(this.prototype, name, fn, chainingBehavior); + }; + + /** + * ### .assert(expression, message, negateMessage, expected, actual, showDiff) + * + * Executes an expression and check expectations. Throws AssertionError for reporting if test doesn't pass. + * + * @name assert + * @param {Philosophical} expression to be tested + * @param {String|Function} message or function that returns message to display if expression fails + * @param {String|Function} negatedMessage or function that returns negatedMessage to display if negated expression fails + * @param {Mixed} expected value (remember to check for negation) + * @param {Mixed} actual (optional) will default to `this.obj` + * @param {Boolean} showDiff (optional) when set to `true`, assert will display a diff in addition to the message if expression fails + * @api private + */ + + Assertion.prototype.assert = function (expr, msg, negateMsg, expected, _actual, showDiff) { + var ok = util.test(this, arguments); + if (true !== showDiff) showDiff = false; + if (true !== config.showDiff) showDiff = false; + + if (!ok) { + var msg = util.getMessage(this, arguments) + , actual = util.getActual(this, arguments); + throw new AssertionError(msg, { + actual: actual + , expected: expected + , showDiff: showDiff + }, (config.includeStack) ? this.assert : flag(this, 'ssfi')); + } + }; + + /*! + * ### ._obj + * + * Quick reference to stored `actual` value for plugin developers. + * + * @api private + */ + + Object.defineProperty(Assertion.prototype, '_obj', + { get: function () { + return flag(this, 'object'); + } + , set: function (val) { + flag(this, 'object', val); + } + }); +}; + +},{"./config":4}],4:[function(require,module,exports){ +module.exports = { + + /** + * ### config.includeStack + * + * User configurable property, influences whether stack trace + * is included in Assertion error message. Default of false + * suppresses stack trace in the error message. + * + * chai.config.includeStack = true; // enable stack on error + * + * @param {Boolean} + * @api public + */ + + includeStack: false, + + /** + * ### config.showDiff + * + * User configurable property, influences whether or not + * the `showDiff` flag should be included in the thrown + * AssertionErrors. `false` will always be `false`; `true` + * will be true when the assertion has requested a diff + * be shown. + * + * @param {Boolean} + * @api public + */ + + showDiff: true, + + /** + * ### config.truncateThreshold + * + * User configurable property, sets length threshold for actual and + * expected values in assertion errors. If this threshold is exceeded, for + * example for large data structures, the value is replaced with something + * like `[ Array(3) ]` or `{ Object (prop1, prop2) }`. + * + * Set it to zero if you want to disable truncating altogether. + * + * This is especially userful when doing assertions on arrays: having this + * set to a reasonable large value makes the failure messages readily + * inspectable. + * + * chai.config.truncateThreshold = 0; // disable truncating + * + * @param {Number} + * @api public + */ + + truncateThreshold: 40 + +}; + +},{}],5:[function(require,module,exports){ +/*! + * chai + * http://chaijs.com + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ + +module.exports = function (chai, _) { + var Assertion = chai.Assertion + , toString = Object.prototype.toString + , flag = _.flag; + + /** + * ### Language Chains + * + * The following are provided as chainable getters to + * improve the readability of your assertions. They + * do not provide testing capabilities unless they + * have been overwritten by a plugin. + * + * **Chains** + * + * - to + * - be + * - been + * - is + * - that + * - which + * - and + * - has + * - have + * - with + * - at + * - of + * - same + * + * @name language chains + * @namespace BDD + * @api public + */ + + [ 'to', 'be', 'been' + , 'is', 'and', 'has', 'have' + , 'with', 'that', 'which', 'at' + , 'of', 'same' ].forEach(function (chain) { + Assertion.addProperty(chain, function () { + return this; + }); + }); + + /** + * ### .not + * + * Negates any of assertions following in the chain. + * + * expect(foo).to.not.equal('bar'); + * expect(goodFn).to.not.throw(Error); + * expect({ foo: 'baz' }).to.have.property('foo') + * .and.not.equal('bar'); + * + * @name not + * @namespace BDD + * @api public + */ + + Assertion.addProperty('not', function () { + flag(this, 'negate', true); + }); + + /** + * ### .deep + * + * Sets the `deep` flag, later used by the `equal` and + * `property` assertions. + * + * expect(foo).to.deep.equal({ bar: 'baz' }); + * expect({ foo: { bar: { baz: 'quux' } } }) + * .to.have.deep.property('foo.bar.baz', 'quux'); + * + * `.deep.property` special characters can be escaped + * by adding two slashes before the `.` or `[]`. + * + * var deepCss = { '.link': { '[target]': 42 }}; + * expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42); + * + * @name deep + * @namespace BDD + * @api public + */ + + Assertion.addProperty('deep', function () { + flag(this, 'deep', true); + }); + + /** + * ### .any + * + * Sets the `any` flag, (opposite of the `all` flag) + * later used in the `keys` assertion. + * + * expect(foo).to.have.any.keys('bar', 'baz'); + * + * @name any + * @namespace BDD + * @api public + */ + + Assertion.addProperty('any', function () { + flag(this, 'any', true); + flag(this, 'all', false) + }); + + + /** + * ### .all + * + * Sets the `all` flag (opposite of the `any` flag) + * later used by the `keys` assertion. + * + * expect(foo).to.have.all.keys('bar', 'baz'); + * + * @name all + * @namespace BDD + * @api public + */ + + Assertion.addProperty('all', function () { + flag(this, 'all', true); + flag(this, 'any', false); + }); + + /** + * ### .a(type) + * + * The `a` and `an` assertions are aliases that can be + * used either as language chains or to assert a value's + * type. + * + * // typeof + * expect('test').to.be.a('string'); + * expect({ foo: 'bar' }).to.be.an('object'); + * expect(null).to.be.a('null'); + * expect(undefined).to.be.an('undefined'); + * expect(new Error).to.be.an('error'); + * expect(new Promise).to.be.a('promise'); + * expect(new Float32Array()).to.be.a('float32array'); + * expect(Symbol()).to.be.a('symbol'); + * + * // es6 overrides + * expect({[Symbol.toStringTag]:()=>'foo'}).to.be.a('foo'); + * + * // language chain + * expect(foo).to.be.an.instanceof(Foo); + * + * @name a + * @alias an + * @param {String} type + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function an (type, msg) { + if (msg) flag(this, 'message', msg); + type = type.toLowerCase(); + var obj = flag(this, 'object') + , article = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(type.charAt(0)) ? 'an ' : 'a '; + + this.assert( + type === _.type(obj) + , 'expected #{this} to be ' + article + type + , 'expected #{this} not to be ' + article + type + ); + } + + Assertion.addChainableMethod('an', an); + Assertion.addChainableMethod('a', an); + + /** + * ### .include(value) + * + * The `include` and `contain` assertions can be used as either property + * based language chains or as methods to assert the inclusion of an object + * in an array or a substring in a string. When used as language chains, + * they toggle the `contains` flag for the `keys` assertion. + * + * expect([1,2,3]).to.include(2); + * expect('foobar').to.contain('foo'); + * expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo'); + * + * @name include + * @alias contain + * @alias includes + * @alias contains + * @param {Object|String|Number} obj + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function includeChainingBehavior () { + flag(this, 'contains', true); + } + + function include (val, msg) { + _.expectTypes(this, ['array', 'object', 'string']); + + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + var expected = false; + + if (_.type(obj) === 'array' && _.type(val) === 'object') { + for (var i in obj) { + if (_.eql(obj[i], val)) { + expected = true; + break; + } + } + } else if (_.type(val) === 'object') { + if (!flag(this, 'negate')) { + for (var k in val) new Assertion(obj).property(k, val[k]); + return; + } + var subset = {}; + for (var k in val) subset[k] = obj[k]; + expected = _.eql(subset, val); + } else { + expected = (obj != undefined) && ~obj.indexOf(val); + } + this.assert( + expected + , 'expected #{this} to include ' + _.inspect(val) + , 'expected #{this} to not include ' + _.inspect(val)); + } + + Assertion.addChainableMethod('include', include, includeChainingBehavior); + Assertion.addChainableMethod('contain', include, includeChainingBehavior); + Assertion.addChainableMethod('contains', include, includeChainingBehavior); + Assertion.addChainableMethod('includes', include, includeChainingBehavior); + + /** + * ### .ok + * + * Asserts that the target is truthy. + * + * expect('everything').to.be.ok; + * expect(1).to.be.ok; + * expect(false).to.not.be.ok; + * expect(undefined).to.not.be.ok; + * expect(null).to.not.be.ok; + * + * @name ok + * @namespace BDD + * @api public + */ + + Assertion.addProperty('ok', function () { + this.assert( + flag(this, 'object') + , 'expected #{this} to be truthy' + , 'expected #{this} to be falsy'); + }); + + /** + * ### .true + * + * Asserts that the target is `true`. + * + * expect(true).to.be.true; + * expect(1).to.not.be.true; + * + * @name true + * @namespace BDD + * @api public + */ + + Assertion.addProperty('true', function () { + this.assert( + true === flag(this, 'object') + , 'expected #{this} to be true' + , 'expected #{this} to be false' + , this.negate ? false : true + ); + }); + + /** + * ### .false + * + * Asserts that the target is `false`. + * + * expect(false).to.be.false; + * expect(0).to.not.be.false; + * + * @name false + * @namespace BDD + * @api public + */ + + Assertion.addProperty('false', function () { + this.assert( + false === flag(this, 'object') + , 'expected #{this} to be false' + , 'expected #{this} to be true' + , this.negate ? true : false + ); + }); + + /** + * ### .null + * + * Asserts that the target is `null`. + * + * expect(null).to.be.null; + * expect(undefined).to.not.be.null; + * + * @name null + * @namespace BDD + * @api public + */ + + Assertion.addProperty('null', function () { + this.assert( + null === flag(this, 'object') + , 'expected #{this} to be null' + , 'expected #{this} not to be null' + ); + }); + + /** + * ### .undefined + * + * Asserts that the target is `undefined`. + * + * expect(undefined).to.be.undefined; + * expect(null).to.not.be.undefined; + * + * @name undefined + * @namespace BDD + * @api public + */ + + Assertion.addProperty('undefined', function () { + this.assert( + undefined === flag(this, 'object') + , 'expected #{this} to be undefined' + , 'expected #{this} not to be undefined' + ); + }); + + /** + * ### .NaN + * Asserts that the target is `NaN`. + * + * expect('foo').to.be.NaN; + * expect(4).not.to.be.NaN; + * + * @name NaN + * @namespace BDD + * @api public + */ + + Assertion.addProperty('NaN', function () { + this.assert( + isNaN(flag(this, 'object')) + , 'expected #{this} to be NaN' + , 'expected #{this} not to be NaN' + ); + }); + + /** + * ### .exist + * + * Asserts that the target is neither `null` nor `undefined`. + * + * var foo = 'hi' + * , bar = null + * , baz; + * + * expect(foo).to.exist; + * expect(bar).to.not.exist; + * expect(baz).to.not.exist; + * + * @name exist + * @namespace BDD + * @api public + */ + + Assertion.addProperty('exist', function () { + this.assert( + null != flag(this, 'object') + , 'expected #{this} to exist' + , 'expected #{this} to not exist' + ); + }); + + + /** + * ### .empty + * + * Asserts that the target's length is `0`. For arrays and strings, it checks + * the `length` property. For objects, it gets the count of + * enumerable keys. + * + * expect([]).to.be.empty; + * expect('').to.be.empty; + * expect({}).to.be.empty; + * + * @name empty + * @namespace BDD + * @api public + */ + + Assertion.addProperty('empty', function () { + var obj = flag(this, 'object') + , expected = obj; + + if (Array.isArray(obj) || 'string' === typeof object) { + expected = obj.length; + } else if (typeof obj === 'object') { + expected = Object.keys(obj).length; + } + + this.assert( + !expected + , 'expected #{this} to be empty' + , 'expected #{this} not to be empty' + ); + }); + + /** + * ### .arguments + * + * Asserts that the target is an arguments object. + * + * function test () { + * expect(arguments).to.be.arguments; + * } + * + * @name arguments + * @alias Arguments + * @namespace BDD + * @api public + */ + + function checkArguments () { + var obj = flag(this, 'object') + , type = Object.prototype.toString.call(obj); + this.assert( + '[object Arguments]' === type + , 'expected #{this} to be arguments but got ' + type + , 'expected #{this} to not be arguments' + ); + } + + Assertion.addProperty('arguments', checkArguments); + Assertion.addProperty('Arguments', checkArguments); + + /** + * ### .equal(value) + * + * Asserts that the target is strictly equal (`===`) to `value`. + * Alternately, if the `deep` flag is set, asserts that + * the target is deeply equal to `value`. + * + * expect('hello').to.equal('hello'); + * expect(42).to.equal(42); + * expect(1).to.not.equal(true); + * expect({ foo: 'bar' }).to.not.equal({ foo: 'bar' }); + * expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' }); + * + * @name equal + * @alias equals + * @alias eq + * @alias deep.equal + * @param {Mixed} value + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertEqual (val, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + if (flag(this, 'deep')) { + return this.eql(val); + } else { + this.assert( + val === obj + , 'expected #{this} to equal #{exp}' + , 'expected #{this} to not equal #{exp}' + , val + , this._obj + , true + ); + } + } + + Assertion.addMethod('equal', assertEqual); + Assertion.addMethod('equals', assertEqual); + Assertion.addMethod('eq', assertEqual); + + /** + * ### .eql(value) + * + * Asserts that the target is deeply equal to `value`. + * + * expect({ foo: 'bar' }).to.eql({ foo: 'bar' }); + * expect([ 1, 2, 3 ]).to.eql([ 1, 2, 3 ]); + * + * @name eql + * @alias eqls + * @param {Mixed} value + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertEql(obj, msg) { + if (msg) flag(this, 'message', msg); + this.assert( + _.eql(obj, flag(this, 'object')) + , 'expected #{this} to deeply equal #{exp}' + , 'expected #{this} to not deeply equal #{exp}' + , obj + , this._obj + , true + ); + } + + Assertion.addMethod('eql', assertEql); + Assertion.addMethod('eqls', assertEql); + + /** + * ### .above(value) + * + * Asserts that the target is greater than `value`. + * + * expect(10).to.be.above(5); + * + * Can also be used in conjunction with `length` to + * assert a minimum length. The benefit being a + * more informative error message than if the length + * was supplied directly. + * + * expect('foo').to.have.length.above(2); + * expect([ 1, 2, 3 ]).to.have.length.above(2); + * + * @name above + * @alias gt + * @alias greaterThan + * @param {Number} value + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertAbove (n, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + if (flag(this, 'doLength')) { + new Assertion(obj, msg).to.have.property('length'); + var len = obj.length; + this.assert( + len > n + , 'expected #{this} to have a length above #{exp} but got #{act}' + , 'expected #{this} to not have a length above #{exp}' + , n + , len + ); + } else { + this.assert( + obj > n + , 'expected #{this} to be above ' + n + , 'expected #{this} to be at most ' + n + ); + } + } + + Assertion.addMethod('above', assertAbove); + Assertion.addMethod('gt', assertAbove); + Assertion.addMethod('greaterThan', assertAbove); + + /** + * ### .least(value) + * + * Asserts that the target is greater than or equal to `value`. + * + * expect(10).to.be.at.least(10); + * + * Can also be used in conjunction with `length` to + * assert a minimum length. The benefit being a + * more informative error message than if the length + * was supplied directly. + * + * expect('foo').to.have.length.of.at.least(2); + * expect([ 1, 2, 3 ]).to.have.length.of.at.least(3); + * + * @name least + * @alias gte + * @param {Number} value + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertLeast (n, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + if (flag(this, 'doLength')) { + new Assertion(obj, msg).to.have.property('length'); + var len = obj.length; + this.assert( + len >= n + , 'expected #{this} to have a length at least #{exp} but got #{act}' + , 'expected #{this} to have a length below #{exp}' + , n + , len + ); + } else { + this.assert( + obj >= n + , 'expected #{this} to be at least ' + n + , 'expected #{this} to be below ' + n + ); + } + } + + Assertion.addMethod('least', assertLeast); + Assertion.addMethod('gte', assertLeast); + + /** + * ### .below(value) + * + * Asserts that the target is less than `value`. + * + * expect(5).to.be.below(10); + * + * Can also be used in conjunction with `length` to + * assert a maximum length. The benefit being a + * more informative error message than if the length + * was supplied directly. + * + * expect('foo').to.have.length.below(4); + * expect([ 1, 2, 3 ]).to.have.length.below(4); + * + * @name below + * @alias lt + * @alias lessThan + * @param {Number} value + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertBelow (n, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + if (flag(this, 'doLength')) { + new Assertion(obj, msg).to.have.property('length'); + var len = obj.length; + this.assert( + len < n + , 'expected #{this} to have a length below #{exp} but got #{act}' + , 'expected #{this} to not have a length below #{exp}' + , n + , len + ); + } else { + this.assert( + obj < n + , 'expected #{this} to be below ' + n + , 'expected #{this} to be at least ' + n + ); + } + } + + Assertion.addMethod('below', assertBelow); + Assertion.addMethod('lt', assertBelow); + Assertion.addMethod('lessThan', assertBelow); + + /** + * ### .most(value) + * + * Asserts that the target is less than or equal to `value`. + * + * expect(5).to.be.at.most(5); + * + * Can also be used in conjunction with `length` to + * assert a maximum length. The benefit being a + * more informative error message than if the length + * was supplied directly. + * + * expect('foo').to.have.length.of.at.most(4); + * expect([ 1, 2, 3 ]).to.have.length.of.at.most(3); + * + * @name most + * @alias lte + * @param {Number} value + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertMost (n, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + if (flag(this, 'doLength')) { + new Assertion(obj, msg).to.have.property('length'); + var len = obj.length; + this.assert( + len <= n + , 'expected #{this} to have a length at most #{exp} but got #{act}' + , 'expected #{this} to have a length above #{exp}' + , n + , len + ); + } else { + this.assert( + obj <= n + , 'expected #{this} to be at most ' + n + , 'expected #{this} to be above ' + n + ); + } + } + + Assertion.addMethod('most', assertMost); + Assertion.addMethod('lte', assertMost); + + /** + * ### .within(start, finish) + * + * Asserts that the target is within a range. + * + * expect(7).to.be.within(5,10); + * + * Can also be used in conjunction with `length` to + * assert a length range. The benefit being a + * more informative error message than if the length + * was supplied directly. + * + * expect('foo').to.have.length.within(2,4); + * expect([ 1, 2, 3 ]).to.have.length.within(2,4); + * + * @name within + * @param {Number} start lowerbound inclusive + * @param {Number} finish upperbound inclusive + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + Assertion.addMethod('within', function (start, finish, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object') + , range = start + '..' + finish; + if (flag(this, 'doLength')) { + new Assertion(obj, msg).to.have.property('length'); + var len = obj.length; + this.assert( + len >= start && len <= finish + , 'expected #{this} to have a length within ' + range + , 'expected #{this} to not have a length within ' + range + ); + } else { + this.assert( + obj >= start && obj <= finish + , 'expected #{this} to be within ' + range + , 'expected #{this} to not be within ' + range + ); + } + }); + + /** + * ### .instanceof(constructor) + * + * Asserts that the target is an instance of `constructor`. + * + * var Tea = function (name) { this.name = name; } + * , Chai = new Tea('chai'); + * + * expect(Chai).to.be.an.instanceof(Tea); + * expect([ 1, 2, 3 ]).to.be.instanceof(Array); + * + * @name instanceof + * @param {Constructor} constructor + * @param {String} message _optional_ + * @alias instanceOf + * @namespace BDD + * @api public + */ + + function assertInstanceOf (constructor, msg) { + if (msg) flag(this, 'message', msg); + var name = _.getName(constructor); + this.assert( + flag(this, 'object') instanceof constructor + , 'expected #{this} to be an instance of ' + name + , 'expected #{this} to not be an instance of ' + name + ); + }; + + Assertion.addMethod('instanceof', assertInstanceOf); + Assertion.addMethod('instanceOf', assertInstanceOf); + + /** + * ### .property(name, [value]) + * + * Asserts that the target has a property `name`, optionally asserting that + * the value of that property is strictly equal to `value`. + * If the `deep` flag is set, you can use dot- and bracket-notation for deep + * references into objects and arrays. + * + * // simple referencing + * var obj = { foo: 'bar' }; + * expect(obj).to.have.property('foo'); + * expect(obj).to.have.property('foo', 'bar'); + * + * // deep referencing + * var deepObj = { + * green: { tea: 'matcha' } + * , teas: [ 'chai', 'matcha', { tea: 'konacha' } ] + * }; + * + * expect(deepObj).to.have.deep.property('green.tea', 'matcha'); + * expect(deepObj).to.have.deep.property('teas[1]', 'matcha'); + * expect(deepObj).to.have.deep.property('teas[2].tea', 'konacha'); + * + * You can also use an array as the starting point of a `deep.property` + * assertion, or traverse nested arrays. + * + * var arr = [ + * [ 'chai', 'matcha', 'konacha' ] + * , [ { tea: 'chai' } + * , { tea: 'matcha' } + * , { tea: 'konacha' } ] + * ]; + * + * expect(arr).to.have.deep.property('[0][1]', 'matcha'); + * expect(arr).to.have.deep.property('[1][2].tea', 'konacha'); + * + * Furthermore, `property` changes the subject of the assertion + * to be the value of that property from the original object. This + * permits for further chainable assertions on that property. + * + * expect(obj).to.have.property('foo') + * .that.is.a('string'); + * expect(deepObj).to.have.property('green') + * .that.is.an('object') + * .that.deep.equals({ tea: 'matcha' }); + * expect(deepObj).to.have.property('teas') + * .that.is.an('array') + * .with.deep.property('[2]') + * .that.deep.equals({ tea: 'konacha' }); + * + * Note that dots and bracket in `name` must be backslash-escaped when + * the `deep` flag is set, while they must NOT be escaped when the `deep` + * flag is not set. + * + * // simple referencing + * var css = { '.link[target]': 42 }; + * expect(css).to.have.property('.link[target]', 42); + * + * // deep referencing + * var deepCss = { '.link': { '[target]': 42 }}; + * expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42); + * + * @name property + * @alias deep.property + * @param {String} name + * @param {Mixed} value (optional) + * @param {String} message _optional_ + * @returns value of property for chaining + * @namespace BDD + * @api public + */ + + Assertion.addMethod('property', function (name, val, msg) { + if (msg) flag(this, 'message', msg); + + var isDeep = !!flag(this, 'deep') + , descriptor = isDeep ? 'deep property ' : 'property ' + , negate = flag(this, 'negate') + , obj = flag(this, 'object') + , pathInfo = isDeep ? _.getPathInfo(name, obj) : null + , hasProperty = isDeep + ? pathInfo.exists + : _.hasProperty(name, obj) + , value = isDeep + ? pathInfo.value + : obj[name]; + + if (negate && arguments.length > 1) { + if (undefined === value) { + msg = (msg != null) ? msg + ': ' : ''; + throw new Error(msg + _.inspect(obj) + ' has no ' + descriptor + _.inspect(name)); + } + } else { + this.assert( + hasProperty + , 'expected #{this} to have a ' + descriptor + _.inspect(name) + , 'expected #{this} to not have ' + descriptor + _.inspect(name)); + } + + if (arguments.length > 1) { + this.assert( + val === value + , 'expected #{this} to have a ' + descriptor + _.inspect(name) + ' of #{exp}, but got #{act}' + , 'expected #{this} to not have a ' + descriptor + _.inspect(name) + ' of #{act}' + , val + , value + ); + } + + flag(this, 'object', value); + }); + + + /** + * ### .ownProperty(name) + * + * Asserts that the target has an own property `name`. + * + * expect('test').to.have.ownProperty('length'); + * + * @name ownProperty + * @alias haveOwnProperty + * @param {String} name + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertOwnProperty (name, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + this.assert( + obj.hasOwnProperty(name) + , 'expected #{this} to have own property ' + _.inspect(name) + , 'expected #{this} to not have own property ' + _.inspect(name) + ); + } + + Assertion.addMethod('ownProperty', assertOwnProperty); + Assertion.addMethod('haveOwnProperty', assertOwnProperty); + + /** + * ### .ownPropertyDescriptor(name[, descriptor[, message]]) + * + * Asserts that the target has an own property descriptor `name`, that optionally matches `descriptor`. + * + * expect('test').to.have.ownPropertyDescriptor('length'); + * expect('test').to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 4 }); + * expect('test').not.to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 3 }); + * expect('test').ownPropertyDescriptor('length').to.have.property('enumerable', false); + * expect('test').ownPropertyDescriptor('length').to.have.keys('value'); + * + * @name ownPropertyDescriptor + * @alias haveOwnPropertyDescriptor + * @param {String} name + * @param {Object} descriptor _optional_ + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertOwnPropertyDescriptor (name, descriptor, msg) { + if (typeof descriptor === 'string') { + msg = descriptor; + descriptor = null; + } + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + var actualDescriptor = Object.getOwnPropertyDescriptor(Object(obj), name); + if (actualDescriptor && descriptor) { + this.assert( + _.eql(descriptor, actualDescriptor) + , 'expected the own property descriptor for ' + _.inspect(name) + ' on #{this} to match ' + _.inspect(descriptor) + ', got ' + _.inspect(actualDescriptor) + , 'expected the own property descriptor for ' + _.inspect(name) + ' on #{this} to not match ' + _.inspect(descriptor) + , descriptor + , actualDescriptor + , true + ); + } else { + this.assert( + actualDescriptor + , 'expected #{this} to have an own property descriptor for ' + _.inspect(name) + , 'expected #{this} to not have an own property descriptor for ' + _.inspect(name) + ); + } + flag(this, 'object', actualDescriptor); + } + + Assertion.addMethod('ownPropertyDescriptor', assertOwnPropertyDescriptor); + Assertion.addMethod('haveOwnPropertyDescriptor', assertOwnPropertyDescriptor); + + /** + * ### .length + * + * Sets the `doLength` flag later used as a chain precursor to a value + * comparison for the `length` property. + * + * expect('foo').to.have.length.above(2); + * expect([ 1, 2, 3 ]).to.have.length.above(2); + * expect('foo').to.have.length.below(4); + * expect([ 1, 2, 3 ]).to.have.length.below(4); + * expect('foo').to.have.length.within(2,4); + * expect([ 1, 2, 3 ]).to.have.length.within(2,4); + * + * *Deprecation notice:* Using `length` as an assertion will be deprecated + * in version 2.4.0 and removed in 3.0.0. Code using the old style of + * asserting for `length` property value using `length(value)` should be + * switched to use `lengthOf(value)` instead. + * + * @name length + * @namespace BDD + * @api public + */ + + /** + * ### .lengthOf(value[, message]) + * + * Asserts that the target's `length` property has + * the expected value. + * + * expect([ 1, 2, 3]).to.have.lengthOf(3); + * expect('foobar').to.have.lengthOf(6); + * + * @name lengthOf + * @param {Number} length + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertLengthChain () { + flag(this, 'doLength', true); + } + + function assertLength (n, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + new Assertion(obj, msg).to.have.property('length'); + var len = obj.length; + + this.assert( + len == n + , 'expected #{this} to have a length of #{exp} but got #{act}' + , 'expected #{this} to not have a length of #{act}' + , n + , len + ); + } + + Assertion.addChainableMethod('length', assertLength, assertLengthChain); + Assertion.addMethod('lengthOf', assertLength); + + /** + * ### .match(regexp) + * + * Asserts that the target matches a regular expression. + * + * expect('foobar').to.match(/^foo/); + * + * @name match + * @alias matches + * @param {RegExp} RegularExpression + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + function assertMatch(re, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + this.assert( + re.exec(obj) + , 'expected #{this} to match ' + re + , 'expected #{this} not to match ' + re + ); + } + + Assertion.addMethod('match', assertMatch); + Assertion.addMethod('matches', assertMatch); + + /** + * ### .string(string) + * + * Asserts that the string target contains another string. + * + * expect('foobar').to.have.string('bar'); + * + * @name string + * @param {String} string + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + Assertion.addMethod('string', function (str, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + new Assertion(obj, msg).is.a('string'); + + this.assert( + ~obj.indexOf(str) + , 'expected #{this} to contain ' + _.inspect(str) + , 'expected #{this} to not contain ' + _.inspect(str) + ); + }); + + + /** + * ### .keys(key1, [key2], [...]) + * + * Asserts that the target contains any or all of the passed-in keys. + * Use in combination with `any`, `all`, `contains`, or `have` will affect + * what will pass. + * + * When used in conjunction with `any`, at least one key that is passed + * in must exist in the target object. This is regardless whether or not + * the `have` or `contain` qualifiers are used. Note, either `any` or `all` + * should be used in the assertion. If neither are used, the assertion is + * defaulted to `all`. + * + * When both `all` and `contain` are used, the target object must have at + * least all of the passed-in keys but may have more keys not listed. + * + * When both `all` and `have` are used, the target object must both contain + * all of the passed-in keys AND the number of keys in the target object must + * match the number of keys passed in (in other words, a target object must + * have all and only all of the passed-in keys). + * + * expect({ foo: 1, bar: 2 }).to.have.any.keys('foo', 'baz'); + * expect({ foo: 1, bar: 2 }).to.have.any.keys('foo'); + * expect({ foo: 1, bar: 2 }).to.contain.any.keys('bar', 'baz'); + * expect({ foo: 1, bar: 2 }).to.contain.any.keys(['foo']); + * expect({ foo: 1, bar: 2 }).to.contain.any.keys({'foo': 6}); + * expect({ foo: 1, bar: 2 }).to.have.all.keys(['bar', 'foo']); + * expect({ foo: 1, bar: 2 }).to.have.all.keys({'bar': 6, 'foo': 7}); + * expect({ foo: 1, bar: 2, baz: 3 }).to.contain.all.keys(['bar', 'foo']); + * expect({ foo: 1, bar: 2, baz: 3 }).to.contain.all.keys({'bar': 6}); + * + * + * @name keys + * @alias key + * @param {...String|Array|Object} keys + * @namespace BDD + * @api public + */ + + function assertKeys (keys) { + var obj = flag(this, 'object') + , str + , ok = true + , mixedArgsMsg = 'keys must be given single argument of Array|Object|String, or multiple String arguments'; + + switch (_.type(keys)) { + case "array": + if (arguments.length > 1) throw (new Error(mixedArgsMsg)); + break; + case "object": + if (arguments.length > 1) throw (new Error(mixedArgsMsg)); + keys = Object.keys(keys); + break; + default: + keys = Array.prototype.slice.call(arguments); + } + + if (!keys.length) throw new Error('keys required'); + + var actual = Object.keys(obj) + , expected = keys + , len = keys.length + , any = flag(this, 'any') + , all = flag(this, 'all'); + + if (!any && !all) { + all = true; + } + + // Has any + if (any) { + var intersection = expected.filter(function(key) { + return ~actual.indexOf(key); + }); + ok = intersection.length > 0; + } + + // Has all + if (all) { + ok = keys.every(function(key){ + return ~actual.indexOf(key); + }); + if (!flag(this, 'negate') && !flag(this, 'contains')) { + ok = ok && keys.length == actual.length; + } + } + + // Key string + if (len > 1) { + keys = keys.map(function(key){ + return _.inspect(key); + }); + var last = keys.pop(); + if (all) { + str = keys.join(', ') + ', and ' + last; + } + if (any) { + str = keys.join(', ') + ', or ' + last; + } + } else { + str = _.inspect(keys[0]); + } + + // Form + str = (len > 1 ? 'keys ' : 'key ') + str; + + // Have / include + str = (flag(this, 'contains') ? 'contain ' : 'have ') + str; + + // Assertion + this.assert( + ok + , 'expected #{this} to ' + str + , 'expected #{this} to not ' + str + , expected.slice(0).sort() + , actual.sort() + , true + ); + } + + Assertion.addMethod('keys', assertKeys); + Assertion.addMethod('key', assertKeys); + + /** + * ### .throw(constructor) + * + * Asserts that the function target will throw a specific error, or specific type of error + * (as determined using `instanceof`), optionally with a RegExp or string inclusion test + * for the error's message. + * + * var err = new ReferenceError('This is a bad function.'); + * var fn = function () { throw err; } + * expect(fn).to.throw(ReferenceError); + * expect(fn).to.throw(Error); + * expect(fn).to.throw(/bad function/); + * expect(fn).to.not.throw('good function'); + * expect(fn).to.throw(ReferenceError, /bad function/); + * expect(fn).to.throw(err); + * + * Please note that when a throw expectation is negated, it will check each + * parameter independently, starting with error constructor type. The appropriate way + * to check for the existence of a type of error but for a message that does not match + * is to use `and`. + * + * expect(fn).to.throw(ReferenceError) + * .and.not.throw(/good function/); + * + * @name throw + * @alias throws + * @alias Throw + * @param {ErrorConstructor} constructor + * @param {String|RegExp} expected error message + * @param {String} message _optional_ + * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types + * @returns error for chaining (null if no error) + * @namespace BDD + * @api public + */ + + function assertThrows (constructor, errMsg, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + new Assertion(obj, msg).is.a('function'); + + var thrown = false + , desiredError = null + , name = null + , thrownError = null; + + if (arguments.length === 0) { + errMsg = null; + constructor = null; + } else if (constructor && (constructor instanceof RegExp || 'string' === typeof constructor)) { + errMsg = constructor; + constructor = null; + } else if (constructor && constructor instanceof Error) { + desiredError = constructor; + constructor = null; + errMsg = null; + } else if (typeof constructor === 'function') { + name = constructor.prototype.name; + if (!name || (name === 'Error' && constructor !== Error)) { + name = constructor.name || (new constructor()).name; + } + } else { + constructor = null; + } + + try { + obj(); + } catch (err) { + // first, check desired error + if (desiredError) { + this.assert( + err === desiredError + , 'expected #{this} to throw #{exp} but #{act} was thrown' + , 'expected #{this} to not throw #{exp}' + , (desiredError instanceof Error ? desiredError.toString() : desiredError) + , (err instanceof Error ? err.toString() : err) + ); + + flag(this, 'object', err); + return this; + } + + // next, check constructor + if (constructor) { + this.assert( + err instanceof constructor + , 'expected #{this} to throw #{exp} but #{act} was thrown' + , 'expected #{this} to not throw #{exp} but #{act} was thrown' + , name + , (err instanceof Error ? err.toString() : err) + ); + + if (!errMsg) { + flag(this, 'object', err); + return this; + } + } + + // next, check message + var message = 'error' === _.type(err) && "message" in err + ? err.message + : '' + err; + + if ((message != null) && errMsg && errMsg instanceof RegExp) { + this.assert( + errMsg.exec(message) + , 'expected #{this} to throw error matching #{exp} but got #{act}' + , 'expected #{this} to throw error not matching #{exp}' + , errMsg + , message + ); + + flag(this, 'object', err); + return this; + } else if ((message != null) && errMsg && 'string' === typeof errMsg) { + this.assert( + ~message.indexOf(errMsg) + , 'expected #{this} to throw error including #{exp} but got #{act}' + , 'expected #{this} to throw error not including #{act}' + , errMsg + , message + ); + + flag(this, 'object', err); + return this; + } else { + thrown = true; + thrownError = err; + } + } + + var actuallyGot = '' + , expectedThrown = name !== null + ? name + : desiredError + ? '#{exp}' //_.inspect(desiredError) + : 'an error'; + + if (thrown) { + actuallyGot = ' but #{act} was thrown' + } + + this.assert( + thrown === true + , 'expected #{this} to throw ' + expectedThrown + actuallyGot + , 'expected #{this} to not throw ' + expectedThrown + actuallyGot + , (desiredError instanceof Error ? desiredError.toString() : desiredError) + , (thrownError instanceof Error ? thrownError.toString() : thrownError) + ); + + flag(this, 'object', thrownError); + }; + + Assertion.addMethod('throw', assertThrows); + Assertion.addMethod('throws', assertThrows); + Assertion.addMethod('Throw', assertThrows); + + /** + * ### .respondTo(method) + * + * Asserts that the object or class target will respond to a method. + * + * Klass.prototype.bar = function(){}; + * expect(Klass).to.respondTo('bar'); + * expect(obj).to.respondTo('bar'); + * + * To check if a constructor will respond to a static function, + * set the `itself` flag. + * + * Klass.baz = function(){}; + * expect(Klass).itself.to.respondTo('baz'); + * + * @name respondTo + * @alias respondsTo + * @param {String} method + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function respondTo (method, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object') + , itself = flag(this, 'itself') + , context = ('function' === _.type(obj) && !itself) + ? obj.prototype[method] + : obj[method]; + + this.assert( + 'function' === typeof context + , 'expected #{this} to respond to ' + _.inspect(method) + , 'expected #{this} to not respond to ' + _.inspect(method) + ); + } + + Assertion.addMethod('respondTo', respondTo); + Assertion.addMethod('respondsTo', respondTo); + + /** + * ### .itself + * + * Sets the `itself` flag, later used by the `respondTo` assertion. + * + * function Foo() {} + * Foo.bar = function() {} + * Foo.prototype.baz = function() {} + * + * expect(Foo).itself.to.respondTo('bar'); + * expect(Foo).itself.not.to.respondTo('baz'); + * + * @name itself + * @namespace BDD + * @api public + */ + + Assertion.addProperty('itself', function () { + flag(this, 'itself', true); + }); + + /** + * ### .satisfy(method) + * + * Asserts that the target passes a given truth test. + * + * expect(1).to.satisfy(function(num) { return num > 0; }); + * + * @name satisfy + * @alias satisfies + * @param {Function} matcher + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function satisfy (matcher, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + var result = matcher(obj); + this.assert( + result + , 'expected #{this} to satisfy ' + _.objDisplay(matcher) + , 'expected #{this} to not satisfy' + _.objDisplay(matcher) + , this.negate ? false : true + , result + ); + } + + Assertion.addMethod('satisfy', satisfy); + Assertion.addMethod('satisfies', satisfy); + + /** + * ### .closeTo(expected, delta) + * + * Asserts that the target is equal `expected`, to within a +/- `delta` range. + * + * expect(1.5).to.be.closeTo(1, 0.5); + * + * @name closeTo + * @alias approximately + * @param {Number} expected + * @param {Number} delta + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function closeTo(expected, delta, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + + new Assertion(obj, msg).is.a('number'); + if (_.type(expected) !== 'number' || _.type(delta) !== 'number') { + throw new Error('the arguments to closeTo or approximately must be numbers'); + } + + this.assert( + Math.abs(obj - expected) <= delta + , 'expected #{this} to be close to ' + expected + ' +/- ' + delta + , 'expected #{this} not to be close to ' + expected + ' +/- ' + delta + ); + } + + Assertion.addMethod('closeTo', closeTo); + Assertion.addMethod('approximately', closeTo); + + function isSubsetOf(subset, superset, cmp) { + return subset.every(function(elem) { + if (!cmp) return superset.indexOf(elem) !== -1; + + return superset.some(function(elem2) { + return cmp(elem, elem2); + }); + }) + } + + /** + * ### .members(set) + * + * Asserts that the target is a superset of `set`, + * or that the target and `set` have the same strictly-equal (===) members. + * Alternately, if the `deep` flag is set, set members are compared for deep + * equality. + * + * expect([1, 2, 3]).to.include.members([3, 2]); + * expect([1, 2, 3]).to.not.include.members([3, 2, 8]); + * + * expect([4, 2]).to.have.members([2, 4]); + * expect([5, 2]).to.not.have.members([5, 2, 1]); + * + * expect([{ id: 1 }]).to.deep.include.members([{ id: 1 }]); + * + * @name members + * @param {Array} set + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + Assertion.addMethod('members', function (subset, msg) { + if (msg) flag(this, 'message', msg); + var obj = flag(this, 'object'); + + new Assertion(obj).to.be.an('array'); + new Assertion(subset).to.be.an('array'); + + var cmp = flag(this, 'deep') ? _.eql : undefined; + + if (flag(this, 'contains')) { + return this.assert( + isSubsetOf(subset, obj, cmp) + , 'expected #{this} to be a superset of #{act}' + , 'expected #{this} to not be a superset of #{act}' + , obj + , subset + ); + } + + this.assert( + isSubsetOf(obj, subset, cmp) && isSubsetOf(subset, obj, cmp) + , 'expected #{this} to have the same members as #{act}' + , 'expected #{this} to not have the same members as #{act}' + , obj + , subset + ); + }); + + /** + * ### .oneOf(list) + * + * Assert that a value appears somewhere in the top level of array `list`. + * + * expect('a').to.be.oneOf(['a', 'b', 'c']); + * expect(9).to.not.be.oneOf(['z']); + * expect([3]).to.not.be.oneOf([1, 2, [3]]); + * + * var three = [3]; + * // for object-types, contents are not compared + * expect(three).to.not.be.oneOf([1, 2, [3]]); + * // comparing references works + * expect(three).to.be.oneOf([1, 2, three]); + * + * @name oneOf + * @param {Array<*>} list + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function oneOf (list, msg) { + if (msg) flag(this, 'message', msg); + var expected = flag(this, 'object'); + new Assertion(list).to.be.an('array'); + + this.assert( + list.indexOf(expected) > -1 + , 'expected #{this} to be one of #{exp}' + , 'expected #{this} to not be one of #{exp}' + , list + , expected + ); + } + + Assertion.addMethod('oneOf', oneOf); + + + /** + * ### .change(function) + * + * Asserts that a function changes an object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val += 3 }; + * var noChangeFn = function() { return 'foo' + 'bar'; } + * expect(fn).to.change(obj, 'val'); + * expect(noChangeFn).to.not.change(obj, 'val') + * + * @name change + * @alias changes + * @alias Change + * @param {String} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertChanges (object, prop, msg) { + if (msg) flag(this, 'message', msg); + var fn = flag(this, 'object'); + new Assertion(object, msg).to.have.property(prop); + new Assertion(fn).is.a('function'); + + var initial = object[prop]; + fn(); + + this.assert( + initial !== object[prop] + , 'expected .' + prop + ' to change' + , 'expected .' + prop + ' to not change' + ); + } + + Assertion.addChainableMethod('change', assertChanges); + Assertion.addChainableMethod('changes', assertChanges); + + /** + * ### .increase(function) + * + * Asserts that a function increases an object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 15 }; + * expect(fn).to.increase(obj, 'val'); + * + * @name increase + * @alias increases + * @alias Increase + * @param {String} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertIncreases (object, prop, msg) { + if (msg) flag(this, 'message', msg); + var fn = flag(this, 'object'); + new Assertion(object, msg).to.have.property(prop); + new Assertion(fn).is.a('function'); + + var initial = object[prop]; + fn(); + + this.assert( + object[prop] - initial > 0 + , 'expected .' + prop + ' to increase' + , 'expected .' + prop + ' to not increase' + ); + } + + Assertion.addChainableMethod('increase', assertIncreases); + Assertion.addChainableMethod('increases', assertIncreases); + + /** + * ### .decrease(function) + * + * Asserts that a function decreases an object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 5 }; + * expect(fn).to.decrease(obj, 'val'); + * + * @name decrease + * @alias decreases + * @alias Decrease + * @param {String} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace BDD + * @api public + */ + + function assertDecreases (object, prop, msg) { + if (msg) flag(this, 'message', msg); + var fn = flag(this, 'object'); + new Assertion(object, msg).to.have.property(prop); + new Assertion(fn).is.a('function'); + + var initial = object[prop]; + fn(); + + this.assert( + object[prop] - initial < 0 + , 'expected .' + prop + ' to decrease' + , 'expected .' + prop + ' to not decrease' + ); + } + + Assertion.addChainableMethod('decrease', assertDecreases); + Assertion.addChainableMethod('decreases', assertDecreases); + + /** + * ### .extensible + * + * Asserts that the target is extensible (can have new properties added to + * it). + * + * var nonExtensibleObject = Object.preventExtensions({}); + * var sealedObject = Object.seal({}); + * var frozenObject = Object.freeze({}); + * + * expect({}).to.be.extensible; + * expect(nonExtensibleObject).to.not.be.extensible; + * expect(sealedObject).to.not.be.extensible; + * expect(frozenObject).to.not.be.extensible; + * + * @name extensible + * @namespace BDD + * @api public + */ + + Assertion.addProperty('extensible', function() { + var obj = flag(this, 'object'); + + // In ES5, if the argument to this method is not an object (a primitive), then it will cause a TypeError. + // In ES6, a non-object argument will be treated as if it was a non-extensible ordinary object, simply return false. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible + // The following provides ES6 behavior when a TypeError is thrown under ES5. + + var isExtensible; + + try { + isExtensible = Object.isExtensible(obj); + } catch (err) { + if (err instanceof TypeError) isExtensible = false; + else throw err; + } + + this.assert( + isExtensible + , 'expected #{this} to be extensible' + , 'expected #{this} to not be extensible' + ); + }); + + /** + * ### .sealed + * + * Asserts that the target is sealed (cannot have new properties added to it + * and its existing properties cannot be removed). + * + * var sealedObject = Object.seal({}); + * var frozenObject = Object.freeze({}); + * + * expect(sealedObject).to.be.sealed; + * expect(frozenObject).to.be.sealed; + * expect({}).to.not.be.sealed; + * + * @name sealed + * @namespace BDD + * @api public + */ + + Assertion.addProperty('sealed', function() { + var obj = flag(this, 'object'); + + // In ES5, if the argument to this method is not an object (a primitive), then it will cause a TypeError. + // In ES6, a non-object argument will be treated as if it was a sealed ordinary object, simply return true. + // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed + // The following provides ES6 behavior when a TypeError is thrown under ES5. + + var isSealed; + + try { + isSealed = Object.isSealed(obj); + } catch (err) { + if (err instanceof TypeError) isSealed = true; + else throw err; + } + + this.assert( + isSealed + , 'expected #{this} to be sealed' + , 'expected #{this} to not be sealed' + ); + }); + + /** + * ### .frozen + * + * Asserts that the target is frozen (cannot have new properties added to it + * and its existing properties cannot be modified). + * + * var frozenObject = Object.freeze({}); + * + * expect(frozenObject).to.be.frozen; + * expect({}).to.not.be.frozen; + * + * @name frozen + * @namespace BDD + * @api public + */ + + Assertion.addProperty('frozen', function() { + var obj = flag(this, 'object'); + + // In ES5, if the argument to this method is not an object (a primitive), then it will cause a TypeError. + // In ES6, a non-object argument will be treated as if it was a frozen ordinary object, simply return true. + // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen + // The following provides ES6 behavior when a TypeError is thrown under ES5. + + var isFrozen; + + try { + isFrozen = Object.isFrozen(obj); + } catch (err) { + if (err instanceof TypeError) isFrozen = true; + else throw err; + } + + this.assert( + isFrozen + , 'expected #{this} to be frozen' + , 'expected #{this} to not be frozen' + ); + }); +}; + +},{}],6:[function(require,module,exports){ +/*! + * chai + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ + + +module.exports = function (chai, util) { + + /*! + * Chai dependencies. + */ + + var Assertion = chai.Assertion + , flag = util.flag; + + /*! + * Module export. + */ + + /** + * ### assert(expression, message) + * + * Write your own test expressions. + * + * assert('foo' !== 'bar', 'foo is not bar'); + * assert(Array.isArray([]), 'empty arrays are arrays'); + * + * @param {Mixed} expression to test for truthiness + * @param {String} message to display on error + * @name assert + * @namespace Assert + * @api public + */ + + var assert = chai.assert = function (express, errmsg) { + var test = new Assertion(null, null, chai.assert); + test.assert( + express + , errmsg + , '[ negation message unavailable ]' + ); + }; + + /** + * ### .fail(actual, expected, [message], [operator]) + * + * Throw a failure. Node.js `assert` module-compatible. + * + * @name fail + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @param {String} operator + * @namespace Assert + * @api public + */ + + assert.fail = function (actual, expected, message, operator) { + message = message || 'assert.fail()'; + throw new chai.AssertionError(message, { + actual: actual + , expected: expected + , operator: operator + }, assert.fail); + }; + + /** + * ### .isOk(object, [message]) + * + * Asserts that `object` is truthy. + * + * assert.isOk('everything', 'everything is ok'); + * assert.isOk(false, 'this will fail'); + * + * @name isOk + * @alias ok + * @param {Mixed} object to test + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isOk = function (val, msg) { + new Assertion(val, msg).is.ok; + }; + + /** + * ### .isNotOk(object, [message]) + * + * Asserts that `object` is falsy. + * + * assert.isNotOk('everything', 'this will fail'); + * assert.isNotOk(false, 'this will pass'); + * + * @name isNotOk + * @alias notOk + * @param {Mixed} object to test + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotOk = function (val, msg) { + new Assertion(val, msg).is.not.ok; + }; + + /** + * ### .equal(actual, expected, [message]) + * + * Asserts non-strict equality (`==`) of `actual` and `expected`. + * + * assert.equal(3, '3', '== coerces values to strings'); + * + * @name equal + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.equal = function (act, exp, msg) { + var test = new Assertion(act, msg, assert.equal); + + test.assert( + exp == flag(test, 'object') + , 'expected #{this} to equal #{exp}' + , 'expected #{this} to not equal #{act}' + , exp + , act + ); + }; + + /** + * ### .notEqual(actual, expected, [message]) + * + * Asserts non-strict inequality (`!=`) of `actual` and `expected`. + * + * assert.notEqual(3, 4, 'these numbers are not equal'); + * + * @name notEqual + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notEqual = function (act, exp, msg) { + var test = new Assertion(act, msg, assert.notEqual); + + test.assert( + exp != flag(test, 'object') + , 'expected #{this} to not equal #{exp}' + , 'expected #{this} to equal #{act}' + , exp + , act + ); + }; + + /** + * ### .strictEqual(actual, expected, [message]) + * + * Asserts strict equality (`===`) of `actual` and `expected`. + * + * assert.strictEqual(true, true, 'these booleans are strictly equal'); + * + * @name strictEqual + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.strictEqual = function (act, exp, msg) { + new Assertion(act, msg).to.equal(exp); + }; + + /** + * ### .notStrictEqual(actual, expected, [message]) + * + * Asserts strict inequality (`!==`) of `actual` and `expected`. + * + * assert.notStrictEqual(3, '3', 'no coercion for strict equality'); + * + * @name notStrictEqual + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notStrictEqual = function (act, exp, msg) { + new Assertion(act, msg).to.not.equal(exp); + }; + + /** + * ### .deepEqual(actual, expected, [message]) + * + * Asserts that `actual` is deeply equal to `expected`. + * + * assert.deepEqual({ tea: 'green' }, { tea: 'green' }); + * + * @name deepEqual + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.deepEqual = function (act, exp, msg) { + new Assertion(act, msg).to.eql(exp); + }; + + /** + * ### .notDeepEqual(actual, expected, [message]) + * + * Assert that `actual` is not deeply equal to `expected`. + * + * assert.notDeepEqual({ tea: 'green' }, { tea: 'jasmine' }); + * + * @name notDeepEqual + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notDeepEqual = function (act, exp, msg) { + new Assertion(act, msg).to.not.eql(exp); + }; + + /** + * ### .isAbove(valueToCheck, valueToBeAbove, [message]) + * + * Asserts `valueToCheck` is strictly greater than (>) `valueToBeAbove` + * + * assert.isAbove(5, 2, '5 is strictly greater than 2'); + * + * @name isAbove + * @param {Mixed} valueToCheck + * @param {Mixed} valueToBeAbove + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isAbove = function (val, abv, msg) { + new Assertion(val, msg).to.be.above(abv); + }; + + /** + * ### .isAtLeast(valueToCheck, valueToBeAtLeast, [message]) + * + * Asserts `valueToCheck` is greater than or equal to (>=) `valueToBeAtLeast` + * + * assert.isAtLeast(5, 2, '5 is greater or equal to 2'); + * assert.isAtLeast(3, 3, '3 is greater or equal to 3'); + * + * @name isAtLeast + * @param {Mixed} valueToCheck + * @param {Mixed} valueToBeAtLeast + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isAtLeast = function (val, atlst, msg) { + new Assertion(val, msg).to.be.least(atlst); + }; + + /** + * ### .isBelow(valueToCheck, valueToBeBelow, [message]) + * + * Asserts `valueToCheck` is strictly less than (<) `valueToBeBelow` + * + * assert.isBelow(3, 6, '3 is strictly less than 6'); + * + * @name isBelow + * @param {Mixed} valueToCheck + * @param {Mixed} valueToBeBelow + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isBelow = function (val, blw, msg) { + new Assertion(val, msg).to.be.below(blw); + }; + + /** + * ### .isAtMost(valueToCheck, valueToBeAtMost, [message]) + * + * Asserts `valueToCheck` is less than or equal to (<=) `valueToBeAtMost` + * + * assert.isAtMost(3, 6, '3 is less than or equal to 6'); + * assert.isAtMost(4, 4, '4 is less than or equal to 4'); + * + * @name isAtMost + * @param {Mixed} valueToCheck + * @param {Mixed} valueToBeAtMost + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isAtMost = function (val, atmst, msg) { + new Assertion(val, msg).to.be.most(atmst); + }; + + /** + * ### .isTrue(value, [message]) + * + * Asserts that `value` is true. + * + * var teaServed = true; + * assert.isTrue(teaServed, 'the tea has been served'); + * + * @name isTrue + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isTrue = function (val, msg) { + new Assertion(val, msg).is['true']; + }; + + /** + * ### .isNotTrue(value, [message]) + * + * Asserts that `value` is not true. + * + * var tea = 'tasty chai'; + * assert.isNotTrue(tea, 'great, time for tea!'); + * + * @name isNotTrue + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotTrue = function (val, msg) { + new Assertion(val, msg).to.not.equal(true); + }; + + /** + * ### .isFalse(value, [message]) + * + * Asserts that `value` is false. + * + * var teaServed = false; + * assert.isFalse(teaServed, 'no tea yet? hmm...'); + * + * @name isFalse + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isFalse = function (val, msg) { + new Assertion(val, msg).is['false']; + }; + + /** + * ### .isNotFalse(value, [message]) + * + * Asserts that `value` is not false. + * + * var tea = 'tasty chai'; + * assert.isNotFalse(tea, 'great, time for tea!'); + * + * @name isNotFalse + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotFalse = function (val, msg) { + new Assertion(val, msg).to.not.equal(false); + }; + + /** + * ### .isNull(value, [message]) + * + * Asserts that `value` is null. + * + * assert.isNull(err, 'there was no error'); + * + * @name isNull + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNull = function (val, msg) { + new Assertion(val, msg).to.equal(null); + }; + + /** + * ### .isNotNull(value, [message]) + * + * Asserts that `value` is not null. + * + * var tea = 'tasty chai'; + * assert.isNotNull(tea, 'great, time for tea!'); + * + * @name isNotNull + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotNull = function (val, msg) { + new Assertion(val, msg).to.not.equal(null); + }; + + /** + * ### .isNaN + * Asserts that value is NaN + * + * assert.isNaN('foo', 'foo is NaN'); + * + * @name isNaN + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNaN = function (val, msg) { + new Assertion(val, msg).to.be.NaN; + }; + + /** + * ### .isNotNaN + * Asserts that value is not NaN + * + * assert.isNotNaN(4, '4 is not NaN'); + * + * @name isNotNaN + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + assert.isNotNaN = function (val, msg) { + new Assertion(val, msg).not.to.be.NaN; + }; + + /** + * ### .isUndefined(value, [message]) + * + * Asserts that `value` is `undefined`. + * + * var tea; + * assert.isUndefined(tea, 'no tea defined'); + * + * @name isUndefined + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isUndefined = function (val, msg) { + new Assertion(val, msg).to.equal(undefined); + }; + + /** + * ### .isDefined(value, [message]) + * + * Asserts that `value` is not `undefined`. + * + * var tea = 'cup of chai'; + * assert.isDefined(tea, 'tea has been defined'); + * + * @name isDefined + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isDefined = function (val, msg) { + new Assertion(val, msg).to.not.equal(undefined); + }; + + /** + * ### .isFunction(value, [message]) + * + * Asserts that `value` is a function. + * + * function serveTea() { return 'cup of tea'; }; + * assert.isFunction(serveTea, 'great, we can have tea now'); + * + * @name isFunction + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isFunction = function (val, msg) { + new Assertion(val, msg).to.be.a('function'); + }; + + /** + * ### .isNotFunction(value, [message]) + * + * Asserts that `value` is _not_ a function. + * + * var serveTea = [ 'heat', 'pour', 'sip' ]; + * assert.isNotFunction(serveTea, 'great, we have listed the steps'); + * + * @name isNotFunction + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotFunction = function (val, msg) { + new Assertion(val, msg).to.not.be.a('function'); + }; + + /** + * ### .isObject(value, [message]) + * + * Asserts that `value` is an object of type 'Object' (as revealed by `Object.prototype.toString`). + * _The assertion does not match subclassed objects._ + * + * var selection = { name: 'Chai', serve: 'with spices' }; + * assert.isObject(selection, 'tea selection is an object'); + * + * @name isObject + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isObject = function (val, msg) { + new Assertion(val, msg).to.be.a('object'); + }; + + /** + * ### .isNotObject(value, [message]) + * + * Asserts that `value` is _not_ an object of type 'Object' (as revealed by `Object.prototype.toString`). + * + * var selection = 'chai' + * assert.isNotObject(selection, 'tea selection is not an object'); + * assert.isNotObject(null, 'null is not an object'); + * + * @name isNotObject + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotObject = function (val, msg) { + new Assertion(val, msg).to.not.be.a('object'); + }; + + /** + * ### .isArray(value, [message]) + * + * Asserts that `value` is an array. + * + * var menu = [ 'green', 'chai', 'oolong' ]; + * assert.isArray(menu, 'what kind of tea do we want?'); + * + * @name isArray + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isArray = function (val, msg) { + new Assertion(val, msg).to.be.an('array'); + }; + + /** + * ### .isNotArray(value, [message]) + * + * Asserts that `value` is _not_ an array. + * + * var menu = 'green|chai|oolong'; + * assert.isNotArray(menu, 'what kind of tea do we want?'); + * + * @name isNotArray + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotArray = function (val, msg) { + new Assertion(val, msg).to.not.be.an('array'); + }; + + /** + * ### .isString(value, [message]) + * + * Asserts that `value` is a string. + * + * var teaOrder = 'chai'; + * assert.isString(teaOrder, 'order placed'); + * + * @name isString + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isString = function (val, msg) { + new Assertion(val, msg).to.be.a('string'); + }; + + /** + * ### .isNotString(value, [message]) + * + * Asserts that `value` is _not_ a string. + * + * var teaOrder = 4; + * assert.isNotString(teaOrder, 'order placed'); + * + * @name isNotString + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotString = function (val, msg) { + new Assertion(val, msg).to.not.be.a('string'); + }; + + /** + * ### .isNumber(value, [message]) + * + * Asserts that `value` is a number. + * + * var cups = 2; + * assert.isNumber(cups, 'how many cups'); + * + * @name isNumber + * @param {Number} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNumber = function (val, msg) { + new Assertion(val, msg).to.be.a('number'); + }; + + /** + * ### .isNotNumber(value, [message]) + * + * Asserts that `value` is _not_ a number. + * + * var cups = '2 cups please'; + * assert.isNotNumber(cups, 'how many cups'); + * + * @name isNotNumber + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotNumber = function (val, msg) { + new Assertion(val, msg).to.not.be.a('number'); + }; + + /** + * ### .isBoolean(value, [message]) + * + * Asserts that `value` is a boolean. + * + * var teaReady = true + * , teaServed = false; + * + * assert.isBoolean(teaReady, 'is the tea ready'); + * assert.isBoolean(teaServed, 'has tea been served'); + * + * @name isBoolean + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isBoolean = function (val, msg) { + new Assertion(val, msg).to.be.a('boolean'); + }; + + /** + * ### .isNotBoolean(value, [message]) + * + * Asserts that `value` is _not_ a boolean. + * + * var teaReady = 'yep' + * , teaServed = 'nope'; + * + * assert.isNotBoolean(teaReady, 'is the tea ready'); + * assert.isNotBoolean(teaServed, 'has tea been served'); + * + * @name isNotBoolean + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.isNotBoolean = function (val, msg) { + new Assertion(val, msg).to.not.be.a('boolean'); + }; + + /** + * ### .typeOf(value, name, [message]) + * + * Asserts that `value`'s type is `name`, as determined by + * `Object.prototype.toString`. + * + * assert.typeOf({ tea: 'chai' }, 'object', 'we have an object'); + * assert.typeOf(['chai', 'jasmine'], 'array', 'we have an array'); + * assert.typeOf('tea', 'string', 'we have a string'); + * assert.typeOf(/tea/, 'regexp', 'we have a regular expression'); + * assert.typeOf(null, 'null', 'we have a null'); + * assert.typeOf(undefined, 'undefined', 'we have an undefined'); + * + * @name typeOf + * @param {Mixed} value + * @param {String} name + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.typeOf = function (val, type, msg) { + new Assertion(val, msg).to.be.a(type); + }; + + /** + * ### .notTypeOf(value, name, [message]) + * + * Asserts that `value`'s type is _not_ `name`, as determined by + * `Object.prototype.toString`. + * + * assert.notTypeOf('tea', 'number', 'strings are not numbers'); + * + * @name notTypeOf + * @param {Mixed} value + * @param {String} typeof name + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notTypeOf = function (val, type, msg) { + new Assertion(val, msg).to.not.be.a(type); + }; + + /** + * ### .instanceOf(object, constructor, [message]) + * + * Asserts that `value` is an instance of `constructor`. + * + * var Tea = function (name) { this.name = name; } + * , chai = new Tea('chai'); + * + * assert.instanceOf(chai, Tea, 'chai is an instance of tea'); + * + * @name instanceOf + * @param {Object} object + * @param {Constructor} constructor + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.instanceOf = function (val, type, msg) { + new Assertion(val, msg).to.be.instanceOf(type); + }; + + /** + * ### .notInstanceOf(object, constructor, [message]) + * + * Asserts `value` is not an instance of `constructor`. + * + * var Tea = function (name) { this.name = name; } + * , chai = new String('chai'); + * + * assert.notInstanceOf(chai, Tea, 'chai is not an instance of tea'); + * + * @name notInstanceOf + * @param {Object} object + * @param {Constructor} constructor + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notInstanceOf = function (val, type, msg) { + new Assertion(val, msg).to.not.be.instanceOf(type); + }; + + /** + * ### .include(haystack, needle, [message]) + * + * Asserts that `haystack` includes `needle`. Works + * for strings and arrays. + * + * assert.include('foobar', 'bar', 'foobar contains string "bar"'); + * assert.include([ 1, 2, 3 ], 3, 'array contains value'); + * + * @name include + * @param {Array|String} haystack + * @param {Mixed} needle + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.include = function (exp, inc, msg) { + new Assertion(exp, msg, assert.include).include(inc); + }; + + /** + * ### .notInclude(haystack, needle, [message]) + * + * Asserts that `haystack` does not include `needle`. Works + * for strings and arrays. + * + * assert.notInclude('foobar', 'baz', 'string not include substring'); + * assert.notInclude([ 1, 2, 3 ], 4, 'array not include contain value'); + * + * @name notInclude + * @param {Array|String} haystack + * @param {Mixed} needle + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notInclude = function (exp, inc, msg) { + new Assertion(exp, msg, assert.notInclude).not.include(inc); + }; + + /** + * ### .match(value, regexp, [message]) + * + * Asserts that `value` matches the regular expression `regexp`. + * + * assert.match('foobar', /^foo/, 'regexp matches'); + * + * @name match + * @param {Mixed} value + * @param {RegExp} regexp + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.match = function (exp, re, msg) { + new Assertion(exp, msg).to.match(re); + }; + + /** + * ### .notMatch(value, regexp, [message]) + * + * Asserts that `value` does not match the regular expression `regexp`. + * + * assert.notMatch('foobar', /^foo/, 'regexp does not match'); + * + * @name notMatch + * @param {Mixed} value + * @param {RegExp} regexp + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notMatch = function (exp, re, msg) { + new Assertion(exp, msg).to.not.match(re); + }; + + /** + * ### .property(object, property, [message]) + * + * Asserts that `object` has a property named by `property`. + * + * assert.property({ tea: { green: 'matcha' }}, 'tea'); + * + * @name property + * @param {Object} object + * @param {String} property + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.property = function (obj, prop, msg) { + new Assertion(obj, msg).to.have.property(prop); + }; + + /** + * ### .notProperty(object, property, [message]) + * + * Asserts that `object` does _not_ have a property named by `property`. + * + * assert.notProperty({ tea: { green: 'matcha' }}, 'coffee'); + * + * @name notProperty + * @param {Object} object + * @param {String} property + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notProperty = function (obj, prop, msg) { + new Assertion(obj, msg).to.not.have.property(prop); + }; + + /** + * ### .deepProperty(object, property, [message]) + * + * Asserts that `object` has a property named by `property`, which can be a + * string using dot- and bracket-notation for deep reference. + * + * assert.deepProperty({ tea: { green: 'matcha' }}, 'tea.green'); + * + * @name deepProperty + * @param {Object} object + * @param {String} property + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.deepProperty = function (obj, prop, msg) { + new Assertion(obj, msg).to.have.deep.property(prop); + }; + + /** + * ### .notDeepProperty(object, property, [message]) + * + * Asserts that `object` does _not_ have a property named by `property`, which + * can be a string using dot- and bracket-notation for deep reference. + * + * assert.notDeepProperty({ tea: { green: 'matcha' }}, 'tea.oolong'); + * + * @name notDeepProperty + * @param {Object} object + * @param {String} property + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.notDeepProperty = function (obj, prop, msg) { + new Assertion(obj, msg).to.not.have.deep.property(prop); + }; + + /** + * ### .propertyVal(object, property, value, [message]) + * + * Asserts that `object` has a property named by `property` with value given + * by `value`. + * + * assert.propertyVal({ tea: 'is good' }, 'tea', 'is good'); + * + * @name propertyVal + * @param {Object} object + * @param {String} property + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.propertyVal = function (obj, prop, val, msg) { + new Assertion(obj, msg).to.have.property(prop, val); + }; + + /** + * ### .propertyNotVal(object, property, value, [message]) + * + * Asserts that `object` has a property named by `property`, but with a value + * different from that given by `value`. + * + * assert.propertyNotVal({ tea: 'is good' }, 'tea', 'is bad'); + * + * @name propertyNotVal + * @param {Object} object + * @param {String} property + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.propertyNotVal = function (obj, prop, val, msg) { + new Assertion(obj, msg).to.not.have.property(prop, val); + }; + + /** + * ### .deepPropertyVal(object, property, value, [message]) + * + * Asserts that `object` has a property named by `property` with value given + * by `value`. `property` can use dot- and bracket-notation for deep + * reference. + * + * assert.deepPropertyVal({ tea: { green: 'matcha' }}, 'tea.green', 'matcha'); + * + * @name deepPropertyVal + * @param {Object} object + * @param {String} property + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.deepPropertyVal = function (obj, prop, val, msg) { + new Assertion(obj, msg).to.have.deep.property(prop, val); + }; + + /** + * ### .deepPropertyNotVal(object, property, value, [message]) + * + * Asserts that `object` has a property named by `property`, but with a value + * different from that given by `value`. `property` can use dot- and + * bracket-notation for deep reference. + * + * assert.deepPropertyNotVal({ tea: { green: 'matcha' }}, 'tea.green', 'konacha'); + * + * @name deepPropertyNotVal + * @param {Object} object + * @param {String} property + * @param {Mixed} value + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.deepPropertyNotVal = function (obj, prop, val, msg) { + new Assertion(obj, msg).to.not.have.deep.property(prop, val); + }; + + /** + * ### .lengthOf(object, length, [message]) + * + * Asserts that `object` has a `length` property with the expected value. + * + * assert.lengthOf([1,2,3], 3, 'array has length of 3'); + * assert.lengthOf('foobar', 6, 'string has length of 6'); + * + * @name lengthOf + * @param {Mixed} object + * @param {Number} length + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.lengthOf = function (exp, len, msg) { + new Assertion(exp, msg).to.have.length(len); + }; + + /** + * ### .throws(function, [constructor/string/regexp], [string/regexp], [message]) + * + * Asserts that `function` will throw an error that is an instance of + * `constructor`, or alternately that it will throw an error with message + * matching `regexp`. + * + * assert.throws(fn, 'function throws a reference error'); + * assert.throws(fn, /function throws a reference error/); + * assert.throws(fn, ReferenceError); + * assert.throws(fn, ReferenceError, 'function throws a reference error'); + * assert.throws(fn, ReferenceError, /function throws a reference error/); + * + * @name throws + * @alias throw + * @alias Throw + * @param {Function} function + * @param {ErrorConstructor} constructor + * @param {RegExp} regexp + * @param {String} message + * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types + * @namespace Assert + * @api public + */ + + assert.throws = function (fn, errt, errs, msg) { + if ('string' === typeof errt || errt instanceof RegExp) { + errs = errt; + errt = null; + } + + var assertErr = new Assertion(fn, msg).to.throw(errt, errs); + return flag(assertErr, 'object'); + }; + + /** + * ### .doesNotThrow(function, [constructor/regexp], [message]) + * + * Asserts that `function` will _not_ throw an error that is an instance of + * `constructor`, or alternately that it will not throw an error with message + * matching `regexp`. + * + * assert.doesNotThrow(fn, Error, 'function does not throw'); + * + * @name doesNotThrow + * @param {Function} function + * @param {ErrorConstructor} constructor + * @param {RegExp} regexp + * @param {String} message + * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types + * @namespace Assert + * @api public + */ + + assert.doesNotThrow = function (fn, type, msg) { + if ('string' === typeof type) { + msg = type; + type = null; + } + + new Assertion(fn, msg).to.not.Throw(type); + }; + + /** + * ### .operator(val1, operator, val2, [message]) + * + * Compares two values using `operator`. + * + * assert.operator(1, '<', 2, 'everything is ok'); + * assert.operator(1, '>', 2, 'this will fail'); + * + * @name operator + * @param {Mixed} val1 + * @param {String} operator + * @param {Mixed} val2 + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.operator = function (val, operator, val2, msg) { + var ok; + switch(operator) { + case '==': + ok = val == val2; + break; + case '===': + ok = val === val2; + break; + case '>': + ok = val > val2; + break; + case '>=': + ok = val >= val2; + break; + case '<': + ok = val < val2; + break; + case '<=': + ok = val <= val2; + break; + case '!=': + ok = val != val2; + break; + case '!==': + ok = val !== val2; + break; + default: + throw new Error('Invalid operator "' + operator + '"'); + } + var test = new Assertion(ok, msg); + test.assert( + true === flag(test, 'object') + , 'expected ' + util.inspect(val) + ' to be ' + operator + ' ' + util.inspect(val2) + , 'expected ' + util.inspect(val) + ' to not be ' + operator + ' ' + util.inspect(val2) ); + }; + + /** + * ### .closeTo(actual, expected, delta, [message]) + * + * Asserts that the target is equal `expected`, to within a +/- `delta` range. + * + * assert.closeTo(1.5, 1, 0.5, 'numbers are close'); + * + * @name closeTo + * @param {Number} actual + * @param {Number} expected + * @param {Number} delta + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.closeTo = function (act, exp, delta, msg) { + new Assertion(act, msg).to.be.closeTo(exp, delta); + }; + + /** + * ### .approximately(actual, expected, delta, [message]) + * + * Asserts that the target is equal `expected`, to within a +/- `delta` range. + * + * assert.approximately(1.5, 1, 0.5, 'numbers are close'); + * + * @name approximately + * @param {Number} actual + * @param {Number} expected + * @param {Number} delta + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.approximately = function (act, exp, delta, msg) { + new Assertion(act, msg).to.be.approximately(exp, delta); + }; + + /** + * ### .sameMembers(set1, set2, [message]) + * + * Asserts that `set1` and `set2` have the same members. + * Order is not taken into account. + * + * assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members'); + * + * @name sameMembers + * @param {Array} set1 + * @param {Array} set2 + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.sameMembers = function (set1, set2, msg) { + new Assertion(set1, msg).to.have.same.members(set2); + } + + /** + * ### .sameDeepMembers(set1, set2, [message]) + * + * Asserts that `set1` and `set2` have the same members - using a deep equality checking. + * Order is not taken into account. + * + * assert.sameDeepMembers([ {b: 3}, {a: 2}, {c: 5} ], [ {c: 5}, {b: 3}, {a: 2} ], 'same deep members'); + * + * @name sameDeepMembers + * @param {Array} set1 + * @param {Array} set2 + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.sameDeepMembers = function (set1, set2, msg) { + new Assertion(set1, msg).to.have.same.deep.members(set2); + } + + /** + * ### .includeMembers(superset, subset, [message]) + * + * Asserts that `subset` is included in `superset`. + * Order is not taken into account. + * + * assert.includeMembers([ 1, 2, 3 ], [ 2, 1 ], 'include members'); + * + * @name includeMembers + * @param {Array} superset + * @param {Array} subset + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.includeMembers = function (superset, subset, msg) { + new Assertion(superset, msg).to.include.members(subset); + } + + /** + * ### .includeDeepMembers(superset, subset, [message]) + * + * Asserts that `subset` is included in `superset` - using deep equality checking. + * Order is not taken into account. + * Duplicates are ignored. + * + * assert.includeDeepMembers([ {a: 1}, {b: 2}, {c: 3} ], [ {b: 2}, {a: 1}, {b: 2} ], 'include deep members'); + * + * @name includeDeepMembers + * @param {Array} superset + * @param {Array} subset + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.includeDeepMembers = function (superset, subset, msg) { + new Assertion(superset, msg).to.include.deep.members(subset); + } + + /** + * ### .oneOf(inList, list, [message]) + * + * Asserts that non-object, non-array value `inList` appears in the flat array `list`. + * + * assert.oneOf(1, [ 2, 1 ], 'Not found in list'); + * + * @name oneOf + * @param {*} inList + * @param {Array<*>} list + * @param {String} message + * @namespace Assert + * @api public + */ + + assert.oneOf = function (inList, list, msg) { + new Assertion(inList, msg).to.be.oneOf(list); + } + + /** + * ### .changes(function, object, property) + * + * Asserts that a function changes the value of a property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 22 }; + * assert.changes(fn, obj, 'val'); + * + * @name changes + * @param {Function} modifier function + * @param {Object} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.changes = function (fn, obj, prop) { + new Assertion(fn).to.change(obj, prop); + } + + /** + * ### .doesNotChange(function, object, property) + * + * Asserts that a function does not changes the value of a property + * + * var obj = { val: 10 }; + * var fn = function() { console.log('foo'); }; + * assert.doesNotChange(fn, obj, 'val'); + * + * @name doesNotChange + * @param {Function} modifier function + * @param {Object} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.doesNotChange = function (fn, obj, prop) { + new Assertion(fn).to.not.change(obj, prop); + } + + /** + * ### .increases(function, object, property) + * + * Asserts that a function increases an object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 13 }; + * assert.increases(fn, obj, 'val'); + * + * @name increases + * @param {Function} modifier function + * @param {Object} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.increases = function (fn, obj, prop) { + new Assertion(fn).to.increase(obj, prop); + } + + /** + * ### .doesNotIncrease(function, object, property) + * + * Asserts that a function does not increase object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 8 }; + * assert.doesNotIncrease(fn, obj, 'val'); + * + * @name doesNotIncrease + * @param {Function} modifier function + * @param {Object} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.doesNotIncrease = function (fn, obj, prop) { + new Assertion(fn).to.not.increase(obj, prop); + } + + /** + * ### .decreases(function, object, property) + * + * Asserts that a function decreases an object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 5 }; + * assert.decreases(fn, obj, 'val'); + * + * @name decreases + * @param {Function} modifier function + * @param {Object} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.decreases = function (fn, obj, prop) { + new Assertion(fn).to.decrease(obj, prop); + } + + /** + * ### .doesNotDecrease(function, object, property) + * + * Asserts that a function does not decreases an object property + * + * var obj = { val: 10 }; + * var fn = function() { obj.val = 15 }; + * assert.doesNotDecrease(fn, obj, 'val'); + * + * @name doesNotDecrease + * @param {Function} modifier function + * @param {Object} object + * @param {String} property name + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.doesNotDecrease = function (fn, obj, prop) { + new Assertion(fn).to.not.decrease(obj, prop); + } + + /*! + * ### .ifError(object) + * + * Asserts if value is not a false value, and throws if it is a true value. + * This is added to allow for chai to be a drop-in replacement for Node's + * assert class. + * + * var err = new Error('I am a custom error'); + * assert.ifError(err); // Rethrows err! + * + * @name ifError + * @param {Object} object + * @namespace Assert + * @api public + */ + + assert.ifError = function (val) { + if (val) { + throw(val); + } + }; + + /** + * ### .isExtensible(object) + * + * Asserts that `object` is extensible (can have new properties added to it). + * + * assert.isExtensible({}); + * + * @name isExtensible + * @alias extensible + * @param {Object} object + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.isExtensible = function (obj, msg) { + new Assertion(obj, msg).to.be.extensible; + }; + + /** + * ### .isNotExtensible(object) + * + * Asserts that `object` is _not_ extensible. + * + * var nonExtensibleObject = Object.preventExtensions({}); + * var sealedObject = Object.seal({}); + * var frozenObject = Object.freese({}); + * + * assert.isNotExtensible(nonExtensibleObject); + * assert.isNotExtensible(sealedObject); + * assert.isNotExtensible(frozenObject); + * + * @name isNotExtensible + * @alias notExtensible + * @param {Object} object + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.isNotExtensible = function (obj, msg) { + new Assertion(obj, msg).to.not.be.extensible; + }; + + /** + * ### .isSealed(object) + * + * Asserts that `object` is sealed (cannot have new properties added to it + * and its existing properties cannot be removed). + * + * var sealedObject = Object.seal({}); + * var frozenObject = Object.seal({}); + * + * assert.isSealed(sealedObject); + * assert.isSealed(frozenObject); + * + * @name isSealed + * @alias sealed + * @param {Object} object + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.isSealed = function (obj, msg) { + new Assertion(obj, msg).to.be.sealed; + }; + + /** + * ### .isNotSealed(object) + * + * Asserts that `object` is _not_ sealed. + * + * assert.isNotSealed({}); + * + * @name isNotSealed + * @alias notSealed + * @param {Object} object + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.isNotSealed = function (obj, msg) { + new Assertion(obj, msg).to.not.be.sealed; + }; + + /** + * ### .isFrozen(object) + * + * Asserts that `object` is frozen (cannot have new properties added to it + * and its existing properties cannot be modified). + * + * var frozenObject = Object.freeze({}); + * assert.frozen(frozenObject); + * + * @name isFrozen + * @alias frozen + * @param {Object} object + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.isFrozen = function (obj, msg) { + new Assertion(obj, msg).to.be.frozen; + }; + + /** + * ### .isNotFrozen(object) + * + * Asserts that `object` is _not_ frozen. + * + * assert.isNotFrozen({}); + * + * @name isNotFrozen + * @alias notFrozen + * @param {Object} object + * @param {String} message _optional_ + * @namespace Assert + * @api public + */ + + assert.isNotFrozen = function (obj, msg) { + new Assertion(obj, msg).to.not.be.frozen; + }; + + /*! + * Aliases. + */ + + (function alias(name, as){ + assert[as] = assert[name]; + return alias; + }) + ('isOk', 'ok') + ('isNotOk', 'notOk') + ('throws', 'throw') + ('throws', 'Throw') + ('isExtensible', 'extensible') + ('isNotExtensible', 'notExtensible') + ('isSealed', 'sealed') + ('isNotSealed', 'notSealed') + ('isFrozen', 'frozen') + ('isNotFrozen', 'notFrozen'); +}; + +},{}],7:[function(require,module,exports){ +/*! + * chai + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ + +module.exports = function (chai, util) { + chai.expect = function (val, message) { + return new chai.Assertion(val, message); + }; + + /** + * ### .fail(actual, expected, [message], [operator]) + * + * Throw a failure. + * + * @name fail + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @param {String} operator + * @namespace Expect + * @api public + */ + + chai.expect.fail = function (actual, expected, message, operator) { + message = message || 'expect.fail()'; + throw new chai.AssertionError(message, { + actual: actual + , expected: expected + , operator: operator + }, chai.expect.fail); + }; +}; + +},{}],8:[function(require,module,exports){ +/*! + * chai + * Copyright(c) 2011-2014 Jake Luer + * MIT Licensed + */ + +module.exports = function (chai, util) { + var Assertion = chai.Assertion; + + function loadShould () { + // explicitly define this method as function as to have it's name to include as `ssfi` + function shouldGetter() { + if (this instanceof String || this instanceof Number || this instanceof Boolean ) { + return new Assertion(this.valueOf(), null, shouldGetter); + } + return new Assertion(this, null, shouldGetter); + } + function shouldSetter(value) { + // See https://github.com/chaijs/chai/issues/86: this makes + // `whatever.should = someValue` actually set `someValue`, which is + // especially useful for `global.should = require('chai').should()`. + // + // Note that we have to use [[DefineProperty]] instead of [[Put]] + // since otherwise we would trigger this very setter! + Object.defineProperty(this, 'should', { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } + // modify Object.prototype to have `should` + Object.defineProperty(Object.prototype, 'should', { + set: shouldSetter + , get: shouldGetter + , configurable: true + }); + + var should = {}; + + /** + * ### .fail(actual, expected, [message], [operator]) + * + * Throw a failure. + * + * @name fail + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @param {String} operator + * @namespace Should + * @api public + */ + + should.fail = function (actual, expected, message, operator) { + message = message || 'should.fail()'; + throw new chai.AssertionError(message, { + actual: actual + , expected: expected + , operator: operator + }, should.fail); + }; + + /** + * ### .equal(actual, expected, [message]) + * + * Asserts non-strict equality (`==`) of `actual` and `expected`. + * + * should.equal(3, '3', '== coerces values to strings'); + * + * @name equal + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Should + * @api public + */ + + should.equal = function (val1, val2, msg) { + new Assertion(val1, msg).to.equal(val2); + }; + + /** + * ### .throw(function, [constructor/string/regexp], [string/regexp], [message]) + * + * Asserts that `function` will throw an error that is an instance of + * `constructor`, or alternately that it will throw an error with message + * matching `regexp`. + * + * should.throw(fn, 'function throws a reference error'); + * should.throw(fn, /function throws a reference error/); + * should.throw(fn, ReferenceError); + * should.throw(fn, ReferenceError, 'function throws a reference error'); + * should.throw(fn, ReferenceError, /function throws a reference error/); + * + * @name throw + * @alias Throw + * @param {Function} function + * @param {ErrorConstructor} constructor + * @param {RegExp} regexp + * @param {String} message + * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types + * @namespace Should + * @api public + */ + + should.Throw = function (fn, errt, errs, msg) { + new Assertion(fn, msg).to.Throw(errt, errs); + }; + + /** + * ### .exist + * + * Asserts that the target is neither `null` nor `undefined`. + * + * var foo = 'hi'; + * + * should.exist(foo, 'foo exists'); + * + * @name exist + * @namespace Should + * @api public + */ + + should.exist = function (val, msg) { + new Assertion(val, msg).to.exist; + } + + // negation + should.not = {} + + /** + * ### .not.equal(actual, expected, [message]) + * + * Asserts non-strict inequality (`!=`) of `actual` and `expected`. + * + * should.not.equal(3, 4, 'these numbers are not equal'); + * + * @name not.equal + * @param {Mixed} actual + * @param {Mixed} expected + * @param {String} message + * @namespace Should + * @api public + */ + + should.not.equal = function (val1, val2, msg) { + new Assertion(val1, msg).to.not.equal(val2); + }; + + /** + * ### .throw(function, [constructor/regexp], [message]) + * + * Asserts that `function` will _not_ throw an error that is an instance of + * `constructor`, or alternately that it will not throw an error with message + * matching `regexp`. + * + * should.not.throw(fn, Error, 'function does not throw'); + * + * @name not.throw + * @alias not.Throw + * @param {Function} function + * @param {ErrorConstructor} constructor + * @param {RegExp} regexp + * @param {String} message + * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types + * @namespace Should + * @api public + */ + + should.not.Throw = function (fn, errt, errs, msg) { + new Assertion(fn, msg).to.not.Throw(errt, errs); + }; + + /** + * ### .not.exist + * + * Asserts that the target is neither `null` nor `undefined`. + * + * var bar = null; + * + * should.not.exist(bar, 'bar does not exist'); + * + * @name not.exist + * @namespace Should + * @api public + */ + + should.not.exist = function (val, msg) { + new Assertion(val, msg).to.not.exist; + } + + should['throw'] = should['Throw']; + should.not['throw'] = should.not['Throw']; + + return should; + }; + + chai.should = loadShould; + chai.Should = loadShould; +}; + +},{}],9:[function(require,module,exports){ +/*! + * Chai - addChainingMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/*! + * Module dependencies + */ + +var transferFlags = require('./transferFlags'); +var flag = require('./flag'); +var config = require('../config'); + +/*! + * Module variables + */ + +// Check whether `__proto__` is supported +var hasProtoSupport = '__proto__' in Object; + +// Without `__proto__` support, this module will need to add properties to a function. +// However, some Function.prototype methods cannot be overwritten, +// and there seems no easy cross-platform way to detect them (@see chaijs/chai/issues/69). +var excludeNames = /^(?:length|name|arguments|caller)$/; + +// Cache `Function` properties +var call = Function.prototype.call, + apply = Function.prototype.apply; + +/** + * ### addChainableMethod (ctx, name, method, chainingBehavior) + * + * Adds a method to an object, such that the method can also be chained. + * + * utils.addChainableMethod(chai.Assertion.prototype, 'foo', function (str) { + * var obj = utils.flag(this, 'object'); + * new chai.Assertion(obj).to.be.equal(str); + * }); + * + * Can also be accessed directly from `chai.Assertion`. + * + * chai.Assertion.addChainableMethod('foo', fn, chainingBehavior); + * + * The result can then be used as both a method assertion, executing both `method` and + * `chainingBehavior`, or as a language chain, which only executes `chainingBehavior`. + * + * expect(fooStr).to.be.foo('bar'); + * expect(fooStr).to.be.foo.equal('foo'); + * + * @param {Object} ctx object to which the method is added + * @param {String} name of method to add + * @param {Function} method function to be used for `name`, when called + * @param {Function} chainingBehavior function to be called every time the property is accessed + * @namespace Utils + * @name addChainableMethod + * @api public + */ + +module.exports = function (ctx, name, method, chainingBehavior) { + if (typeof chainingBehavior !== 'function') { + chainingBehavior = function () { }; + } + + var chainableBehavior = { + method: method + , chainingBehavior: chainingBehavior + }; + + // save the methods so we can overwrite them later, if we need to. + if (!ctx.__methods) { + ctx.__methods = {}; + } + ctx.__methods[name] = chainableBehavior; + + Object.defineProperty(ctx, name, + { get: function () { + chainableBehavior.chainingBehavior.call(this); + + var assert = function assert() { + var old_ssfi = flag(this, 'ssfi'); + if (old_ssfi && config.includeStack === false) + flag(this, 'ssfi', assert); + var result = chainableBehavior.method.apply(this, arguments); + return result === undefined ? this : result; + }; + + // Use `__proto__` if available + if (hasProtoSupport) { + // Inherit all properties from the object by replacing the `Function` prototype + var prototype = assert.__proto__ = Object.create(this); + // Restore the `call` and `apply` methods from `Function` + prototype.call = call; + prototype.apply = apply; + } + // Otherwise, redefine all properties (slow!) + else { + var asserterNames = Object.getOwnPropertyNames(ctx); + asserterNames.forEach(function (asserterName) { + if (!excludeNames.test(asserterName)) { + var pd = Object.getOwnPropertyDescriptor(ctx, asserterName); + Object.defineProperty(assert, asserterName, pd); + } + }); + } + + transferFlags(this, assert); + return assert; + } + , configurable: true + }); +}; + +},{"../config":4,"./flag":13,"./transferFlags":29}],10:[function(require,module,exports){ +/*! + * Chai - addMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +var config = require('../config'); + +/** + * ### .addMethod (ctx, name, method) + * + * Adds a method to the prototype of an object. + * + * utils.addMethod(chai.Assertion.prototype, 'foo', function (str) { + * var obj = utils.flag(this, 'object'); + * new chai.Assertion(obj).to.be.equal(str); + * }); + * + * Can also be accessed directly from `chai.Assertion`. + * + * chai.Assertion.addMethod('foo', fn); + * + * Then can be used as any other assertion. + * + * expect(fooStr).to.be.foo('bar'); + * + * @param {Object} ctx object to which the method is added + * @param {String} name of method to add + * @param {Function} method function to be used for name + * @namespace Utils + * @name addMethod + * @api public + */ +var flag = require('./flag'); + +module.exports = function (ctx, name, method) { + ctx[name] = function () { + var old_ssfi = flag(this, 'ssfi'); + if (old_ssfi && config.includeStack === false) + flag(this, 'ssfi', ctx[name]); + var result = method.apply(this, arguments); + return result === undefined ? this : result; + }; +}; + +},{"../config":4,"./flag":13}],11:[function(require,module,exports){ +/*! + * Chai - addProperty utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +var config = require('../config'); +var flag = require('./flag'); + +/** + * ### addProperty (ctx, name, getter) + * + * Adds a property to the prototype of an object. + * + * utils.addProperty(chai.Assertion.prototype, 'foo', function () { + * var obj = utils.flag(this, 'object'); + * new chai.Assertion(obj).to.be.instanceof(Foo); + * }); + * + * Can also be accessed directly from `chai.Assertion`. + * + * chai.Assertion.addProperty('foo', fn); + * + * Then can be used as any other assertion. + * + * expect(myFoo).to.be.foo; + * + * @param {Object} ctx object to which the property is added + * @param {String} name of property to add + * @param {Function} getter function to be used for name + * @namespace Utils + * @name addProperty + * @api public + */ + +module.exports = function (ctx, name, getter) { + Object.defineProperty(ctx, name, + { get: function addProperty() { + var old_ssfi = flag(this, 'ssfi'); + if (old_ssfi && config.includeStack === false) + flag(this, 'ssfi', addProperty); + + var result = getter.call(this); + return result === undefined ? this : result; + } + , configurable: true + }); +}; + +},{"../config":4,"./flag":13}],12:[function(require,module,exports){ +/*! + * Chai - expectTypes utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### expectTypes(obj, types) + * + * Ensures that the object being tested against is of a valid type. + * + * utils.expectTypes(this, ['array', 'object', 'string']); + * + * @param {Mixed} obj constructed Assertion + * @param {Array} type A list of allowed types for this assertion + * @namespace Utils + * @name expectTypes + * @api public + */ + +var AssertionError = require('assertion-error'); +var flag = require('./flag'); +var type = require('type-detect'); + +module.exports = function (obj, types) { + var obj = flag(obj, 'object'); + types = types.map(function (t) { return t.toLowerCase(); }); + types.sort(); + + // Transforms ['lorem', 'ipsum'] into 'a lirum, or an ipsum' + var str = types.map(function (t, index) { + var art = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(t.charAt(0)) ? 'an' : 'a'; + var or = types.length > 1 && index === types.length - 1 ? 'or ' : ''; + return or + art + ' ' + t; + }).join(', '); + + if (!types.some(function (expected) { return type(obj) === expected; })) { + throw new AssertionError( + 'object tested must be ' + str + ', but ' + type(obj) + ' given' + ); + } +}; + +},{"./flag":13,"assertion-error":30,"type-detect":35}],13:[function(require,module,exports){ +/*! + * Chai - flag utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### flag(object, key, [value]) + * + * Get or set a flag value on an object. If a + * value is provided it will be set, else it will + * return the currently set value or `undefined` if + * the value is not set. + * + * utils.flag(this, 'foo', 'bar'); // setter + * utils.flag(this, 'foo'); // getter, returns `bar` + * + * @param {Object} object constructed Assertion + * @param {String} key + * @param {Mixed} value (optional) + * @namespace Utils + * @name flag + * @api private + */ + +module.exports = function (obj, key, value) { + var flags = obj.__flags || (obj.__flags = Object.create(null)); + if (arguments.length === 3) { + flags[key] = value; + } else { + return flags[key]; + } +}; + +},{}],14:[function(require,module,exports){ +/*! + * Chai - getActual utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * # getActual(object, [actual]) + * + * Returns the `actual` value for an Assertion + * + * @param {Object} object (constructed Assertion) + * @param {Arguments} chai.Assertion.prototype.assert arguments + * @namespace Utils + * @name getActual + */ + +module.exports = function (obj, args) { + return args.length > 4 ? args[4] : obj._obj; +}; + +},{}],15:[function(require,module,exports){ +/*! + * Chai - getEnumerableProperties utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### .getEnumerableProperties(object) + * + * This allows the retrieval of enumerable property names of an object, + * inherited or not. + * + * @param {Object} object + * @returns {Array} + * @namespace Utils + * @name getEnumerableProperties + * @api public + */ + +module.exports = function getEnumerableProperties(object) { + var result = []; + for (var name in object) { + result.push(name); + } + return result; +}; + +},{}],16:[function(require,module,exports){ +/*! + * Chai - message composition utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/*! + * Module dependancies + */ + +var flag = require('./flag') + , getActual = require('./getActual') + , inspect = require('./inspect') + , objDisplay = require('./objDisplay'); + +/** + * ### .getMessage(object, message, negateMessage) + * + * Construct the error message based on flags + * and template tags. Template tags will return + * a stringified inspection of the object referenced. + * + * Message template tags: + * - `#{this}` current asserted object + * - `#{act}` actual value + * - `#{exp}` expected value + * + * @param {Object} object (constructed Assertion) + * @param {Arguments} chai.Assertion.prototype.assert arguments + * @namespace Utils + * @name getMessage + * @api public + */ + +module.exports = function (obj, args) { + var negate = flag(obj, 'negate') + , val = flag(obj, 'object') + , expected = args[3] + , actual = getActual(obj, args) + , msg = negate ? args[2] : args[1] + , flagMsg = flag(obj, 'message'); + + if(typeof msg === "function") msg = msg(); + msg = msg || ''; + msg = msg + .replace(/#\{this\}/g, function () { return objDisplay(val); }) + .replace(/#\{act\}/g, function () { return objDisplay(actual); }) + .replace(/#\{exp\}/g, function () { return objDisplay(expected); }); + + return flagMsg ? flagMsg + ': ' + msg : msg; +}; + +},{"./flag":13,"./getActual":14,"./inspect":23,"./objDisplay":24}],17:[function(require,module,exports){ +/*! + * Chai - getName utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * # getName(func) + * + * Gets the name of a function, in a cross-browser way. + * + * @param {Function} a function (usually a constructor) + * @namespace Utils + * @name getName + */ + +module.exports = function (func) { + if (func.name) return func.name; + + var match = /^\s?function ([^(]*)\(/.exec(func); + return match && match[1] ? match[1] : ""; +}; + +},{}],18:[function(require,module,exports){ +/*! + * Chai - getPathInfo utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +var hasProperty = require('./hasProperty'); + +/** + * ### .getPathInfo(path, object) + * + * This allows the retrieval of property info in an + * object given a string path. + * + * The path info consists of an object with the + * following properties: + * + * * parent - The parent object of the property referenced by `path` + * * name - The name of the final property, a number if it was an array indexer + * * value - The value of the property, if it exists, otherwise `undefined` + * * exists - Whether the property exists or not + * + * @param {String} path + * @param {Object} object + * @returns {Object} info + * @namespace Utils + * @name getPathInfo + * @api public + */ + +module.exports = function getPathInfo(path, obj) { + var parsed = parsePath(path), + last = parsed[parsed.length - 1]; + + var info = { + parent: parsed.length > 1 ? _getPathValue(parsed, obj, parsed.length - 1) : obj, + name: last.p || last.i, + value: _getPathValue(parsed, obj) + }; + info.exists = hasProperty(info.name, info.parent); + + return info; +}; + + +/*! + * ## parsePath(path) + * + * Helper function used to parse string object + * paths. Use in conjunction with `_getPathValue`. + * + * var parsed = parsePath('myobject.property.subprop'); + * + * ### Paths: + * + * * Can be as near infinitely deep and nested + * * Arrays are also valid using the formal `myobject.document[3].property`. + * * Literal dots and brackets (not delimiter) must be backslash-escaped. + * + * @param {String} path + * @returns {Object} parsed + * @api private + */ + +function parsePath (path) { + var str = path.replace(/([^\\])\[/g, '$1.[') + , parts = str.match(/(\\\.|[^.]+?)+/g); + return parts.map(function (value) { + var re = /^\[(\d+)\]$/ + , mArr = re.exec(value); + if (mArr) return { i: parseFloat(mArr[1]) }; + else return { p: value.replace(/\\([.\[\]])/g, '$1') }; + }); +} + + +/*! + * ## _getPathValue(parsed, obj) + * + * Helper companion function for `.parsePath` that returns + * the value located at the parsed address. + * + * var value = getPathValue(parsed, obj); + * + * @param {Object} parsed definition from `parsePath`. + * @param {Object} object to search against + * @param {Number} object to search against + * @returns {Object|Undefined} value + * @api private + */ + +function _getPathValue (parsed, obj, index) { + var tmp = obj + , res; + + index = (index === undefined ? parsed.length : index); + + for (var i = 0, l = index; i < l; i++) { + var part = parsed[i]; + if (tmp) { + if ('undefined' !== typeof part.p) + tmp = tmp[part.p]; + else if ('undefined' !== typeof part.i) + tmp = tmp[part.i]; + if (i == (l - 1)) res = tmp; + } else { + res = undefined; + } + } + return res; +} + +},{"./hasProperty":21}],19:[function(require,module,exports){ +/*! + * Chai - getPathValue utility + * Copyright(c) 2012-2014 Jake Luer + * @see https://github.com/logicalparadox/filtr + * MIT Licensed + */ + +var getPathInfo = require('./getPathInfo'); + +/** + * ### .getPathValue(path, object) + * + * This allows the retrieval of values in an + * object given a string path. + * + * var obj = { + * prop1: { + * arr: ['a', 'b', 'c'] + * , str: 'Hello' + * } + * , prop2: { + * arr: [ { nested: 'Universe' } ] + * , str: 'Hello again!' + * } + * } + * + * The following would be the results. + * + * getPathValue('prop1.str', obj); // Hello + * getPathValue('prop1.att[2]', obj); // b + * getPathValue('prop2.arr[0].nested', obj); // Universe + * + * @param {String} path + * @param {Object} object + * @returns {Object} value or `undefined` + * @namespace Utils + * @name getPathValue + * @api public + */ +module.exports = function(path, obj) { + var info = getPathInfo(path, obj); + return info.value; +}; + +},{"./getPathInfo":18}],20:[function(require,module,exports){ +/*! + * Chai - getProperties utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### .getProperties(object) + * + * This allows the retrieval of property names of an object, enumerable or not, + * inherited or not. + * + * @param {Object} object + * @returns {Array} + * @namespace Utils + * @name getProperties + * @api public + */ + +module.exports = function getProperties(object) { + var result = Object.getOwnPropertyNames(object); + + function addProperty(property) { + if (result.indexOf(property) === -1) { + result.push(property); + } + } + + var proto = Object.getPrototypeOf(object); + while (proto !== null) { + Object.getOwnPropertyNames(proto).forEach(addProperty); + proto = Object.getPrototypeOf(proto); + } + + return result; +}; + +},{}],21:[function(require,module,exports){ +/*! + * Chai - hasProperty utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +var type = require('type-detect'); + +/** + * ### .hasProperty(object, name) + * + * This allows checking whether an object has + * named property or numeric array index. + * + * Basically does the same thing as the `in` + * operator but works properly with natives + * and null/undefined values. + * + * var obj = { + * arr: ['a', 'b', 'c'] + * , str: 'Hello' + * } + * + * The following would be the results. + * + * hasProperty('str', obj); // true + * hasProperty('constructor', obj); // true + * hasProperty('bar', obj); // false + * + * hasProperty('length', obj.str); // true + * hasProperty(1, obj.str); // true + * hasProperty(5, obj.str); // false + * + * hasProperty('length', obj.arr); // true + * hasProperty(2, obj.arr); // true + * hasProperty(3, obj.arr); // false + * + * @param {Objuect} object + * @param {String|Number} name + * @returns {Boolean} whether it exists + * @namespace Utils + * @name getPathInfo + * @api public + */ + +var literals = { + 'number': Number + , 'string': String +}; + +module.exports = function hasProperty(name, obj) { + var ot = type(obj); + + // Bad Object, obviously no props at all + if(ot === 'null' || ot === 'undefined') + return false; + + // The `in` operator does not work with certain literals + // box these before the check + if(literals[ot] && typeof obj !== 'object') + obj = new literals[ot](obj); + + return name in obj; +}; + +},{"type-detect":35}],22:[function(require,module,exports){ +/*! + * chai + * Copyright(c) 2011 Jake Luer + * MIT Licensed + */ + +/*! + * Main exports + */ + +var exports = module.exports = {}; + +/*! + * test utility + */ + +exports.test = require('./test'); + +/*! + * type utility + */ + +exports.type = require('type-detect'); + +/*! + * expectTypes utility + */ +exports.expectTypes = require('./expectTypes'); + +/*! + * message utility + */ + +exports.getMessage = require('./getMessage'); + +/*! + * actual utility + */ + +exports.getActual = require('./getActual'); + +/*! + * Inspect util + */ + +exports.inspect = require('./inspect'); + +/*! + * Object Display util + */ + +exports.objDisplay = require('./objDisplay'); + +/*! + * Flag utility + */ + +exports.flag = require('./flag'); + +/*! + * Flag transferring utility + */ + +exports.transferFlags = require('./transferFlags'); + +/*! + * Deep equal utility + */ + +exports.eql = require('deep-eql'); + +/*! + * Deep path value + */ + +exports.getPathValue = require('./getPathValue'); + +/*! + * Deep path info + */ + +exports.getPathInfo = require('./getPathInfo'); + +/*! + * Check if a property exists + */ + +exports.hasProperty = require('./hasProperty'); + +/*! + * Function name + */ + +exports.getName = require('./getName'); + +/*! + * add Property + */ + +exports.addProperty = require('./addProperty'); + +/*! + * add Method + */ + +exports.addMethod = require('./addMethod'); + +/*! + * overwrite Property + */ + +exports.overwriteProperty = require('./overwriteProperty'); + +/*! + * overwrite Method + */ + +exports.overwriteMethod = require('./overwriteMethod'); + +/*! + * Add a chainable method + */ + +exports.addChainableMethod = require('./addChainableMethod'); + +/*! + * Overwrite chainable method + */ + +exports.overwriteChainableMethod = require('./overwriteChainableMethod'); + +},{"./addChainableMethod":9,"./addMethod":10,"./addProperty":11,"./expectTypes":12,"./flag":13,"./getActual":14,"./getMessage":16,"./getName":17,"./getPathInfo":18,"./getPathValue":19,"./hasProperty":21,"./inspect":23,"./objDisplay":24,"./overwriteChainableMethod":25,"./overwriteMethod":26,"./overwriteProperty":27,"./test":28,"./transferFlags":29,"deep-eql":31,"type-detect":35}],23:[function(require,module,exports){ +// This is (almost) directly from Node.js utils +// https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js + +var getName = require('./getName'); +var getProperties = require('./getProperties'); +var getEnumerableProperties = require('./getEnumerableProperties'); + +module.exports = inspect; + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Boolean} showHidden Flag that shows hidden (not enumerable) + * properties of objects. + * @param {Number} depth Depth in which to descend in object. Default is 2. + * @param {Boolean} colors Flag to turn on ANSI escape codes to color the + * output. Default is false (no coloring). + * @namespace Utils + * @name inspect + */ +function inspect(obj, showHidden, depth, colors) { + var ctx = { + showHidden: showHidden, + seen: [], + stylize: function (str) { return str; } + }; + return formatValue(ctx, obj, (typeof depth === 'undefined' ? 2 : depth)); +} + +// Returns true if object is a DOM element. +var isDOMElement = function (object) { + if (typeof HTMLElement === 'object') { + return object instanceof HTMLElement; + } else { + return object && + typeof object === 'object' && + object.nodeType === 1 && + typeof object.nodeName === 'string'; + } +}; + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (value && typeof value.inspect === 'function' && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes); + if (typeof ret !== 'string') { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // If this is a DOM element, try to get the outer HTML. + if (isDOMElement(value)) { + if ('outerHTML' in value) { + return value.outerHTML; + // This value does not have an outerHTML attribute, + // it could still be an XML element + } else { + // Attempt to serialize it + try { + if (document.xmlVersion) { + var xmlSerializer = new XMLSerializer(); + return xmlSerializer.serializeToString(value); + } else { + // Firefox 11- do not support outerHTML + // It does, however, support innerHTML + // Use the following to render the element + var ns = "http://www.w3.org/1999/xhtml"; + var container = document.createElementNS(ns, '_'); + + container.appendChild(value.cloneNode(false)); + html = container.innerHTML + .replace('><', '>' + value.innerHTML + '<'); + container.innerHTML = ''; + return html; + } + } catch (err) { + // This could be a non-native DOM implementation, + // continue with the normal flow: + // printing the element as if it is an object. + } + } + } + + // Look up the keys of the object. + var visibleKeys = getEnumerableProperties(value); + var keys = ctx.showHidden ? getProperties(value) : visibleKeys; + + // Some type of object without properties can be shortcutted. + // In IE, errors have a single `stack` property, or if they are vanilla `Error`, + // a `stack` plus `description` property; ignore those for consistency. + if (keys.length === 0 || (isError(value) && ( + (keys.length === 1 && keys[0] === 'stack') || + (keys.length === 2 && keys[0] === 'description' && keys[1] === 'stack') + ))) { + if (typeof value === 'function') { + var name = getName(value); + var nameSuffix = name ? ': ' + name : ''; + return ctx.stylize('[Function' + nameSuffix + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toUTCString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (typeof value === 'function') { + var name = getName(value); + var nameSuffix = name ? ': ' + name : ''; + base = ' [Function' + nameSuffix + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + return formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + switch (typeof value) { + case 'undefined': + return ctx.stylize('undefined', 'undefined'); + + case 'string': + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + + case 'number': + if (value === 0 && (1/value) === -Infinity) { + return ctx.stylize('-0', 'number'); + } + return ctx.stylize('' + value, 'number'); + + case 'boolean': + return ctx.stylize('' + value, 'boolean'); + } + // For some reason typeof null is "object", so special case here. + if (value === null) { + return ctx.stylize('null', 'null'); + } +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (Object.prototype.hasOwnProperty.call(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str; + if (value.__lookupGetter__) { + if (value.__lookupGetter__(key)) { + if (value.__lookupSetter__(key)) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (value.__lookupSetter__(key)) { + str = ctx.stylize('[Setter]', 'special'); + } + } + } + if (visibleKeys.indexOf(key) < 0) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(value[key]) < 0) { + if (recurseTimes === null) { + str = formatValue(ctx, value[key], null); + } else { + str = formatValue(ctx, value[key], recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (typeof name === 'undefined') { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + +function isArray(ar) { + return Array.isArray(ar) || + (typeof ar === 'object' && objectToString(ar) === '[object Array]'); +} + +function isRegExp(re) { + return typeof re === 'object' && objectToString(re) === '[object RegExp]'; +} + +function isDate(d) { + return typeof d === 'object' && objectToString(d) === '[object Date]'; +} + +function isError(e) { + return typeof e === 'object' && objectToString(e) === '[object Error]'; +} + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + +},{"./getEnumerableProperties":15,"./getName":17,"./getProperties":20}],24:[function(require,module,exports){ +/*! + * Chai - flag utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/*! + * Module dependancies + */ + +var inspect = require('./inspect'); +var config = require('../config'); + +/** + * ### .objDisplay (object) + * + * Determines if an object or an array matches + * criteria to be inspected in-line for error + * messages or should be truncated. + * + * @param {Mixed} javascript object to inspect + * @name objDisplay + * @namespace Utils + * @api public + */ + +module.exports = function (obj) { + var str = inspect(obj) + , type = Object.prototype.toString.call(obj); + + if (config.truncateThreshold && str.length >= config.truncateThreshold) { + if (type === '[object Function]') { + return !obj.name || obj.name === '' + ? '[Function]' + : '[Function: ' + obj.name + ']'; + } else if (type === '[object Array]') { + return '[ Array(' + obj.length + ') ]'; + } else if (type === '[object Object]') { + var keys = Object.keys(obj) + , kstr = keys.length > 2 + ? keys.splice(0, 2).join(', ') + ', ...' + : keys.join(', '); + return '{ Object (' + kstr + ') }'; + } else { + return str; + } + } else { + return str; + } +}; + +},{"../config":4,"./inspect":23}],25:[function(require,module,exports){ +/*! + * Chai - overwriteChainableMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### overwriteChainableMethod (ctx, name, method, chainingBehavior) + * + * Overwites an already existing chainable method + * and provides access to the previous function or + * property. Must return functions to be used for + * name. + * + * utils.overwriteChainableMethod(chai.Assertion.prototype, 'length', + * function (_super) { + * } + * , function (_super) { + * } + * ); + * + * Can also be accessed directly from `chai.Assertion`. + * + * chai.Assertion.overwriteChainableMethod('foo', fn, fn); + * + * Then can be used as any other assertion. + * + * expect(myFoo).to.have.length(3); + * expect(myFoo).to.have.length.above(3); + * + * @param {Object} ctx object whose method / property is to be overwritten + * @param {String} name of method / property to overwrite + * @param {Function} method function that returns a function to be used for name + * @param {Function} chainingBehavior function that returns a function to be used for property + * @namespace Utils + * @name overwriteChainableMethod + * @api public + */ + +module.exports = function (ctx, name, method, chainingBehavior) { + var chainableBehavior = ctx.__methods[name]; + + var _chainingBehavior = chainableBehavior.chainingBehavior; + chainableBehavior.chainingBehavior = function () { + var result = chainingBehavior(_chainingBehavior).call(this); + return result === undefined ? this : result; + }; + + var _method = chainableBehavior.method; + chainableBehavior.method = function () { + var result = method(_method).apply(this, arguments); + return result === undefined ? this : result; + }; +}; + +},{}],26:[function(require,module,exports){ +/*! + * Chai - overwriteMethod utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### overwriteMethod (ctx, name, fn) + * + * Overwites an already existing method and provides + * access to previous function. Must return function + * to be used for name. + * + * utils.overwriteMethod(chai.Assertion.prototype, 'equal', function (_super) { + * return function (str) { + * var obj = utils.flag(this, 'object'); + * if (obj instanceof Foo) { + * new chai.Assertion(obj.value).to.equal(str); + * } else { + * _super.apply(this, arguments); + * } + * } + * }); + * + * Can also be accessed directly from `chai.Assertion`. + * + * chai.Assertion.overwriteMethod('foo', fn); + * + * Then can be used as any other assertion. + * + * expect(myFoo).to.equal('bar'); + * + * @param {Object} ctx object whose method is to be overwritten + * @param {String} name of method to overwrite + * @param {Function} method function that returns a function to be used for name + * @namespace Utils + * @name overwriteMethod + * @api public + */ + +module.exports = function (ctx, name, method) { + var _method = ctx[name] + , _super = function () { return this; }; + + if (_method && 'function' === typeof _method) + _super = _method; + + ctx[name] = function () { + var result = method(_super).apply(this, arguments); + return result === undefined ? this : result; + } +}; + +},{}],27:[function(require,module,exports){ +/*! + * Chai - overwriteProperty utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### overwriteProperty (ctx, name, fn) + * + * Overwites an already existing property getter and provides + * access to previous value. Must return function to use as getter. + * + * utils.overwriteProperty(chai.Assertion.prototype, 'ok', function (_super) { + * return function () { + * var obj = utils.flag(this, 'object'); + * if (obj instanceof Foo) { + * new chai.Assertion(obj.name).to.equal('bar'); + * } else { + * _super.call(this); + * } + * } + * }); + * + * + * Can also be accessed directly from `chai.Assertion`. + * + * chai.Assertion.overwriteProperty('foo', fn); + * + * Then can be used as any other assertion. + * + * expect(myFoo).to.be.ok; + * + * @param {Object} ctx object whose property is to be overwritten + * @param {String} name of property to overwrite + * @param {Function} getter function that returns a getter function to be used for name + * @namespace Utils + * @name overwriteProperty + * @api public + */ + +module.exports = function (ctx, name, getter) { + var _get = Object.getOwnPropertyDescriptor(ctx, name) + , _super = function () {}; + + if (_get && 'function' === typeof _get.get) + _super = _get.get + + Object.defineProperty(ctx, name, + { get: function () { + var result = getter(_super).call(this); + return result === undefined ? this : result; + } + , configurable: true + }); +}; + +},{}],28:[function(require,module,exports){ +/*! + * Chai - test utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/*! + * Module dependancies + */ + +var flag = require('./flag'); + +/** + * # test(object, expression) + * + * Test and object for expression. + * + * @param {Object} object (constructed Assertion) + * @param {Arguments} chai.Assertion.prototype.assert arguments + * @namespace Utils + * @name test + */ + +module.exports = function (obj, args) { + var negate = flag(obj, 'negate') + , expr = args[0]; + return negate ? !expr : expr; +}; + +},{"./flag":13}],29:[function(require,module,exports){ +/*! + * Chai - transferFlags utility + * Copyright(c) 2012-2014 Jake Luer + * MIT Licensed + */ + +/** + * ### transferFlags(assertion, object, includeAll = true) + * + * Transfer all the flags for `assertion` to `object`. If + * `includeAll` is set to `false`, then the base Chai + * assertion flags (namely `object`, `ssfi`, and `message`) + * will not be transferred. + * + * + * var newAssertion = new Assertion(); + * utils.transferFlags(assertion, newAssertion); + * + * var anotherAsseriton = new Assertion(myObj); + * utils.transferFlags(assertion, anotherAssertion, false); + * + * @param {Assertion} assertion the assertion to transfer the flags from + * @param {Object} object the object to transfer the flags to; usually a new assertion + * @param {Boolean} includeAll + * @namespace Utils + * @name transferFlags + * @api private + */ + +module.exports = function (assertion, object, includeAll) { + var flags = assertion.__flags || (assertion.__flags = Object.create(null)); + + if (!object.__flags) { + object.__flags = Object.create(null); + } + + includeAll = arguments.length === 3 ? includeAll : true; + + for (var flag in flags) { + if (includeAll || + (flag !== 'object' && flag !== 'ssfi' && flag != 'message')) { + object.__flags[flag] = flags[flag]; + } + } +}; + +},{}],30:[function(require,module,exports){ +/*! + * assertion-error + * Copyright(c) 2013 Jake Luer + * MIT Licensed + */ + +/*! + * Return a function that will copy properties from + * one object to another excluding any originally + * listed. Returned function will create a new `{}`. + * + * @param {String} excluded properties ... + * @return {Function} + */ + +function exclude () { + var excludes = [].slice.call(arguments); + + function excludeProps (res, obj) { + Object.keys(obj).forEach(function (key) { + if (!~excludes.indexOf(key)) res[key] = obj[key]; + }); + } + + return function extendExclude () { + var args = [].slice.call(arguments) + , i = 0 + , res = {}; + + for (; i < args.length; i++) { + excludeProps(res, args[i]); + } + + return res; + }; +}; + +/*! + * Primary Exports + */ + +module.exports = AssertionError; + +/** + * ### AssertionError + * + * An extension of the JavaScript `Error` constructor for + * assertion and validation scenarios. + * + * @param {String} message + * @param {Object} properties to include (optional) + * @param {callee} start stack function (optional) + */ + +function AssertionError (message, _props, ssf) { + var extend = exclude('name', 'message', 'stack', 'constructor', 'toJSON') + , props = extend(_props || {}); + + // default values + this.message = message || 'Unspecified AssertionError'; + this.showDiff = false; + + // copy from properties + for (var key in props) { + this[key] = props[key]; + } + + // capture stack trace + ssf = ssf || arguments.callee; + if (ssf && Error.captureStackTrace) { + Error.captureStackTrace(this, ssf); + } else { + this.stack = new Error().stack; + } +} + +/*! + * Inherit from Error.prototype + */ + +AssertionError.prototype = Object.create(Error.prototype); + +/*! + * Statically set name + */ + +AssertionError.prototype.name = 'AssertionError'; + +/*! + * Ensure correct constructor + */ + +AssertionError.prototype.constructor = AssertionError; + +/** + * Allow errors to be converted to JSON for static transfer. + * + * @param {Boolean} include stack (default: `true`) + * @return {Object} object that can be `JSON.stringify` + */ + +AssertionError.prototype.toJSON = function (stack) { + var extend = exclude('constructor', 'toJSON', 'stack') + , props = extend({ name: this.name }, this); + + // include stack if exists and not turned off + if (false !== stack && this.stack) { + props.stack = this.stack; + } + + return props; +}; + +},{}],31:[function(require,module,exports){ +module.exports = require('./lib/eql'); + +},{"./lib/eql":32}],32:[function(require,module,exports){ +/*! + * deep-eql + * Copyright(c) 2013 Jake Luer + * MIT Licensed + */ + +/*! + * Module dependencies + */ + +var type = require('type-detect'); + +/*! + * Buffer.isBuffer browser shim + */ + +var Buffer; +try { Buffer = require('buffer').Buffer; } +catch(ex) { + Buffer = {}; + Buffer.isBuffer = function() { return false; } +} + +/*! + * Primary Export + */ + +module.exports = deepEqual; + +/** + * Assert super-strict (egal) equality between + * two objects of any type. + * + * @param {Mixed} a + * @param {Mixed} b + * @param {Array} memoised (optional) + * @return {Boolean} equal match + */ + +function deepEqual(a, b, m) { + if (sameValue(a, b)) { + return true; + } else if ('date' === type(a)) { + return dateEqual(a, b); + } else if ('regexp' === type(a)) { + return regexpEqual(a, b); + } else if (Buffer.isBuffer(a)) { + return bufferEqual(a, b); + } else if ('arguments' === type(a)) { + return argumentsEqual(a, b, m); + } else if (!typeEqual(a, b)) { + return false; + } else if (('object' !== type(a) && 'object' !== type(b)) + && ('array' !== type(a) && 'array' !== type(b))) { + return sameValue(a, b); + } else { + return objectEqual(a, b, m); + } +} + +/*! + * Strict (egal) equality test. Ensures that NaN always + * equals NaN and `-0` does not equal `+0`. + * + * @param {Mixed} a + * @param {Mixed} b + * @return {Boolean} equal match + */ + +function sameValue(a, b) { + if (a === b) return a !== 0 || 1 / a === 1 / b; + return a !== a && b !== b; +} + +/*! + * Compare the types of two given objects and + * return if they are equal. Note that an Array + * has a type of `array` (not `object`) and arguments + * have a type of `arguments` (not `array`/`object`). + * + * @param {Mixed} a + * @param {Mixed} b + * @return {Boolean} result + */ + +function typeEqual(a, b) { + return type(a) === type(b); +} + +/*! + * Compare two Date objects by asserting that + * the time values are equal using `saveValue`. + * + * @param {Date} a + * @param {Date} b + * @return {Boolean} result + */ + +function dateEqual(a, b) { + if ('date' !== type(b)) return false; + return sameValue(a.getTime(), b.getTime()); +} + +/*! + * Compare two regular expressions by converting them + * to string and checking for `sameValue`. + * + * @param {RegExp} a + * @param {RegExp} b + * @return {Boolean} result + */ + +function regexpEqual(a, b) { + if ('regexp' !== type(b)) return false; + return sameValue(a.toString(), b.toString()); +} + +/*! + * Assert deep equality of two `arguments` objects. + * Unfortunately, these must be sliced to arrays + * prior to test to ensure no bad behavior. + * + * @param {Arguments} a + * @param {Arguments} b + * @param {Array} memoize (optional) + * @return {Boolean} result + */ + +function argumentsEqual(a, b, m) { + if ('arguments' !== type(b)) return false; + a = [].slice.call(a); + b = [].slice.call(b); + return deepEqual(a, b, m); +} + +/*! + * Get enumerable properties of a given object. + * + * @param {Object} a + * @return {Array} property names + */ + +function enumerable(a) { + var res = []; + for (var key in a) res.push(key); + return res; +} + +/*! + * Simple equality for flat iterable objects + * such as Arrays or Node.js buffers. + * + * @param {Iterable} a + * @param {Iterable} b + * @return {Boolean} result + */ + +function iterableEqual(a, b) { + if (a.length !== b.length) return false; + + var i = 0; + var match = true; + + for (; i < a.length; i++) { + if (a[i] !== b[i]) { + match = false; + break; + } + } + + return match; +} + +/*! + * Extension to `iterableEqual` specifically + * for Node.js Buffers. + * + * @param {Buffer} a + * @param {Mixed} b + * @return {Boolean} result + */ + +function bufferEqual(a, b) { + if (!Buffer.isBuffer(b)) return false; + return iterableEqual(a, b); +} + +/*! + * Block for `objectEqual` ensuring non-existing + * values don't get in. + * + * @param {Mixed} object + * @return {Boolean} result + */ + +function isValue(a) { + return a !== null && a !== undefined; +} + +/*! + * Recursively check the equality of two objects. + * Once basic sameness has been established it will + * defer to `deepEqual` for each enumerable key + * in the object. + * + * @param {Mixed} a + * @param {Mixed} b + * @return {Boolean} result + */ + +function objectEqual(a, b, m) { + if (!isValue(a) || !isValue(b)) { + return false; + } + + if (a.prototype !== b.prototype) { + return false; + } + + var i; + if (m) { + for (i = 0; i < m.length; i++) { + if ((m[i][0] === a && m[i][1] === b) + || (m[i][0] === b && m[i][1] === a)) { + return true; + } + } + } else { + m = []; + } + + try { + var ka = enumerable(a); + var kb = enumerable(b); + } catch (ex) { + return false; + } + + ka.sort(); + kb.sort(); + + if (!iterableEqual(ka, kb)) { + return false; + } + + m.push([ a, b ]); + + var key; + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!deepEqual(a[key], b[key], m)) { + return false; + } + } + + return true; +} + +},{"buffer":undefined,"type-detect":33}],33:[function(require,module,exports){ +module.exports = require('./lib/type'); + +},{"./lib/type":34}],34:[function(require,module,exports){ +/*! + * type-detect + * Copyright(c) 2013 jake luer + * MIT Licensed + */ + +/*! + * Primary Exports + */ + +var exports = module.exports = getType; + +/*! + * Detectable javascript natives + */ + +var natives = { + '[object Array]': 'array' + , '[object RegExp]': 'regexp' + , '[object Function]': 'function' + , '[object Arguments]': 'arguments' + , '[object Date]': 'date' +}; + +/** + * ### typeOf (obj) + * + * Use several different techniques to determine + * the type of object being tested. + * + * + * @param {Mixed} object + * @return {String} object type + * @api public + */ + +function getType (obj) { + var str = Object.prototype.toString.call(obj); + if (natives[str]) return natives[str]; + if (obj === null) return 'null'; + if (obj === undefined) return 'undefined'; + if (obj === Object(obj)) return 'object'; + return typeof obj; +} + +exports.Library = Library; + +/** + * ### Library + * + * Create a repository for custom type detection. + * + * ```js + * var lib = new type.Library; + * ``` + * + */ + +function Library () { + this.tests = {}; +} + +/** + * #### .of (obj) + * + * Expose replacement `typeof` detection to the library. + * + * ```js + * if ('string' === lib.of('hello world')) { + * // ... + * } + * ``` + * + * @param {Mixed} object to test + * @return {String} type + */ + +Library.prototype.of = getType; + +/** + * #### .define (type, test) + * + * Add a test to for the `.test()` assertion. + * + * Can be defined as a regular expression: + * + * ```js + * lib.define('int', /^[0-9]+$/); + * ``` + * + * ... or as a function: + * + * ```js + * lib.define('bln', function (obj) { + * if ('boolean' === lib.of(obj)) return true; + * var blns = [ 'yes', 'no', 'true', 'false', 1, 0 ]; + * if ('string' === lib.of(obj)) obj = obj.toLowerCase(); + * return !! ~blns.indexOf(obj); + * }); + * ``` + * + * @param {String} type + * @param {RegExp|Function} test + * @api public + */ + +Library.prototype.define = function (type, test) { + if (arguments.length === 1) return this.tests[type]; + this.tests[type] = test; + return this; +}; + +/** + * #### .test (obj, test) + * + * Assert that an object is of type. Will first + * check natives, and if that does not pass it will + * use the user defined custom tests. + * + * ```js + * assert(lib.test('1', 'int')); + * assert(lib.test('yes', 'bln')); + * ``` + * + * @param {Mixed} object + * @param {String} type + * @return {Boolean} result + * @api public + */ + +Library.prototype.test = function (obj, type) { + if (type === getType(obj)) return true; + var test = this.tests[type]; + + if (test && 'regexp' === getType(test)) { + return test.test(obj); + } else if (test && 'function' === getType(test)) { + return test(obj); + } else { + throw new ReferenceError('Type test "' + type + '" not defined or invalid.'); + } +}; + +},{}],35:[function(require,module,exports){ +arguments[4][33][0].apply(exports,arguments) +},{"./lib/type":36,"dup":33}],36:[function(require,module,exports){ +/*! + * type-detect + * Copyright(c) 2013 jake luer + * MIT Licensed + */ + +/*! + * Primary Exports + */ + +var exports = module.exports = getType; + +/** + * ### typeOf (obj) + * + * Use several different techniques to determine + * the type of object being tested. + * + * + * @param {Mixed} object + * @return {String} object type + * @api public + */ +var objectTypeRegexp = /^\[object (.*)\]$/; + +function getType(obj) { + var type = Object.prototype.toString.call(obj).match(objectTypeRegexp)[1].toLowerCase(); + // Let "new String('')" return 'object' + if (typeof Promise === 'function' && obj instanceof Promise) return 'promise'; + // PhantomJS has type "DOMWindow" for null + if (obj === null) return 'null'; + // PhantomJS has type "DOMWindow" for undefined + if (obj === undefined) return 'undefined'; + return type; +} + +exports.Library = Library; + +/** + * ### Library + * + * Create a repository for custom type detection. + * + * ```js + * var lib = new type.Library; + * ``` + * + */ + +function Library() { + if (!(this instanceof Library)) return new Library(); + this.tests = {}; +} + +/** + * #### .of (obj) + * + * Expose replacement `typeof` detection to the library. + * + * ```js + * if ('string' === lib.of('hello world')) { + * // ... + * } + * ``` + * + * @param {Mixed} object to test + * @return {String} type + */ + +Library.prototype.of = getType; + +/** + * #### .define (type, test) + * + * Add a test to for the `.test()` assertion. + * + * Can be defined as a regular expression: + * + * ```js + * lib.define('int', /^[0-9]+$/); + * ``` + * + * ... or as a function: + * + * ```js + * lib.define('bln', function (obj) { + * if ('boolean' === lib.of(obj)) return true; + * var blns = [ 'yes', 'no', 'true', 'false', 1, 0 ]; + * if ('string' === lib.of(obj)) obj = obj.toLowerCase(); + * return !! ~blns.indexOf(obj); + * }); + * ``` + * + * @param {String} type + * @param {RegExp|Function} test + * @api public + */ + +Library.prototype.define = function(type, test) { + if (arguments.length === 1) return this.tests[type]; + this.tests[type] = test; + return this; +}; + +/** + * #### .test (obj, test) + * + * Assert that an object is of type. Will first + * check natives, and if that does not pass it will + * use the user defined custom tests. + * + * ```js + * assert(lib.test('1', 'int')); + * assert(lib.test('yes', 'bln')); + * ``` + * + * @param {Mixed} object + * @param {String} type + * @return {Boolean} result + * @api public + */ + +Library.prototype.test = function(obj, type) { + if (type === getType(obj)) return true; + var test = this.tests[type]; + + if (test && 'regexp' === getType(test)) { + return test.test(obj); + } else if (test && 'function' === getType(test)) { + return test(obj); + } else { + throw new ReferenceError('Type test "' + type + '" not defined or invalid.'); + } +}; + +},{}]},{},[1])(1) +}); \ No newline at end of file diff --git a/bower_components/chai/karma.conf.js b/bower_components/chai/karma.conf.js new file mode 100644 index 00000000..48cf5419 --- /dev/null +++ b/bower_components/chai/karma.conf.js @@ -0,0 +1,28 @@ +module.exports = function(config) { + config.set({ + frameworks: [ 'mocha' ] + , files: [ + 'chai.js' + , 'test/bootstrap/karma.js' + , 'test/*.js' + ] + , reporters: [ 'progress' ] + , colors: true + , logLevel: config.LOG_INFO + , autoWatch: false + , browsers: [ 'PhantomJS' ] + , browserDisconnectTimeout: 10000 + , browserDisconnectTolerance: 2 + , browserNoActivityTimeout: 20000 + , singleRun: true + }); + + switch (process.env.CHAI_TEST_ENV) { + case 'sauce': + require('./karma.sauce')(config); + break; + default: + // ... + break; + }; +}; diff --git a/bower_components/chai/karma.sauce.js b/bower_components/chai/karma.sauce.js new file mode 100644 index 00000000..e57d5e0d --- /dev/null +++ b/bower_components/chai/karma.sauce.js @@ -0,0 +1,41 @@ +var version = require('./package.json').version; +var ts = new Date().getTime(); + +module.exports = function(config) { + var auth; + + try { + auth = require('./test/auth/index'); + } catch(ex) { + auth = {}; + auth.SAUCE_USERNAME = process.env.SAUCE_USERNAME || null; + auth.SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY || null; + } + + if (!auth.SAUCE_USERNAME || !auth.SAUCE_ACCESS_KEY) return; + if (process.env.SKIP_SAUCE) return; + + var branch = process.env.TRAVIS_BRANCH || 'local' + var browserConfig = require('./sauce.browsers'); + var browsers = Object.keys(browserConfig); + var tags = [ 'chaijs_' + version, auth.SAUCE_USERNAME + '@' + branch ]; + var tunnel = process.env.TRAVIS_JOB_NUMBER || ts; + + if (process.env.TRAVIS_JOB_NUMBER) { + tags.push('travis@' + process.env.TRAVIS_JOB_NUMBER); + } + + config.browsers = config.browsers.concat(browsers); + config.customLaunchers = browserConfig; + config.reporters.push('saucelabs'); + config.transports = [ 'xhr-polling' ]; + + config.sauceLabs = { + username: auth.SAUCE_USERNAME + , accessKey: auth.SAUCE_ACCESS_KEY + , startConnect: true + , tags: tags + , testName: 'ChaiJS' + , tunnelIdentifier: tunnel + }; +}; diff --git a/bower_components/chai/package.json b/bower_components/chai/package.json new file mode 100644 index 00000000..d8868553 --- /dev/null +++ b/bower_components/chai/package.json @@ -0,0 +1,51 @@ +{ + "author": "Jake Luer ", + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": [ + "test", + "assertion", + "assert", + "testing", + "chai" + ], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + "Jake Luer ", + "Domenic Denicola (http://domenicdenicola.com)", + "Veselin Todorov ", + "John Firebaugh " + ], + "version": "3.5.0", + "repository": { + "type": "git", + "url": "https://github.com/chaijs/chai" + }, + "bugs": { + "url": "https://github.com/chaijs/chai/issues" + }, + "main": "./index", + "scripts": { + "test": "make test" + }, + "engines": { + "node": ">= 0.4.0" + }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.13.16", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + } +} diff --git a/bower_components/chai/sauce.browsers.js b/bower_components/chai/sauce.browsers.js new file mode 100644 index 00000000..690c7cca --- /dev/null +++ b/bower_components/chai/sauce.browsers.js @@ -0,0 +1,128 @@ + +/*! + * Chrome + */ + +exports['SL_Chrome'] = { + base: 'SauceLabs' + , browserName: 'chrome' +}; + +/*! + * Firefox + */ + +/*! + * TODO: Karma doesn't seem to like this, though sauce boots its up + * + +exports['SL_Firefox_23'] = { + base: 'SauceLabs' + , browserName: 'firefox' + , platform: 'Windows XP' + , version: '23' +}; + +*/ + +exports['SL_Firefox_22'] = { + base: 'SauceLabs' + , browserName: 'firefox' + , platform: 'Windows 7' + , version: '22' +}; + +/*! + * Opera + */ + +exports['SL_Opera_12'] = { + base: 'SauceLabs' + , browserName: 'opera' + , platform: 'Windows 7' + , version: '12' +}; + +exports['SL_Opera_11'] = { + base: 'SauceLabs' + , browserName: 'opera' + , platform: 'Windows 7' + , version: '11' +}; + +/*! + * Internet Explorer + */ + +exports['SL_IE_10'] = { + base: 'SauceLabs' + , browserName: 'internet explorer' + , platform: 'Windows 2012' + , version: '10' +}; + +/*! + * Safari + */ + +exports['SL_Safari_6'] = { + base: 'SauceLabs' + , browserName: 'safari' + , platform: 'Mac 10.8' + , version: '6' +}; + +exports['SL_Safari_5'] = { + base: 'SauceLabs' + , browserName: 'safari' + , platform: 'Mac 10.6' + , version: '5' +}; + +/*! + * iPhone + */ + +/*! + * TODO: These take forever to boot or shut down. Causes timeout. + * + +exports['SL_iPhone_6'] = { + base: 'SauceLabs' + , browserName: 'iphone' + , platform: 'Mac 10.8' + , version: '6' +}; + +exports['SL_iPhone_5-1'] = { + base: 'SauceLabs' + , browserName: 'iphone' + , platform: 'Mac 10.8' + , version: '5.1' +}; + +exports['SL_iPhone_5'] = { + base: 'SauceLabs' + , browserName: 'iphone' + , platform: 'Mac 10.6' + , version: '5' +}; + +*/ + +/*! + * Android + */ + +/*! + * TODO: fails because of error serialization + * + +exports['SL_Android_4'] = { + base: 'SauceLabs' + , browserName: 'android' + , platform: 'Linux' + , version: '4' +}; + +*/ diff --git a/bower_components/existdb-backup/.bower.json b/bower_components/existdb-backup/.bower.json new file mode 100644 index 00000000..68420704 --- /dev/null +++ b/bower_components/existdb-backup/.bower.json @@ -0,0 +1,39 @@ +{ + "name": "existdb-backup", + "description": "a UI for backup", + "main": "existdb-backup.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^2.0.4", + "paper-button": "PolymerElements/paper-button#^2.1.1", + "paper-styles": "PolymerElements/paper-styles#^2.1.0", + "app-layout": "PolymerElements/app-layout#^2.1.1", + "iron-icons": "PolymerElements/iron-icons#^2.1.1", + "iron-icon": "PolymerElements/iron-icon#^2.1.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.1.3", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.2.0", + "paper-card": "PolymerElements/paper-card#^2.1.0", + "paper-dialog": "PolymerElements/paper-dialog#^2.1.1", + "paper-spinner": "PolymerElements/paper-spinner#^2.1.0", + "iron-form": "PolymerElements/iron-form#^2.4.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "homepage": "https://github.com/eXist-db/existdb-backup", + "version": "1.1.0", + "_release": "1.1.0", + "_resolution": { + "type": "version", + "tag": "v1.1.0", + "commit": "28124eef0e677cff8933f5ee0f6b6401765529c8" + }, + "_source": "https://github.com/eXist-db/existdb-backup.git", + "_target": "^1.1.0", + "_originalSource": "https://github.com/eXist-db/existdb-backup.git" +} \ No newline at end of file diff --git a/bower_components/existdb-backup/.gitignore b/bower_components/existdb-backup/.gitignore new file mode 100755 index 00000000..a3757271 --- /dev/null +++ b/bower_components/existdb-backup/.gitignore @@ -0,0 +1,3 @@ +node_modules +build +.idea \ No newline at end of file diff --git a/bower_components/existdb-backup/README.md b/bower_components/existdb-backup/README.md new file mode 100644 index 00000000..82dfc5f3 --- /dev/null +++ b/bower_components/existdb-backup/README.md @@ -0,0 +1,4 @@ +# eXist-db Backup App + +The backup app lists available backups, allows download of zipped backups and triggering of backups. + diff --git a/bower_components/existdb-backup/app-template.iml b/bower_components/existdb-backup/app-template.iml new file mode 100755 index 00000000..8021953e --- /dev/null +++ b/bower_components/existdb-backup/app-template.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-backup/bower.json b/bower_components/existdb-backup/bower.json new file mode 100644 index 00000000..37f7b63a --- /dev/null +++ b/bower_components/existdb-backup/bower.json @@ -0,0 +1,28 @@ +{ + "name": "existdb-backup", + "description": "a UI for backup", + "main": "existdb-backup.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^2.0.4", + "paper-button": "PolymerElements/paper-button#^2.1.1", + "paper-styles": "PolymerElements/paper-styles#^2.1.0", + "app-layout": "PolymerElements/app-layout#^2.1.1", + "iron-icons": "PolymerElements/iron-icons#^2.1.1", + "iron-icon": "PolymerElements/iron-icon#^2.1.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.1.3", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.2.0", + "paper-card": "PolymerElements/paper-card#^2.1.0", + "paper-dialog": "PolymerElements/paper-dialog#^2.1.1", + "paper-spinner": "PolymerElements/paper-spinner#^2.1.0", + "iron-form": "PolymerElements/iron-form#^2.4.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + } +} diff --git a/bower_components/existdb-backup/bower.json.ignores b/bower_components/existdb-backup/bower.json.ignores new file mode 100644 index 00000000..5d317ba4 --- /dev/null +++ b/bower_components/existdb-backup/bower.json.ignores @@ -0,0 +1,26 @@ +{ + "name": "existdb-backup", + "description": "", + "main": "index.html", + "repository": { + "type": "git", + "url": "git://gitlab.exist-db.org:eXistdbElements/existdb-packagemanager.git" + }, + "dependencies": { + }, + "devDependencies": { + }, + "ignore": [ + ".idea", + "build", + "bower_components", + "node_modules", + "test", + "build.xml", + "expath-pkg.xml", + "repo.xml", + "package.json", + "gulpfile.js" + ], + "private": true +} diff --git a/bower_components/existdb-backup/build.xml b/bower_components/existdb-backup/build.xml new file mode 100755 index 00000000..557e22c6 --- /dev/null +++ b/bower_components/existdb-backup/build.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-backup/controller.xql b/bower_components/existdb-backup/controller.xql new file mode 100644 index 00000000..315bc0a2 --- /dev/null +++ b/bower_components/existdb-backup/controller.xql @@ -0,0 +1,83 @@ +xquery version "3.1"; + +declare namespace output="http://exquery.org/ns/rest/annotation/output"; + +import module namespace login="http://exist-db.org/xquery/login" at "resource:org/exist/xquery/modules/persistentlogin/login.xql"; + +declare variable $exist:path external; +declare variable $exist:resource external; +declare variable $exist:controller external; +declare variable $exist:prefix external; +declare variable $exist:root external; +declare variable $exist:context external; + +(: todo: fix url pathes to work in root context :) + +declare variable $local:login-domain := "org.exist.login"; +declare function local:user-allowed ($user) as xs:boolean { + ( + not(empty($user)) and + not($user = "guest") and + sm:is-dba($user) + ) +}; + +let $login := login:set-user($local:login-domain, (), false()) +let $user := request:get-attribute($local:login-domain || ".user") +(: +let $log := util:log("info", "root " || $exist:root) +let $log := util:log("info", "controller " || $exist:controller) +let $log := util:log("info", "requesturi " || request:get-uri()) +let $log := util:log("info", "prefix " || $exist:prefix) +let $log := util:log("info", "context " || $exist:context) +:) + +return ( + request:set-attribute("betterform.filter.ignoreResponseBody", "true"), + if ($exist:path = '/login') + then ( + + + + + + + ) + else if (not(local:user-allowed($user))) + then ( + + + + ) + else if ($exist:path = '') + then ( + + (::) + + + + ) + else if ($exist:path = "/") + then ( + (: forward root path to index.xql :) + + (::) + + + ) + else if (matches($exist:path, ".xql/?$")) + then ( + + { $user } + + + ) + else if(starts-with($exist:path, "/resources")) then + + + + + else ( + + ) +) diff --git a/bower_components/existdb-backup/demo/README.md b/bower_components/existdb-backup/demo/README.md new file mode 100755 index 00000000..57949776 --- /dev/null +++ b/bower_components/existdb-backup/demo/README.md @@ -0,0 +1,4 @@ +# the demo directory + +This directory is meant for showing the capabilities of the app or component and should bring up the whole +app or an example usage of your component as a reference for users. diff --git a/bower_components/existdb-backup/demo/index.html b/bower_components/existdb-backup/demo/index.html new file mode 100644 index 00000000..d5d0ab5c --- /dev/null +++ b/bower_components/existdb-backup/demo/index.html @@ -0,0 +1,30 @@ + + + + + + + existdb-backup demo + + + + + + + + + + + + +
    +

    Basic existdb-backup demo

    + + + +
    + + diff --git a/bower_components/existdb-backup/dependencies-local.html b/bower_components/existdb-backup/dependencies-local.html new file mode 100644 index 00000000..8ca21605 --- /dev/null +++ b/bower_components/existdb-backup/dependencies-local.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-backup/dependencies.html b/bower_components/existdb-backup/dependencies.html new file mode 100644 index 00000000..3e3b475d --- /dev/null +++ b/bower_components/existdb-backup/dependencies.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-backup/existdb-backup-app.html b/bower_components/existdb-backup/existdb-backup-app.html new file mode 100644 index 00000000..8215a65b --- /dev/null +++ b/bower_components/existdb-backup/existdb-backup-app.html @@ -0,0 +1,203 @@ + + + + + + + diff --git a/bower_components/existdb-backup/existdb-backup.html b/bower_components/existdb-backup/existdb-backup.html new file mode 100644 index 00000000..bc5768f3 --- /dev/null +++ b/bower_components/existdb-backup/existdb-backup.html @@ -0,0 +1,326 @@ + + + + + + + diff --git a/bower_components/existdb-backup/existdb-backup.iml b/bower_components/existdb-backup/existdb-backup.iml new file mode 100644 index 00000000..80cc7391 --- /dev/null +++ b/bower_components/existdb-backup/existdb-backup.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-backup/expath-pkg.xml b/bower_components/existdb-backup/expath-pkg.xml new file mode 100644 index 00000000..eb52b2c0 --- /dev/null +++ b/bower_components/existdb-backup/expath-pkg.xml @@ -0,0 +1,4 @@ + + + existdb-backup + \ No newline at end of file diff --git a/bower_components/existdb-backup/gulpfile.js b/bower_components/existdb-backup/gulpfile.js new file mode 100644 index 00000000..4a0dc3b3 --- /dev/null +++ b/bower_components/existdb-backup/gulpfile.js @@ -0,0 +1,120 @@ +'use strict'; + +var gulp = require('gulp'), + exist = require('gulp-exist'), + watch = require('gulp-watch'), + less = require('gulp-less'), + del = require('del'), + path = require('path'), + LessPluginCleanCSS = require('less-plugin-clean-css'), + LessAutoprefix = require('less-plugin-autoprefix') + +var PRODUCTION = (!!process.env.NODE_ENV || process.env.NODE_ENV === 'production') + +console.log('Production? %s', PRODUCTION) + +exist.defineMimeTypes({ + 'application/xml': ['odd'] +}) + +var exClient = exist.createClient({ + host: 'localhost', + port: '8080', + path: '/exist/xmlrpc', + basic_auth: {user: 'admin', pass: ''} +}) + +var html5TargetConfiguration = { + target: '/db/apps/existdb-backup', + html5AsBinary: true +} + +var targetConfiguration = { + target: '/db/apps/existdb-backup/', + html5AsBinary: true +} + +gulp.task('clean', function () { + return del(['build/**/*']); +}); + +// styles // + +var lessPath = './resources/css/style.less' +var stylesPath = 'resources/css/*' +var cleanCSSPlugin = new LessPluginCleanCSS({advanced: true}) +var autoprefix = new LessAutoprefix({browsers: ['last 2 versions']}) + +gulp.task('styles', function () { + return gulp.src(lessPath) + .pipe(less({plugins: [cleanCSSPlugin, autoprefix]})) + .pipe(gulp.dest('./resources/css')) +}) + +gulp.task('deploy:styles', ['styles'], function () { + return gulp.src('resources/css/*.css', {base: './'}) + .pipe(exClient.newer(targetConfiguration)) + .pipe(exClient.dest(targetConfiguration)) +}) + +// odd files // + +var oddPath = 'resources/odd/**/*'; +gulp.task('odd:deploy', function () { + return gulp.src(oddPath, {base: './'}) + .pipe(exClient.newer(targetConfiguration)) + .pipe(exClient.dest(targetConfiguration)) +}) + +gulp.task('odd:watch', function () { + gulp.watch(oddPath, ['odd:deploy']) +}) + +// files in project root // + +var componentPaths = [ + '*.html', + 'bower_components/**/*' +]; + +gulp.task('deploy:components', function () { + return gulp.src(componentPaths, {base: './'}) + .pipe(exClient.newer(html5TargetConfiguration)) + .pipe(exClient.dest(html5TargetConfiguration)) +}) + +var otherPaths = [ + '*.html', + '*.xql', + 'templates/**/*', + 'transforms/**/*', + 'resources/**/*', + '!resources/css/*', + 'modules/**/*' +]; + +gulp.task('deploy:other', function () { + return gulp.src(otherPaths, {base: './'}) + .pipe(exClient.newer(targetConfiguration)) + .pipe(exClient.dest(targetConfiguration)) +}) + +var components = [ + '*-*.html' +]; + +gulp.task('deploy:comp', function () { + return gulp.src(components, {base: './'}) + .pipe(gulp.dest('bower_components/existdb-backup')) +}) + +gulp.task('deploy', ['deploy:comp', 'deploy:other', 'deploy:components', 'deploy:styles']) + +gulp.task('watch', function () { + gulp.watch('resources/css/!*', ['deploy:styles']) + gulp.watch(otherPaths, ['deploy:other']) + gulp.watch(components, ['deploy:comp']) + gulp.watch('*.html', ['deploy:components']) +}) + +gulp.task('default', ['watch']) diff --git a/bower_components/existdb-backup/icon.svg b/bower_components/existdb-backup/icon.svg new file mode 100644 index 00000000..da5b69da --- /dev/null +++ b/bower_components/existdb-backup/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/bower_components/existdb-backup/index.html b/bower_components/existdb-backup/index.html new file mode 100644 index 00000000..9563f52b --- /dev/null +++ b/bower_components/existdb-backup/index.html @@ -0,0 +1,19 @@ + + + + + + existdb-backup + + + + + + + + + diff --git a/bower_components/existdb-backup/login.html b/bower_components/existdb-backup/login.html new file mode 100644 index 00000000..6a8b9ad7 --- /dev/null +++ b/bower_components/existdb-backup/login.html @@ -0,0 +1,166 @@ + + + Login + + + + + + + + + diff --git a/plugins/backup/backup.xql b/bower_components/existdb-backup/modules/backup.xql similarity index 97% rename from plugins/backup/backup.xql rename to bower_components/existdb-backup/modules/backup.xql index 1d8ac32c..dc7863bf 100644 --- a/plugins/backup/backup.xql +++ b/bower_components/existdb-backup/modules/backup.xql @@ -21,6 +21,7 @@ declare function backup:list() { { for $backup in $backups + order by $backup/exist:date/string() descending return {$backup/@file/string()} diff --git a/bower_components/existdb-backup/package.json b/bower_components/existdb-backup/package.json new file mode 100644 index 00000000..96cbb172 --- /dev/null +++ b/bower_components/existdb-backup/package.json @@ -0,0 +1,26 @@ +{ + "name": "shc", + "version": "1.0.0", + "description": "existdb-backup", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "brace-expansion": "^1.1.4", + "del": "^2.2.0", + "gulp": "^3.9.1", + "gulp-exist": "^1.4.1", + "gulp-less": "^3.1.0", + "gulp-watch": "^4.3.6", + "less-plugin-autoprefix": "^1.5.1", + "less-plugin-clean-css": "^1.5.1", + "bower": "^1.8.0" + } +} diff --git a/bower_components/existdb-backup/repo.xml b/bower_components/existdb-backup/repo.xml new file mode 100644 index 00000000..ef0ba395 --- /dev/null +++ b/bower_components/existdb-backup/repo.xml @@ -0,0 +1,21 @@ + + + existdb-backup + + + alpha + GNU-LGPL + true + application + existdb-backup + + + + +
      +
    • split app layout from backup panel
    • +
    • prepared for integration in dashboard
    • +
    +
    +
    + \ No newline at end of file diff --git a/bower_components/existdb-backup/test/existdb-backup_test.html b/bower_components/existdb-backup/test/existdb-backup_test.html new file mode 100644 index 00000000..6e760d31 --- /dev/null +++ b/bower_components/existdb-backup/test/existdb-backup_test.html @@ -0,0 +1,52 @@ + + + + + + + existdb-backup test + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-backup/test/index.html b/bower_components/existdb-backup/test/index.html new file mode 100644 index 00000000..62f7bbe3 --- /dev/null +++ b/bower_components/existdb-backup/test/index.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/bower_components/existdb-backup/test/readme.md b/bower_components/existdb-backup/test/readme.md new file mode 100755 index 00000000..723a6912 --- /dev/null +++ b/bower_components/existdb-backup/test/readme.md @@ -0,0 +1,3 @@ +# Test Dir + +put your tests here diff --git a/bower_components/existdb-launcher/.bower.json b/bower_components/existdb-launcher/.bower.json new file mode 100644 index 00000000..a1c135b1 --- /dev/null +++ b/bower_components/existdb-launcher/.bower.json @@ -0,0 +1,50 @@ +{ + "name": "existdb-launcher", + "description": "Element displaying app icons and allowing them to start", + "main": "existdb-launcher-app.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^2.0.0", + "bower": "*", + "install": "^1.0.4", + "repo-elements": "https://github.com/eXist-db/repo-elements/archive/master.zip" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "ignore": [ + "**/.*", + "bower_components", + "build", + "node_modules", + "build.xml", + "expath-pkg.xml", + "dependencies-local.html", + "gulpfile.js", + "package.json", + "polymer.json", + "repo.xml" + ], + "private": true, + "homepage": "https://github.com/eXist-db/launcher", + "version": "1.2.1", + "_release": "1.2.1", + "_resolution": { + "type": "version", + "tag": "v1.2.1", + "commit": "d5c11be1be8bb1fce06dc5ce6847670ad4f15932" + }, + "_source": "https://github.com/eXist-db/launcher.git", + "_target": "^1.2.1", + "_originalSource": "https://github.com/eXist-db/launcher.git" +} \ No newline at end of file diff --git a/bower_components/existdb-launcher/LICENSE b/bower_components/existdb-launcher/LICENSE new file mode 100644 index 00000000..5ab7695a --- /dev/null +++ b/bower_components/existdb-launcher/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/bower_components/existdb-launcher/README.md b/bower_components/existdb-launcher/README.md new file mode 100644 index 00000000..c11495e2 --- /dev/null +++ b/bower_components/existdb-launcher/README.md @@ -0,0 +1,29 @@ +# Launcher + +A small application to start eXist-db apps similar to Launchpad on Mac. + +Launcher can be used as a standalone application or embedded as a Web Component (Polymer flavor) in other apps like Dashboard. + +## Building + +```ant xar``` + +creates an unoptimized xar file for deploying into eXist-db. + +```ant production-xar``` + +creates a compressed version.` + +## Developing + +If you want to add features you have to setup npm and bower in the project by + +```npm install || bower install``` + +After completion new components can be added via bower with: + +```bower install --save [COMPONENT_NAME]``` + +It is recommended to check new dependencies into git to avoid dependency +update problems. For a discussion on this topic see https://addyosmani.com/blog/checking-in-front-end-dependencies/ + diff --git a/bower_components/existdb-launcher/app-template.iml b/bower_components/existdb-launcher/app-template.iml new file mode 100755 index 00000000..8021953e --- /dev/null +++ b/bower_components/existdb-launcher/app-template.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-launcher/bower.json b/bower_components/existdb-launcher/bower.json new file mode 100644 index 00000000..24e9cbde --- /dev/null +++ b/bower_components/existdb-launcher/bower.json @@ -0,0 +1,39 @@ +{ + "name": "existdb-launcher", + "description": "Element displaying app icons and allowing them to start", + "main": "existdb-launcher-app.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^2.0.0", + "bower": "*", + "install": "^1.0.4", + "repo-elements": "https://github.com/eXist-db/repo-elements/archive/master.zip" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "ignore": [ + "**/.*", + "bower_components", + "build", + "node_modules", + "build.xml", + "expath-pkg.xml", + "dependencies-local.html", + "gulpfile.js", + "package.json", + "polymer.json", + "repo.xml" + ], + "private": true +} diff --git a/bower_components/existdb-launcher/bower.json.ignores b/bower_components/existdb-launcher/bower.json.ignores new file mode 100644 index 00000000..5f0b48db --- /dev/null +++ b/bower_components/existdb-launcher/bower.json.ignores @@ -0,0 +1,26 @@ +{ + "name": "existdb-launcher", + "description": "", + "main": "index.html", + "repository": { + "type": "git", + "url": "git://gitlab.exist-db.org:eXistdbElements/existdb-packagemanager.git" + }, + "dependencies": { + }, + "devDependencies": { + }, + "ignore": [ + ".idea", + "build", + "bower_components", + "node_modules", + "test", + "build.xml", + "expath-pkg.xml", + "repo.xml", + "package.json", + "gulpfile.js" + ], + "private": true +} diff --git a/bower_components/existdb-launcher/configuration.xml b/bower_components/existdb-launcher/configuration.xml new file mode 100644 index 00000000..cd1ccea1 --- /dev/null +++ b/bower_components/existdb-launcher/configuration.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-launcher/controller.xql b/bower_components/existdb-launcher/controller.xql new file mode 100755 index 00000000..8c46c1ac --- /dev/null +++ b/bower_components/existdb-launcher/controller.xql @@ -0,0 +1,38 @@ +xquery version "3.0"; + +declare namespace json = "http://www.json.org"; +declare namespace control = "http://exist-db.org/apps/dashboard/controller"; +declare namespace output = "http://exquery.org/ns/rest/annotation/output"; +declare namespace rest = "http://exquery.org/ns/restxq"; + + +declare variable $exist:path external; +declare variable $exist:resource external; +declare variable $exist:controller external; +declare variable $exist:prefix external; +declare variable $exist:root external; + + +if ($exist:path eq '') then + + + +else if ($exist:path = "/") then +(: forward root path to index.html :) + + + + + +else if (ends-with($exist:path, ".html")) then + + + +else if($exist:path = "/getversion") then + + + +else + + + diff --git a/bower_components/existdb-launcher/demo/README.md b/bower_components/existdb-launcher/demo/README.md new file mode 100755 index 00000000..57949776 --- /dev/null +++ b/bower_components/existdb-launcher/demo/README.md @@ -0,0 +1,4 @@ +# the demo directory + +This directory is meant for showing the capabilities of the app or component and should bring up the whole +app or an example usage of your component as a reference for users. diff --git a/bower_components/existdb-launcher/demo/ignores.html b/bower_components/existdb-launcher/demo/ignores.html new file mode 100644 index 00000000..523f0938 --- /dev/null +++ b/bower_components/existdb-launcher/demo/ignores.html @@ -0,0 +1,18 @@ + + + + + + existdb-launcher demo + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/demo/index.html b/bower_components/existdb-launcher/demo/index.html new file mode 100644 index 00000000..5f003b84 --- /dev/null +++ b/bower_components/existdb-launcher/demo/index.html @@ -0,0 +1,16 @@ + + + + + + existdb-launcher demo + + + + + + + + + + diff --git a/bower_components/existdb-launcher/demo/packagemanager.html b/bower_components/existdb-launcher/demo/packagemanager.html new file mode 100644 index 00000000..819e5f67 --- /dev/null +++ b/bower_components/existdb-launcher/demo/packagemanager.html @@ -0,0 +1,16 @@ + + + + + + existdb-launcher demo + + + + + + + + + + diff --git a/bower_components/existdb-launcher/dependencies.html b/bower_components/existdb-launcher/dependencies.html new file mode 100644 index 00000000..bb306779 --- /dev/null +++ b/bower_components/existdb-launcher/dependencies.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/existdb-branding.html b/bower_components/existdb-launcher/existdb-branding.html new file mode 100644 index 00000000..ee791e8a --- /dev/null +++ b/bower_components/existdb-launcher/existdb-branding.html @@ -0,0 +1,67 @@ + + + + diff --git a/bower_components/existdb-launcher/existdb-launcher-app.html b/bower_components/existdb-launcher/existdb-launcher-app.html new file mode 100644 index 00000000..7e816bbb --- /dev/null +++ b/bower_components/existdb-launcher/existdb-launcher-app.html @@ -0,0 +1,131 @@ + + + + + diff --git a/bower_components/existdb-launcher/existdb-launcher.html b/bower_components/existdb-launcher/existdb-launcher.html new file mode 100644 index 00000000..fa8206da --- /dev/null +++ b/bower_components/existdb-launcher/existdb-launcher.html @@ -0,0 +1,179 @@ + + + + + diff --git a/bower_components/existdb-launcher/existdb-launcher.iml b/bower_components/existdb-launcher/existdb-launcher.iml new file mode 100644 index 00000000..80cc7391 --- /dev/null +++ b/bower_components/existdb-launcher/existdb-launcher.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-launcher/existdb-styles.html b/bower_components/existdb-launcher/existdb-styles.html new file mode 100644 index 00000000..6f9f2b6b --- /dev/null +++ b/bower_components/existdb-launcher/existdb-styles.html @@ -0,0 +1,41 @@ + + + diff --git a/bower_components/existdb-launcher/existdb-version.html b/bower_components/existdb-launcher/existdb-version.html new file mode 100644 index 00000000..977d5c8d --- /dev/null +++ b/bower_components/existdb-launcher/existdb-version.html @@ -0,0 +1,42 @@ + + + + diff --git a/bower_components/existdb-launcher/icon.png b/bower_components/existdb-launcher/icon.png new file mode 100755 index 00000000..d501d3e4 Binary files /dev/null and b/bower_components/existdb-launcher/icon.png differ diff --git a/bower_components/existdb-launcher/icon.svg b/bower_components/existdb-launcher/icon.svg new file mode 100644 index 00000000..0678cdd5 --- /dev/null +++ b/bower_components/existdb-launcher/icon.svg @@ -0,0 +1,74 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/index.html b/bower_components/existdb-launcher/index.html new file mode 100644 index 00000000..a9952372 --- /dev/null +++ b/bower_components/existdb-launcher/index.html @@ -0,0 +1,13 @@ + + + + + Launcher + + + + + + + + diff --git a/bower_components/existdb-launcher/launcher-app.html b/bower_components/existdb-launcher/launcher-app.html new file mode 100644 index 00000000..c4a19a83 --- /dev/null +++ b/bower_components/existdb-launcher/launcher-app.html @@ -0,0 +1,123 @@ + + + + + + + diff --git a/bower_components/existdb-launcher/modules/dummy.xql b/bower_components/existdb-launcher/modules/dummy.xql new file mode 100755 index 00000000..4c1d898a --- /dev/null +++ b/bower_components/existdb-launcher/modules/dummy.xql @@ -0,0 +1,10 @@ +xquery version "3.0"; + +(:~ +: User: joern +: Date: 07.02.17 +: Time: 17:27 +: To change this template use File | Settings | File Templates. +:) + +module namespace dummy = "dummy.xql"; diff --git a/bower_components/existdb-launcher/modules/getVersion.xql b/bower_components/existdb-launcher/modules/getVersion.xql new file mode 100644 index 00000000..0cd52898 --- /dev/null +++ b/bower_components/existdb-launcher/modules/getVersion.xql @@ -0,0 +1,3 @@ +xquery version "3.1"; + +"Version " || system:get-version() \ No newline at end of file diff --git a/bower_components/existdb-launcher/resources/bg.svg b/bower_components/existdb-launcher/resources/bg.svg new file mode 100644 index 00000000..0099b8dd --- /dev/null +++ b/bower_components/existdb-launcher/resources/bg.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/resources/icon.svg b/bower_components/existdb-launcher/resources/icon.svg new file mode 100644 index 00000000..29c05b52 --- /dev/null +++ b/bower_components/existdb-launcher/resources/icon.svg @@ -0,0 +1,74 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/resources/readme.md b/bower_components/existdb-launcher/resources/readme.md new file mode 100755 index 00000000..7642f712 --- /dev/null +++ b/bower_components/existdb-launcher/resources/readme.md @@ -0,0 +1,3 @@ +# Resources Dir + +The place to put your local JS, CSS and other stuff diff --git a/bower_components/existdb-launcher/resources/styles.css b/bower_components/existdb-launcher/resources/styles.css new file mode 100644 index 00000000..6e727c25 --- /dev/null +++ b/bower_components/existdb-launcher/resources/styles.css @@ -0,0 +1,51 @@ +repo-packages{ + display:flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; +} +/* +repo-app{ + display:table; + width:150px; + height:150px; + position: relative; + border:thin solid; + margin:10px; + padding:10px; + background: transparent; +} +*/ +repo-title{ + font-size:14px; + display:block; + position: absolute; + bottom:0; + left: 0; + width: 100%; + text-align: center; + height:36px; + /*background: yellow;*/ +} +repo-icon{ + width: 100%; + height: 100%; + vertical-align: middle; + display: table-cell; + text-align:center; +} + +repo-name, +repo-version, +repo-type, +repo-authors, +repo-abbrev, +repo-description, +repo-website, +repo-url, +repo-license { + display:none; +} +[unresolved]{ + display:none; +} \ No newline at end of file diff --git a/bower_components/existdb-launcher/test/existdb-launcher-app_test.html b/bower_components/existdb-launcher/test/existdb-launcher-app_test.html new file mode 100644 index 00000000..db36c3fd --- /dev/null +++ b/bower_components/existdb-launcher/test/existdb-launcher-app_test.html @@ -0,0 +1,52 @@ + + + + + + + existdb-launcher-app test + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/test/existdb-launcher_test.html b/bower_components/existdb-launcher/test/existdb-launcher_test.html new file mode 100644 index 00000000..70782a2e --- /dev/null +++ b/bower_components/existdb-launcher/test/existdb-launcher_test.html @@ -0,0 +1,52 @@ + + + + + + + existdb-launcher test + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-launcher/test/readme.md b/bower_components/existdb-launcher/test/readme.md new file mode 100755 index 00000000..723a6912 --- /dev/null +++ b/bower_components/existdb-launcher/test/readme.md @@ -0,0 +1,3 @@ +# Test Dir + +put your tests here diff --git a/bower_components/existdb-packagemanager/.bower.json b/bower_components/existdb-packagemanager/.bower.json new file mode 100644 index 00000000..20029f74 --- /dev/null +++ b/bower_components/existdb-packagemanager/.bower.json @@ -0,0 +1,66 @@ +{ + "name": "existdb-packagemanager", + "main": "existdb-packagemanager.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "iron-icon": "PolymerElements/iron-icon#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "paper-progress": "PolymerElements/paper-progress#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-form": "PolymerElements/iron-form#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "iron-pages": "PolymerElements/iron-pages#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-fab": "PolymerElements/paper-fab#^2.0.0", + "paper-button": "PolymerElements/paper-button#^2.0.0", + "paper-input": "PolymerElements/paper-input#^2.0.0", + "paper-item": "PolymerElements/paper-item#^2.0.0", + "paper-menu-button": "PolymerElements/paper-menu-button#^2.0.0", + "iron-a11y-keys": "PolymerElements/iron-a11y-keys#^2.0.0", + "paper-card": "PolymerElements/paper-card#^2.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^2.0.0", + "vaadin-upload": "^3.0.2", + "web-animations-js": "^2.3.1", + "repo-elements": "https://github.com/eXist-db/repo-elements/archive/master.zip", + "iron-meta": "PolymerElements/iron-meta#^2.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "paper-badge": "PolymerElements/paper-badge#^2.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^2.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "ignore": [ + "**/.*", + "bower_components", + "build", + "demo", + "node_modules", + "resources", + "test", + "build.xml", + "expath-pkg.xml", + "dependencies-local.html", + "gulpfile.js", + "package.json", + "polymer.json", + "repo.xml" + ], + "private": true, + "_cacheHeaders": { + "ETag": "\"61ad473deaf0984e9a722824225d7b67f62e6668\"", + "Content-Type": "application/zip", + "Content-Disposition": "attachment; filename=packagemanager-4.6.0.zip" + }, + "_release": "e-tag:61ad473de", + "_source": "https://github.com/eXist-db/packagemanager/archive/v4.6.0.zip", + "_target": "*", + "_originalSource": "https://github.com/eXist-db/packagemanager/archive/v4.6.0.zip" +} \ No newline at end of file diff --git a/bower_components/existdb-packagemanager/LICENSE b/bower_components/existdb-packagemanager/LICENSE new file mode 100644 index 00000000..5ab7695a --- /dev/null +++ b/bower_components/existdb-packagemanager/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/bower_components/existdb-packagemanager/README.md b/bower_components/existdb-packagemanager/README.md new file mode 100644 index 00000000..6563b473 --- /dev/null +++ b/bower_components/existdb-packagemanager/README.md @@ -0,0 +1,73 @@ +# eXist-db Packagemanager + +This application allows to browse local and remote packages, install, upload or remove packages. + +## Requirements + + What will be needed up-front: + + 1. an installation of eXist-db (3.0 or above recommended) + 1. a nodejs installation (see below for instructions) + 1. an installation of the Polymer CLI for optimized builds + 1. Apache Ant configured + +IMPORTANT NOTE: JavaScript dependencies are managed by bower which dynamically loads those into a 'bower_components' folder. +However to ease the building process, the bower components have been added to the repo. This way it is not necessary +to have a NodeJS installation to build PackageManager. If you want to just want to build an un-optimized version you can skip +the steps under 'Preparation' and just all 'ant dev-xar'. + + +## Preparation +* execute `npm install` in the root directory to install bower and other tools used for building and development +* execute `bower install` the the root directory +* make sure you have the [Polymer CLI](https://www.npmjs.com/package/polymer-cli) installed if you intend to build a compressed production version + + + +## Building eXist-db app + +### for production + + +```sh +ant +``` +creates build/packagemanager-x.x.x.xar + + +***Please note that this task might take a moment as the whole dependency tree is analysed and the compressed +version is stored into a single file.*** + +### for development + +```sh +ant dev-xar +``` + +creates build/packagemanager-dev-x.x.x.xar + + +## Using gulp assistance + +There's additional development support through gulp. Most prominently with + +`gulp deploy` + +pushes the local workspace into the app collection in eXist-db on localhost. + + +` +gulp watch +` + +synchronizes the local workspace with the app deployed in eXist-db. Changed files will be +automatically deployed when stored. + +***Please note that the app must be installed in eXist-db first before these task work.*** + + + +## More information + +Please refer to the [tools document](tools.md) for more information on effective use of the +bundled tools. diff --git a/bower_components/existdb-packagemanager/archive/existdb-package-descriptor.html b/bower_components/existdb-packagemanager/archive/existdb-package-descriptor.html new file mode 100644 index 00000000..fc27ed64 --- /dev/null +++ b/bower_components/existdb-packagemanager/archive/existdb-package-descriptor.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/archive/existdb-packagemanager.html b/bower_components/existdb-packagemanager/archive/existdb-packagemanager.html new file mode 100644 index 00000000..b9f8f2e2 --- /dev/null +++ b/bower_components/existdb-packagemanager/archive/existdb-packagemanager.html @@ -0,0 +1,744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/bower.json b/bower_components/existdb-packagemanager/bower.json new file mode 100644 index 00000000..fed5da88 --- /dev/null +++ b/bower_components/existdb-packagemanager/bower.json @@ -0,0 +1,57 @@ +{ + "name": "existdb-packagemanager", + "main": "existdb-packagemanager.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "iron-icon": "PolymerElements/iron-icon#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "paper-progress": "PolymerElements/paper-progress#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-form": "PolymerElements/iron-form#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "iron-pages": "PolymerElements/iron-pages#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-fab": "PolymerElements/paper-fab#^2.0.0", + "paper-button": "PolymerElements/paper-button#^2.0.0", + "paper-input": "PolymerElements/paper-input#^2.0.0", + "paper-item": "PolymerElements/paper-item#^2.0.0", + "paper-menu-button": "PolymerElements/paper-menu-button#^2.0.0", + "iron-a11y-keys": "PolymerElements/iron-a11y-keys#^2.0.0", + "paper-card": "PolymerElements/paper-card#^2.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^2.0.0", + "vaadin-upload": "^3.0.2", + "web-animations-js": "^2.3.1", + "repo-elements": "https://github.com/eXist-db/repo-elements/archive/master.zip", + "iron-meta": "PolymerElements/iron-meta#^2.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "paper-badge": "PolymerElements/paper-badge#^2.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^2.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "ignore": [ + "**/.*", + "bower_components", + "build", + "demo", + "node_modules", + "resources", + "test", + "build.xml", + "expath-pkg.xml", + "dependencies-local.html", + "gulpfile.js", + "package.json", + "polymer.json", + "repo.xml" + ], + "private": true +} diff --git a/configuration.xml b/bower_components/existdb-packagemanager/configuration.xml similarity index 100% rename from configuration.xml rename to bower_components/existdb-packagemanager/configuration.xml diff --git a/bower_components/existdb-packagemanager/controller.xql b/bower_components/existdb-packagemanager/controller.xql new file mode 100644 index 00000000..315bc0a2 --- /dev/null +++ b/bower_components/existdb-packagemanager/controller.xql @@ -0,0 +1,83 @@ +xquery version "3.1"; + +declare namespace output="http://exquery.org/ns/rest/annotation/output"; + +import module namespace login="http://exist-db.org/xquery/login" at "resource:org/exist/xquery/modules/persistentlogin/login.xql"; + +declare variable $exist:path external; +declare variable $exist:resource external; +declare variable $exist:controller external; +declare variable $exist:prefix external; +declare variable $exist:root external; +declare variable $exist:context external; + +(: todo: fix url pathes to work in root context :) + +declare variable $local:login-domain := "org.exist.login"; +declare function local:user-allowed ($user) as xs:boolean { + ( + not(empty($user)) and + not($user = "guest") and + sm:is-dba($user) + ) +}; + +let $login := login:set-user($local:login-domain, (), false()) +let $user := request:get-attribute($local:login-domain || ".user") +(: +let $log := util:log("info", "root " || $exist:root) +let $log := util:log("info", "controller " || $exist:controller) +let $log := util:log("info", "requesturi " || request:get-uri()) +let $log := util:log("info", "prefix " || $exist:prefix) +let $log := util:log("info", "context " || $exist:context) +:) + +return ( + request:set-attribute("betterform.filter.ignoreResponseBody", "true"), + if ($exist:path = '/login') + then ( + + + + + + + ) + else if (not(local:user-allowed($user))) + then ( + + + + ) + else if ($exist:path = '') + then ( + + (::) + + + + ) + else if ($exist:path = "/") + then ( + (: forward root path to index.xql :) + + (::) + + + ) + else if (matches($exist:path, ".xql/?$")) + then ( + + { $user } + + + ) + else if(starts-with($exist:path, "/resources")) then + + + + + else ( + + ) +) diff --git a/bower_components/existdb-packagemanager/dependencies.html b/bower_components/existdb-packagemanager/dependencies.html new file mode 100644 index 00000000..bfc53b63 --- /dev/null +++ b/bower_components/existdb-packagemanager/dependencies.html @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/doc.html b/bower_components/existdb-packagemanager/doc.html new file mode 100644 index 00000000..3f3b8da1 --- /dev/null +++ b/bower_components/existdb-packagemanager/doc.html @@ -0,0 +1,17 @@ + + + + + + existdb-packagemanager + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/existdb-package-install-action.html b/bower_components/existdb-packagemanager/existdb-package-install-action.html new file mode 100644 index 00000000..bbdad5b6 --- /dev/null +++ b/bower_components/existdb-packagemanager/existdb-package-install-action.html @@ -0,0 +1,132 @@ + + + + + + + diff --git a/bower_components/existdb-packagemanager/existdb-package-remove-action.html b/bower_components/existdb-packagemanager/existdb-package-remove-action.html new file mode 100644 index 00000000..7d383428 --- /dev/null +++ b/bower_components/existdb-packagemanager/existdb-package-remove-action.html @@ -0,0 +1,134 @@ + + + + + + + diff --git a/bower_components/existdb-packagemanager/existdb-packagemanager.html b/bower_components/existdb-packagemanager/existdb-packagemanager.html new file mode 100644 index 00000000..35f3d1ce --- /dev/null +++ b/bower_components/existdb-packagemanager/existdb-packagemanager.html @@ -0,0 +1,888 @@ + +--> + + + + + + + + diff --git a/bower_components/existdb-packagemanager/existdb-packages.html b/bower_components/existdb-packagemanager/existdb-packages.html new file mode 100644 index 00000000..1c2c40b1 --- /dev/null +++ b/bower_components/existdb-packagemanager/existdb-packages.html @@ -0,0 +1,224 @@ + + + + + + + diff --git a/bower_components/existdb-packagemanager/icon.png b/bower_components/existdb-packagemanager/icon.png new file mode 100644 index 00000000..d501d3e4 Binary files /dev/null and b/bower_components/existdb-packagemanager/icon.png differ diff --git a/bower_components/existdb-packagemanager/icon.svg b/bower_components/existdb-packagemanager/icon.svg new file mode 100644 index 00000000..a13dbfb6 --- /dev/null +++ b/bower_components/existdb-packagemanager/icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/icon2.svg b/bower_components/existdb-packagemanager/icon2.svg new file mode 100644 index 00000000..5450f662 --- /dev/null +++ b/bower_components/existdb-packagemanager/icon2.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/existdb-packagemanager/index.html b/bower_components/existdb-packagemanager/index.html new file mode 100644 index 00000000..e5aa0f28 --- /dev/null +++ b/bower_components/existdb-packagemanager/index.html @@ -0,0 +1,17 @@ + + + + + + existdb-packagemanager + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/login.html b/bower_components/existdb-packagemanager/login.html new file mode 100644 index 00000000..6a8b9ad7 --- /dev/null +++ b/bower_components/existdb-packagemanager/login.html @@ -0,0 +1,166 @@ + + + Login + + + + + + + + + diff --git a/modules/login-helper.xql b/bower_components/existdb-packagemanager/modules/login-helper.xql similarity index 100% rename from modules/login-helper.xql rename to bower_components/existdb-packagemanager/modules/login-helper.xql diff --git a/bower_components/existdb-packagemanager/packagemanager-app.html b/bower_components/existdb-packagemanager/packagemanager-app.html new file mode 100644 index 00000000..32dfa2a7 --- /dev/null +++ b/bower_components/existdb-packagemanager/packagemanager-app.html @@ -0,0 +1,391 @@ + + + + + + + diff --git a/bower_components/existdb-packagemanager/tools.md b/bower_components/existdb-packagemanager/tools.md new file mode 100644 index 00000000..2b7accb9 --- /dev/null +++ b/bower_components/existdb-packagemanager/tools.md @@ -0,0 +1,163 @@ +## Tooling Reference + +### What gulp does for you + +[gulpjs](http://gulpjs.com/) is a JavaScript build tool and knows hundreds of 'tasks' to help client-side development. + +For eXistdb application development there is a custom existdb plugin (task) that can talk to eXistdb and deploy files +from a local disk into eXistdb. + +#### Commands + +``` +gulp deploy +``` + +will transfer all local files on disk to the target collection in eXistdb. If you've used ´ant init` the target collection +will already be configured for you. + +IMPORTANT: the app MUST be deployed once into eXistdb before ´gulp deploy´ or `gulp watch` are run. This is to setup +the application correctly (creating collection, users etc.). + +``` +gulp watch +``` + +can be started in a terminal once (in the root of your project) and will then watch all files on disk and deploy them into eXistdb +ONCE THEY'VE CHANGED. This is very convenient if you prefer a workflow 'from workspace to database'. + +### What [Polymer CLI](https://www.polymer-project.org/2.0/start/toolbox/set-up) does for you + +Polymer CLI is a powerful tool when working with Polymer. + +#### Commands: + +``` +polymer init +``` + +With this command you can create a single new Polymer Web Component or even a whole new application. It must be executed +in the root of your project. + +IMPORANT: when run initially the Polymer CLI will download all JavaScript dependencies it needs for Polymer development. When run +to create new components later on (after setup) you should answer all 'overwrite' questions of the CLI with 'n' to keep the originals. + +``` +polymer serve -o +``` + +can be used to start a local server that open the index page. This is fine for a quick view if the component is running +as expected. For serious development i recommend to use gulp for deployment (see above). + +``` +polymer build +``` + + +will create a production version of all your Polymer Web Components compressed into index.html. It also will remove +all unneeded dependencies from 'bower_components'. This command should be executed once the app is ready for production as + it reduces the footprint dramatically. + +``` +polymer test +``` + +will run Polymer tests found in directory 'test'. + +NOTE: this is not working perfectly for now so please be aware that it might fail due to browser loading/shutdown problems. The +actuals tests however should pass. We'll have to look for a more stable solution in the future. + +The relevant test framework can be found here: [web-component-tester](https://github.com/Polymer/web-component-tester) + +You can serve the built versions by giving `polymer serve` a folder to serve +from: + +``` +$ polymer serve build/bundled +``` + + +### What [Ant](https://ant.apache.org/) does for you + +Ant (as always in eXistdb app development) does the final packaging as a xar app. In this app template the standard build.xml +is extended to wrap the ´build` command of the Polymer CLI when the target 'production-xar' is called. + +``` +ant init +``` + +As described above this must be called once you create your project to rename the relevant parts of the various config-files. + + +``` +ant xar +``` + +This is the default and creates a xar file for deployment into eXistdb. Run this and use eXistdb Package Manager to +install the app into eXistdb before ever calling ´gulp deploy` or `gulp watch`. + +``` +ant production-xar +``` + +will call ´polymer init´ to make sure all Web Components are optimized before packaging the xar. This is highly recommended to prepare +your app for production deployment. + + + +### What bower does for you + +bowerjs is a client-side dependency management tool. It's widely adapted in the web development world. It works with a 'bower.json' file +that contains all necessary information. By default all client-side dependencies are kept in a directory called 'bower_components'. In app template +this file will be created by Polymer CLI. + +bower.json will also serve as a meta-information provider when you want to distribute a component +for use with bower in an external application. If you're interested in this use case please be aware +that the ignores found in 'bower.json.ignores' are added to bower.json. + +#### Commands + +``` +bower install +``` + +this will read the 'bower.json' file and load all dependencies found there into the local 'bower_components' directory. +Note that it will only load dependencies if they are not yet present so it does some caching. + +``` +bower search [string] +``` + +this can be used to localize a dependency you want to use. It will return a list of available resources which then can be installed. + +``` +bower install --save [resource] +``` + +this will download the resource and put it into 'bower_components' for usage. Please always use ´--save´ to store the dependency +in bower.json. if you're installing a development time dependency use ´--save-dev´ instead. + + + +### Notes on setting up nodejs + +Note: This is a one-timer - you can skip this step if you got mpm on your system already. + +Though not strictly required for development it is recommended that you have an installation of nodejs on your system. +It is recommended to use ['nvm'](https://github.com/creationix/nvm) to install nodejs as this eases the process of installation and +allows to keep different versions of it on your system without conflicts. + +Nodejs is used within this project to drive the gulp tasks. These allow to: + + * build CSS from less + * sync your local files into eXistdb with `gulp deploy` or + * sync your changed files into eXistdb with `gulp watch` + +Please refer to the nvm page for installation instruction or use an installation method described +on the nodejs.org homepage. + +## Final remark + +If you find problems with the information provided above please use the issue-tracker and file a ticket. Same applies to + extensions of the app template that you'd like to suggest. + diff --git a/bower_components/existdb-packagemanager/unused/bower.json.bak b/bower_components/existdb-packagemanager/unused/bower.json.bak new file mode 100644 index 00000000..94a8446d --- /dev/null +++ b/bower_components/existdb-packagemanager/unused/bower.json.bak @@ -0,0 +1,52 @@ +{ + "name": "existdb-packagemanager", + "description": "a web component implementing eXistdb packagemanager", + "main": "existdb-packagemanager.html", + "repository": { + "type": "git", + "url": "git://gitlab.exist-db.org:eXistdbElements/existdb-packagemanager.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "iron-pages": "PolymerElements/iron-pages#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "iron-image": "PolymerElements/iron-image#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-fab": "PolymerElements/paper-fab#^2.0.0", + "paper-dialog": "PolymerElements/paper-dialog#^2.0.0", + "bottom-nav": "greenyouse/bottom-nav#^0.2.0", + "neon-animation": "PolymerElements/neon-animation#^2.0.0", + "iron-form": "PolymerElements/iron-form#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "paper-badge": "PolymerElements/paper-badge#^2.0.0", + "paper-progress": "PolymerElements/paper-progress#^2.0.0", + "paper-toggle-button": "PolymerElements/paper-toggle-button#^2.0.0", + "paper-input": "PolymerElements/paper-input#^2.0.0", + "paper-item": "PolymerElements/paper-item#^2.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^2.0.0", + "paper-menu-button": "PolymerElements/paper-menu-button#^2.0.0", + "iron-a11y-keys": "^2.0.0", + "paper-card": "PolymerElements/paper-card#^2.0.0", + "vaadin-upload": "^3.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^2.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [ + ".idea", + "build", + "bower_components", + "node_modules", + "test", + "build.xml", + "expath-pkg.xml", + "repo.xml", + "package.json", + "gulpfile.js" + ], + "private": true +} diff --git a/bower_components/existdb-packagemanager/unused/existdb-packagemanager-with-focus-move.html b/bower_components/existdb-packagemanager/unused/existdb-packagemanager-with-focus-move.html new file mode 100644 index 00000000..0fa0616e --- /dev/null +++ b/bower_components/existdb-packagemanager/unused/existdb-packagemanager-with-focus-move.html @@ -0,0 +1,784 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-packagemanager/unused/neo-anim.html b/bower_components/existdb-packagemanager/unused/neo-anim.html new file mode 100644 index 00000000..b1458cfd --- /dev/null +++ b/bower_components/existdb-packagemanager/unused/neo-anim.html @@ -0,0 +1,68 @@ + + + + + + + + + + diff --git a/bower_components/existdb-usermanager/.bower.json b/bower_components/existdb-usermanager/.bower.json new file mode 100644 index 00000000..ceac48dd --- /dev/null +++ b/bower_components/existdb-usermanager/.bower.json @@ -0,0 +1,64 @@ +{ + "name": "existdb-usermanager", + "main": "existdb-usermanager.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "iron-pages": "PolymerElements/iron-pages#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "iron-collapse": "PolymerElements/iron-collapse#^2.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.0.0", + "paper-input": "PolymerElements/paper-input#^2.0.0", + "paper-toggle-button": "PolymerElements/paper-toggle-button#^2.0.0", + "paper-menu-button": "PolymerElements/paper-menu-button#^2.0.0", + "paper-item": "PolymerElements/paper-item#^2.0.0", + "paper-button": "PolymerElements/paper-button#^2.0.0", + "paper-fab": "PolymerElements/paper-fab#^2.0.0", + "paper-password-input": "^2.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-material": "PolymerElements/paper-material#^2.0.0", + "paper-dialog": "PolymerElements/paper-dialog#^2.0.0", + "iron-form": "PolymerElements/iron-form#^2.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^2.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "ignore": [ + "**/.*", + "bower_components", + "build", + "demo", + "node_modules", + "resources", + "test", + "build.xml", + "expath-pkg.xml", + "dependencies-local.html", + "gulpfile.js", + "package.json", + "polymer.json", + "repo.xml" + ], + "private": true, + "homepage": "https://github.com/eXist-db/usermanager", + "version": "0.16.4", + "_release": "0.16.4", + "_resolution": { + "type": "version", + "tag": "v0.16.4", + "commit": "bc0d331d768e49433da095d9c6cd24a8ecd742ad" + }, + "_source": "https://github.com/eXist-db/usermanager.git", + "_target": "^0.16.4", + "_originalSource": "https://github.com/eXist-db/usermanager.git" +} \ No newline at end of file diff --git a/bower_components/existdb-usermanager/LICENSE b/bower_components/existdb-usermanager/LICENSE new file mode 100644 index 00000000..5ab7695a --- /dev/null +++ b/bower_components/existdb-usermanager/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/bower_components/existdb-usermanager/README.md b/bower_components/existdb-usermanager/README.md new file mode 100755 index 00000000..e7cac4dc --- /dev/null +++ b/bower_components/existdb-usermanager/README.md @@ -0,0 +1,58 @@ +# eXist-db User Manager app + +Rewrite of original eXist-db user manager that came as a plugin of dashboard. + +UserManager 2 comes as a standalone application and is not dependent on dashboard any more. + +User Manager is accessible for users of the 'dba' group exclusively. + +## Installation + +Use the eXist-db Package Manager to install the app from public repo. This will always the latest and greatest. + + +## Development Setup + +***Note: this section is only relevant if you like to build User Manager yourself to apply your own modifications.*** + +This app requires NodeJS and [Polymer CLI](https://www.polymer-project.org/2.0/start/toolbox/set-up) for creating +optimized production builds of the application. + +For development purposes you can simply call ```ant``` to create a xar. + +1. make sure you have NodeJS installed. See 'notes on setting up nodejs' below for help. +1. execute ```npm install``` to load dependencies +1. excecute ```polymer``` to make sure you have Polymer CLI installed (should be 1.3.1 or up). If you need to install it first + execute ```npm install -g polymer-cli``` +1. execute ```bower install``` + +## Tooling + +If you have installed NodeJS you can make use of following gulp commands: + +```gulp watch``` - will watch your local files and auto-deploy to the db when changed. +```gulp deploy``` to push all local files to the db. + +Note: you must have installed the xar application once in the database before running these commands. gulp will not +create the app in the db itself but just update it if it's there. + +## Building + +To create an optimized build execute: + +```ant production-xar``` + + +## Notes on setting up nodejs + +Note: This is a one-timer - you can skip this step if you got mpm on your system already. + +Though not strictly required for development it is recommended that you have an installation of nodejs on your system. +It is recommended to use ['nvm'](https://github.com/creationix/nvm) to install nodejs as this eases the process of installation and +allows to keep different versions of it on your system without conflicts. + +Nodejs is used within this project to drive the gulp tasks and handle client-side dependencies with bower. + +Please refer to the nvm page for installation instruction or use an installation method described +on the nodejs.org homepage. + diff --git a/bower_components/existdb-usermanager/bower.json b/bower_components/existdb-usermanager/bower.json new file mode 100644 index 00000000..98bdc447 --- /dev/null +++ b/bower_components/existdb-usermanager/bower.json @@ -0,0 +1,53 @@ +{ + "name": "existdb-usermanager", + "main": "existdb-usermanager.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "iron-pages": "PolymerElements/iron-pages#^2.0.0", + "paper-styles": "PolymerElements/paper-styles#^2.0.0", + "iron-ajax": "PolymerElements/iron-ajax#^2.0.0", + "iron-icons": "PolymerElements/iron-icons#^2.0.0", + "iron-collapse": "PolymerElements/iron-collapse#^2.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^2.0.0", + "paper-input": "PolymerElements/paper-input#^2.0.0", + "paper-toggle-button": "PolymerElements/paper-toggle-button#^2.0.0", + "paper-menu-button": "PolymerElements/paper-menu-button#^2.0.0", + "paper-item": "PolymerElements/paper-item#^2.0.0", + "paper-button": "PolymerElements/paper-button#^2.0.0", + "paper-fab": "PolymerElements/paper-fab#^2.0.0", + "paper-password-input": "^2.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^2.0.0", + "paper-toast": "PolymerElements/paper-toast#^2.0.0", + "app-layout": "PolymerElements/app-layout#^2.0.0", + "paper-material": "PolymerElements/paper-material#^2.0.0", + "paper-dialog": "PolymerElements/paper-dialog#^2.0.0", + "iron-form": "PolymerElements/iron-form#^2.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^2.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + }, + "ignore": [ + "**/.*", + "bower_components", + "build", + "demo", + "node_modules", + "resources", + "test", + "build.xml", + "expath-pkg.xml", + "dependencies-local.html", + "gulpfile.js", + "package.json", + "polymer.json", + "repo.xml" + ], + "private":true +} diff --git a/bower_components/existdb-usermanager/controller.xql b/bower_components/existdb-usermanager/controller.xql new file mode 100755 index 00000000..b2c8e213 --- /dev/null +++ b/bower_components/existdb-usermanager/controller.xql @@ -0,0 +1,364 @@ +(: + Rewrite/Refactoring by Joern Turner, 2017 +:) +(: +Copyright (c) 2012, Adam Retter +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Adam Retter Consulting nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Adam Retter BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +:) +xquery version "3.1"; + +declare namespace exist = "http://exist.sourceforge.net/NS/exist"; +declare namespace json = "http://www.json.org"; + +import module namespace request = "http://exist-db.org/xquery/request"; +import module namespace util = "http://exist-db.org/xquery/util"; +import module namespace usermanager = "http://exist-db.org/apps/userManager" at "modules/userManager.xqm"; +import module namespace jsjson = "http://johnsnelson/json" at "modules/jsjson.xqm"; +import module namespace login="http://exist-db.org/xquery/login" at "resource:org/exist/xquery/modules/persistentlogin/login.xql"; +import module namespace functx = "http://www.functx.com"; + +(:declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization";:) +(:declare option output:method "json";:) +(:declare option output:media-type "application/json";:) + + +declare variable $local:HTTP_OK := xs:integer(200); +declare variable $local:HTTP_CREATED := xs:integer(201); +declare variable $local:HTTP_NO_CONTENT := xs:integer(204); +declare variable $local:HTTP_BAD_REQUEST := xs:integer(400); +declare variable $local:HTTP_FORBIDDEN := xs:integer(403); +declare variable $local:HTTP_NOT_FOUND := xs:integer(404); +declare variable $local:HTTP_METHOD_NOT_ALLOWED := xs:integer(405); +declare variable $local:HTTP_INTERNAL_SERVER_ERROR := xs:integer(500); + +declare variable $exist:controller external; +declare variable $exist:resource external; +declare variable $exist:path external; +declare variable $exist:prefix external; + + +(:declare variable $exist:user external;:) + + + +declare variable $local:HTTP_API_BASE := replace(string-join((request:get-context-path(), $exist:prefix, $exist:controller, "api"), "/"), "//", "/"); + + +declare function local:get-user-location($user) as xs:string { + local:get-location(("user", $user)) +}; + +declare function local:get-group-location($group) as xs:string { + local:get-location(("group", $group)) +}; + +declare function local:get-location($postfix as xs:string+) { + string-join(($local:HTTP_API_BASE, $postfix), "/") +}; + +declare function local:list-users($user as xs:string?) { + try{ + if($user)then + usermanager:list-users($user) + else + usermanager:list-users() + } catch * { + if(contains($err:description, "You must be an authenticated user")) then + ( + response:set-status-code($local:HTTP_FORBIDDEN), + Access denied + ) + else + ( + response:set-status-code($local:HTTP_INTERNAL_SERVER_ERROR), + {$err:description} + ) + } +}; + +declare function local:list-groups($group as xs:string?) as element(json:value) { + try{ + if($group)then + usermanager:list-groups($group) + else + usermanager:list-groups() + } catch * { + if(contains($err:description, "You must be an authenticated user")) then + ( + response:set-status-code($local:HTTP_FORBIDDEN), + Access denied + ) + else + ( + response:set-status-code($local:HTTP_INTERNAL_SERVER_ERROR), + {$err:description} + ) + } +}; + +declare function local:delete-user($user as xs:string) as element(deleted) { + ( + usermanager:delete-user($user), + + {$user} + + ) +}; + +declare function local:delete-group($group as xs:string) as element(deleted) { + ( + usermanager:delete-group($group), + + {$group} + + ) +}; + +declare function local:update-user($user as xs:string, $request-body as xs:string) as element() { + if(usermanager:update-user($user, jsjson:parse-json($request-body)))then + ( + response:set-header("Location", local:get-user-location($user)), + response:set-status-code($local:HTTP_OK), + + (: TODO ideally would like to set 204 above and not return and content in the body + however the controller.xql is not capable of doing that, as there is no dispatch/ignore + that just returns processing with an empty body. + :) + + (: send back updated group json :) + usermanager:get-user($user) + ) else ( + response:set-status-code($local:HTTP_INTERNAL_SERVER_ERROR), + could not update group + ) +}; + +declare function local:update-group($group as xs:string, $request-body) as element() { + if(usermanager:update-group($group, jsjson:parse-json($request-body)))then + ( + response:set-header("Location", local:get-group-location($group)), + response:set-status-code($local:HTTP_OK), + + (: TODO ideally would like to set 204 above and not return and content in the body + however the controller.xql is not capable of doing that, as there is no dispatch/ignore + that just returns processing with an empty body. + :) + + (: send back updated group json :) + usermanager:get-group($group) + ) else ( + response:set-status-code($local:HTTP_INTERNAL_SERVER_ERROR), + could not update group + ) +}; + +declare function local:create-user($user as xs:string, $request-body) as element() { + let $body := parse-json($request-body) + let $user := usermanager:create-user(jsjson:parse-json($request-body)) return + + if($user)then + ( + response:set-header("Location", local:get-user-location($user)), + response:set-status-code($local:HTTP_CREATED), + + (: send back updated user json :) + usermanager:get-user($user) + ) else ( + response:set-status-code($local:HTTP_INTERNAL_SERVER_ERROR), + could not create user + ) +}; + +declare function local:create-group($user as xs:string, $request-body) as element() { + let $group := usermanager:create-group(jsjson:parse-json($request-body)) return + if($group)then + ( + response:set-header("Location", local:get-group-location($group)), + response:set-status-code($local:HTTP_CREATED), + + (: send back updated group json :) + usermanager:get-group($group) + ) else ( + response:set-status-code($local:HTTP_INTERNAL_SERVER_ERROR), + could not create group + ) +}; + +declare function local:get-user($user as xs:string) as element() { + if(usermanager:user-exists($user))then + usermanager:get-user($user) + else + ( + response:set-status-code($local:HTTP_NOT_FOUND), + No such user: {$user} + ) +}; + +declare function local:get-group($group as xs:string) as element() { + if(usermanager:group-exists($group))then + usermanager:get-group($group) + else + ( + response:set-status-code($local:HTTP_NOT_FOUND), + No such group: {$group} + ) +}; + +let $log := util:log("info", "exist path: " || $exist:path) +let $log := util:log("info", "request URI: " || request:get-uri()) +let $log := util:log("info", "resource: " || $exist:resource) +return +if ($exist:path eq '') then + + + +else if ($exist:path = "/") then + + + + +(: +else if (contains(request:get-uri(), "bower_components")) then + let $log := util:log("info", "exist forward: " || $exist:controller || '/bower_components/' || functx:substring-after-last($exist:path, 'bower_components/')) + return + + + + +:) + +else if (ends-with($exist:path, "index.html")) then ( + login:set-user("org.exist.login", (), true()), + let $user := request:get-attribute("org.exist.login.user") + let $userParam := request:get-parameter("user","") + let $signout := request:get-parameter("logout",()) + + return + if ($signout = "true") then( + + + + ) + else if ($user and sm:is-dba($user)) then + + + + else + + + + + ) +else if(starts-with($exist:path, "/api/"))then( + util:declare-option("exist:serialize", "method=json media-type=application/json"), + login:set-user("org.exist.login", (), false()), + let $user := request:get-attribute("org.exist.login.user") + return + + (: API is in JSON :) + if(not(exists($user)) or not(sm:is-dba($user))) then + + + + + else if($exist:path eq "/api/user/" and request:get-method() eq "GET")then + ( + local:list-users(request:get-parameter("user", ())) + ) + else if(starts-with($exist:path, "/api/user/"))then + let $user := replace($exist:path, "/api/user/", "") return + if(request:get-method() eq "DELETE")then + local:delete-user($user) + else if(request:get-method() eq "POST")then + ( + response:set-status-code($local:HTTP_METHOD_NOT_ALLOWED), + expected PUT for User and not POST + ) + else if(request:get-method() eq "PUT") then + let $body := util:binary-to-string(request:get-data()) return + if(usermanager:user-exists($user))then + (: update user:) + local:update-user($user, $body) + else + if(string-length($user) != 0) then + local:create-user($user, $body) + else( + response:set-status-code($local:HTTP_BAD_REQUEST), + user name is missing + ) + else if(request:get-method() eq "GET") then ( + local:get-user($user) + ) + else + ( + response:set-status-code($local:HTTP_METHOD_NOT_ALLOWED), + Unsupported method: {request:get-method()} + ) + + + else if($exist:path eq "/api/group/")then ( + login:set-user("org.exist.login", (), false()), + local:list-groups(request:get-parameter("group", ())) + ) + else if(starts-with($exist:path, "/api/group/"))then ( + login:set-user("org.exist.login", (), false()), + let $group := replace($exist:path, "/api/group/", "") return + + if(request:get-method() eq "DELETE")then + local:delete-group($group) + + else if(request:get-method() eq "POST")then + ( + response:set-status-code($local:HTTP_METHOD_NOT_ALLOWED), + expected PUT for Group from dojox.data.JsonRestStore and not POST + ) + + else if(request:get-method() eq "PUT") then + let $data := util:binary-to-string(request:get-data()) + let $body := $data return + if(usermanager:group-exists($group))then + local:update-group($group, $body) + else + local:create-group($group, $body) + else if(request:get-method() eq "GET") then + local:get-group($group) + + else + ( + response:set-status-code($local:HTTP_METHOD_NOT_ALLOWED), + Unsupported method: {request:get-method()} + + ) + ) + else + (: unkown URI path, not part of the API :) + + + + ) else + (: not an API URI path :) + + + diff --git a/bower_components/existdb-usermanager/dependencies.html b/bower_components/existdb-usermanager/dependencies.html new file mode 100644 index 00000000..35555ab6 --- /dev/null +++ b/bower_components/existdb-usermanager/dependencies.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-usermanager/doc.html b/bower_components/existdb-usermanager/doc.html new file mode 100644 index 00000000..f3af88d6 --- /dev/null +++ b/bower_components/existdb-usermanager/doc.html @@ -0,0 +1,16 @@ + + + + + + + existdb-usermanager + + + + + + + + + diff --git a/bower_components/existdb-usermanager/doc/changegroup.json b/bower_components/existdb-usermanager/doc/changegroup.json new file mode 100644 index 00000000..5a8f222a --- /dev/null +++ b/bower_components/existdb-usermanager/doc/changegroup.json @@ -0,0 +1,18 @@ +{ + "group": "foogroup", + "description": null, + "members": [ + { + "member": "foo", + "isManager": false + }, + { + "member": "admin", + "isManager": false + }, + { + "member": "guest", + "isManager": false + } + ] +} \ No newline at end of file diff --git a/bower_components/existdb-usermanager/doc/changeuser.json b/bower_components/existdb-usermanager/doc/changeuser.json new file mode 100644 index 00000000..123e7345 --- /dev/null +++ b/bower_components/existdb-usermanager/doc/changeuser.json @@ -0,0 +1,12 @@ +{ + "user": "foo", + "fullName": "bar", + "description": "foobar", + "password": null, + "disabled": false, + "umask": "22", + "groups": [ + "guest", + "monex" + ] +} \ No newline at end of file diff --git a/bower_components/existdb-usermanager/doc/creategroup.json b/bower_components/existdb-usermanager/doc/creategroup.json new file mode 100644 index 00000000..ce7b5182 --- /dev/null +++ b/bower_components/existdb-usermanager/doc/creategroup.json @@ -0,0 +1,11 @@ +{ + "group": "foogroup", + "description": "", + "isManager": false, + "members": [ + { + "member": "foo", + "isManager": false + } + ] +} \ No newline at end of file diff --git a/bower_components/existdb-usermanager/doc/createuser.json b/bower_components/existdb-usermanager/doc/createuser.json new file mode 100644 index 00000000..1120b6b0 --- /dev/null +++ b/bower_components/existdb-usermanager/doc/createuser.json @@ -0,0 +1,11 @@ +{ + "user": "foo", + "fullName": "bar", + "description": "foobar", + "password": "1234", + "disabled": false, + "umask": "022", + "groups": [ + "guest" + ] +} \ No newline at end of file diff --git a/bower_components/existdb-usermanager/doc/grouplisting.json b/bower_components/existdb-usermanager/doc/grouplisting.json new file mode 100644 index 00000000..38d7c4a2 --- /dev/null +++ b/bower_components/existdb-usermanager/doc/grouplisting.json @@ -0,0 +1,46 @@ +[ + { + "group": "dba", + "description": "Database Administrators", + "members": [ + { + "member": "SYSTEM", + "isManager": false + }, + { + "member": "admin", + "isManager": true + } + ] + }, + { + "group": "eXide", + "description": null, + "members": [ + { + "member": "eXide", + "isManager": false + } + ] + }, + { + "group": "guest", + "description": "Anonymous Users", + "members": [ + { + "member": "guest", + "isManager": false + } + ] + }, + { + "group": "monex", + "description": null, + "members": [ + { + "member": "monex", + "isManager": false + } + ] + } +] \ No newline at end of file diff --git a/bower_components/existdb-usermanager/doc/userlisting.json b/bower_components/existdb-usermanager/doc/userlisting.json new file mode 100644 index 00000000..1529b184 --- /dev/null +++ b/bower_components/existdb-usermanager/doc/userlisting.json @@ -0,0 +1,57 @@ +[ + { + "user": "SYSTEM", + "fullName": "SYSTEM", + "description": "System Internals", + "password": null, + "disabled": false, + "umask": "18", + "groups": [ + "dba" + ] + }, + { + "user": "admin", + "fullName": "admin", + "description": "System Administrator", + "password": null, + "disabled": false, + "umask": "18", + "groups": [ + "dba" + ] + }, + { + "user": "eXide", + "fullName": null, + "description": null, + "password": null, + "disabled": false, + "umask": "18", + "groups": [ + "eXide" + ] + }, + { + "user": "guest", + "fullName": "guest", + "description": "Anonymous User", + "password": null, + "disabled": false, + "umask": "18", + "groups": [ + "guest" + ] + }, + { + "user": "monex", + "fullName": null, + "description": null, + "password": null, + "disabled": false, + "umask": "18", + "groups": [ + "monex" + ] + } +] \ No newline at end of file diff --git a/bower_components/existdb-usermanager/docs.md b/bower_components/existdb-usermanager/docs.md new file mode 100644 index 00000000..9534c56a --- /dev/null +++ b/bower_components/existdb-usermanager/docs.md @@ -0,0 +1,181 @@ +DON'T CLONE THIS BUT USE THE DOWNLOAD OPTION TO SAVE AN ARCHIVE VERSION. + +# Blueprint for componentized eXistdb apps + +## Purpose of this blueprint + +THe purpose of this blueprint is to provide a quick way to create new apps and at the same time components (or buidling blocks) +that are commonly and repeatedly used within applications. + + +This differs from the eXide wizard in the following aspects: + +* allows to be deployed as a xar app +* can be consumed by bower for usage in other apps + +## What's in the box + +* a common directory structure +* all needed configuration files +* useful tooling + +## Before you start + +What will be needed up-front: + +* a nodejs installation (see below) +* if using Polymer an installation of the Polymer CLI (highly recommended) + +## Setting up a new application + +1. download this blueprint as a zip +2. create a new directory for your app +3. unpack the zip to that directory +4. start over by setting up the toolchain +5. call `ant init`. This will ask for a new project name to be used as the app name. The target will substitute all occurences of the string 'existdb-usermanager' with your project name (shouldn't contain spaces) + +## Setup the toolchain + +### nodejs + +Note: This is a one-timer - you can skip this step if you got mpm on your system already. + +Though not strictly required for development it is recommended that you have an installation of nodejs on your system. +It is recommended to use ['nvm'](https://github.com/creationix/nvm) to install nodejs as this eases the process of installation and +allows to keep different versions of it on your system without conflicts. + +Nodejs is used within this project to drive the gulp tasks. These allow to: + + * build CSS from less + * sync your local files into eXistdb with `gulp deploy` or + * sync your changed files into eXistdb with `gulp watch` + +Please refer to the nvm page for installation instruction or use an installation method described +on the nodejs.org homepage. + +### Setup gulp and bower tooling + +Execute + +`npm install` + +This will download and install all packages listed in packages.json. + + +### Installation and usage of the Polymer-CLI + +Note: as with Nodejs you need to install this only once globally. If you have worked with polymer CLI +before skip this step. + +The Polymer CLI is another tool for development and is not needed at runtime. It provides: + +* quick project setup +* quick creation of Polymer elements or a complete application +* supports the building of an optimized version of the app + +First, make sure you have the [Polymer CLI](https://www.npmjs.com/package/polymer-cli) installed. Then run `polymer serve` to serve your application locally. + +#### Viewing Your Application + +``` +$ polymer serve +``` + +This is good enough as long as your app just uses client-side code. Once you want to connect +those to some server-side XQuery you'll want to deploy the app as a xar. + +#### Building Your Application + +``` +$ polymer build +``` + +This will create a `build/` folder with `bundled/` and `unbundled/` sub-folders +containing a bundled (Vulcanized) and unbundled builds, both run through HTML, +CSS, and JS optimizers. + +You can serve the built versions by giving `polymer serve` a folder to serve +from: + +``` +$ polymer serve build/bundled +``` + +#### Running Tests + +``` +$ polymer test +``` + +Your application is already set up to be tested via [web-component-tester](https://github.com/Polymer/web-component-tester). Run `polymer test` to run your application's test suite locally. + +### Installation and usage of gulp assistance + +Once you've executed `npm install` you will have gulp with additional plugins installed. + +There's additional development support through gulp. + +Most prominently with + +``` +gulp watch +``` + +you can synchronize the local workspace with the app deployed in eXistdb. + +Every changed file will automatically deployed into the `target' collection + + `/db/apps/[target]` + + To make this and other goodies work you'll need to have Nodejs installed + and call + + ``` + npm install + ``` + + once. + +NOTE: You'll need to deploy your xar application once via the eXistdb PackageManager before you can call +either `gulp deploy` or `gulp watch`. + +The deployment via the PackageManager makes sure that the target collection is created as well as +execute some pre/post-install scripts to create users or set permissions. + + +## Kick-off development + +To start the actual development with Polymer execute: + +``` +polymer init +``` + +This will interactively create a new component or even a complete app layout container for you and load +all needed dependencies into bower_components directory. + +Once you're done you should: + +Build a xar with + +``` +ant xar +``` + +Deploy the newly created xar into eXistdb. + +### Add new dependency + +New libraries are loaded via bower with the command: + +``` +bower install --save [DEPENDENCY] +``` + +where [DEPENDENCY] might e.g. be 'PolymerElements/paper-button'. Please refer to [bower docs](http://bower.io) for other +possible options. + + + + + \ No newline at end of file diff --git a/bower_components/existdb-usermanager/existdb-styles.html b/bower_components/existdb-usermanager/existdb-styles.html new file mode 100644 index 00000000..bd390a00 --- /dev/null +++ b/bower_components/existdb-usermanager/existdb-styles.html @@ -0,0 +1,55 @@ + + + diff --git a/bower_components/existdb-usermanager/existdb-usermanager-app.html b/bower_components/existdb-usermanager/existdb-usermanager-app.html new file mode 100644 index 00000000..3618dac8 --- /dev/null +++ b/bower_components/existdb-usermanager/existdb-usermanager-app.html @@ -0,0 +1,144 @@ + + + + + + diff --git a/bower_components/existdb-usermanager/existdb-usermanager.html b/bower_components/existdb-usermanager/existdb-usermanager.html new file mode 100644 index 00000000..bbf10764 --- /dev/null +++ b/bower_components/existdb-usermanager/existdb-usermanager.html @@ -0,0 +1,1136 @@ + + + + + + diff --git a/bower_components/existdb-usermanager/icon.png b/bower_components/existdb-usermanager/icon.png new file mode 100644 index 00000000..04f0b033 Binary files /dev/null and b/bower_components/existdb-usermanager/icon.png differ diff --git a/bower_components/existdb-usermanager/index.html b/bower_components/existdb-usermanager/index.html new file mode 100644 index 00000000..f4aa35b2 --- /dev/null +++ b/bower_components/existdb-usermanager/index.html @@ -0,0 +1,16 @@ + + + + + + existdb-usermanager + + + + + + + + + + diff --git a/bower_components/existdb-usermanager/login-old.html b/bower_components/existdb-usermanager/login-old.html new file mode 100644 index 00000000..c8444e62 --- /dev/null +++ b/bower_components/existdb-usermanager/login-old.html @@ -0,0 +1,20 @@ + + + + login + + + + + + + + +
    +

    User Manager

    +

    Sign in

    +   +
    + + + diff --git a/bower_components/existdb-usermanager/login.html b/bower_components/existdb-usermanager/login.html new file mode 100644 index 00000000..b9fe871c --- /dev/null +++ b/bower_components/existdb-usermanager/login.html @@ -0,0 +1,166 @@ + + + Login + + + + + + + + + diff --git a/plugins/userManager/jsjson.xqm b/bower_components/existdb-usermanager/modules/jsjson.xqm similarity index 100% rename from plugins/userManager/jsjson.xqm rename to bower_components/existdb-usermanager/modules/jsjson.xqm diff --git a/bower_components/existdb-usermanager/modules/login-helper.xql b/bower_components/existdb-usermanager/modules/login-helper.xql new file mode 100644 index 00000000..3dac6386 --- /dev/null +++ b/bower_components/existdb-usermanager/modules/login-helper.xql @@ -0,0 +1,55 @@ +xquery version "3.0"; + +module namespace login-helper="http://exist-db.org/apps/dashboard/login-helper"; + +(: Determine if the persistent login module is available :) +declare function login-helper:get-login-method() as function(*) { + let $tryImport := + try { + util:import-module(xs:anyURI("http://exist-db.org/xquery/login"), "login", xs:anyURI("resource:org/exist/xquery/modules/persistentlogin/login.xql")), + true() + } catch * { + false() + } + return + if ($tryImport) then + function-lookup(xs:QName("login:set-user"), 3) + else + login-helper:fallback-login#3 +}; + +(:~ + Fallback login function used when the persistent login module is not available. + Stores user/password in the HTTP session. + :) +declare %private function login-helper:fallback-login($domain as xs:string, $maxAge as xs:dayTimeDuration?, $asDba as xs:boolean) { + let $durationParam := request:get-parameter("duration", ()) + let $user := request:get-parameter("user", ()) + let $password := request:get-parameter("password", ()) + let $logout := request:get-parameter("logout", ()) + return + if ($durationParam) then + error(xs:QName("login"), "Persistent login module not enabled in this version of eXist-db") + else if ($logout) then + session:invalidate() + else + if ($user) then + let $isLoggedIn := xmldb:login("/db", $user, $password, true()) + return + if ($isLoggedIn and (not($asDba) or xmldb:is-admin-user($user))) then ( + session:set-attribute("eXide.user", $user), + session:set-attribute("eXide.password", $password), + request:set-attribute($domain || ".user", $user), + request:set-attribute("xquery.user", $user), + request:set-attribute("xquery.password", $password) + ) else + () + else + let $user := session:get-attribute("eXide.user") + let $password := session:get-attribute("eXide.password") + return ( + request:set-attribute($domain || ".user", $user), + request:set-attribute("xquery.user", $user), + request:set-attribute("xquery.password", $password) + ) +}; \ No newline at end of file diff --git a/bower_components/existdb-usermanager/modules/mytest.xql b/bower_components/existdb-usermanager/modules/mytest.xql new file mode 100644 index 00000000..aba9665e --- /dev/null +++ b/bower_components/existdb-usermanager/modules/mytest.xql @@ -0,0 +1,6 @@ +xquery version "3.1"; + +import module namespace usermanager = "http://exist-db.org/apps/userManager" at "userManager2.xqm"; + +usermanager:hello() + diff --git a/bower_components/existdb-usermanager/modules/suite.xql b/bower_components/existdb-usermanager/modules/suite.xql new file mode 100644 index 00000000..58c2dcc9 --- /dev/null +++ b/bower_components/existdb-usermanager/modules/suite.xql @@ -0,0 +1,8 @@ +xquery version "3.1"; + +import module namespace test="http://exist-db.org/xquery/xqsuite" at "resource:org/exist/xquery/lib/xqsuite/xqsuite.xql"; + +test:suite( + inspect:module-functions(xs:anyURI("userManager.xqm")) +) + diff --git a/plugins/userManager/userManager.xqm b/bower_components/existdb-usermanager/modules/userManager.xqm similarity index 96% rename from plugins/userManager/userManager.xqm rename to bower_components/existdb-usermanager/modules/userManager.xqm index 4166455c..4256e5e1 100644 --- a/plugins/userManager/userManager.xqm +++ b/bower_components/existdb-usermanager/modules/userManager.xqm @@ -1,3 +1,6 @@ +(: + Rewrite/Refactoring by Joern Turner, 2017 +:) (: Copyright (c) 2012, Adam Retter All rights reserved. @@ -24,26 +27,27 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. :) -xquery version "3.0"; +xquery version "3.1"; -module namespace usermanager = "http://exist-db.org/apps/dashboard/userManager"; +module namespace usermanager = "http://exist-db.org/apps/userManager"; import module namespace secman = "http://exist-db.org/xquery/securitymanager"; import module namespace xmldb = "http://exist-db.org/xquery/xmldb"; declare namespace json = "http://www.json.org"; +declare namespace test="http://exist-db.org/xquery/xqsuite"; declare variable $usermanager:METADATA_FULLNAME_KEY := xs:anyURI("http://axschema.org/namePerson"); declare variable $usermanager:METADATA_DESCRIPTION_KEY := xs:anyURI("http://exist-db.org/security/description"); declare function usermanager:list-users() as element(json:value) { - - { - for $user in secman:list-users() - return - usermanager:get-user($user) - } - + + { + for $user in secman:list-users() + return + usermanager:get-user($user) + } + }; declare function usermanager:list-users($pattern as xs:string) as element(json:value) { @@ -219,7 +223,6 @@ declare function usermanager:create-group($group-json as element(json)) as xs:st }; declare function usermanager:update-group($group-name as xs:string, $group-json as element(json)) as xs:boolean { - let $group := $group-json/pair[@name eq "group"] return if($group-name ne $group)then diff --git a/bower_components/existdb-usermanager/old/existdb-usermanager.html b/bower_components/existdb-usermanager/old/existdb-usermanager.html new file mode 100644 index 00000000..fc4b4d67 --- /dev/null +++ b/bower_components/existdb-usermanager/old/existdb-usermanager.html @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/existdb-usermanager/usermanager.iml b/bower_components/existdb-usermanager/usermanager.iml new file mode 100644 index 00000000..80cc7391 --- /dev/null +++ b/bower_components/existdb-usermanager/usermanager.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/bower_components/font-roboto/.bower.json b/bower_components/font-roboto/.bower.json new file mode 100644 index 00000000..525574c6 --- /dev/null +++ b/bower_components/font-roboto/.bower.json @@ -0,0 +1,31 @@ +{ + "name": "font-roboto", + "version": "1.1.0", + "description": "An HTML import for Roboto", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "font", + "roboto" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/font-roboto.git" + }, + "main": "roboto.html", + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/font-roboto/", + "ignore": [ + "/.*" + ], + "_release": "1.1.0", + "_resolution": { + "type": "version", + "tag": "v1.1.0", + "commit": "014b084ae51314648053e792cf6c870946942953" + }, + "_source": "https://github.com/PolymerElements/font-roboto.git", + "_target": "^1.0.1", + "_originalSource": "PolymerElements/font-roboto" +} \ No newline at end of file diff --git a/bower_components/font-roboto/CONTRIBUTING.md b/bower_components/font-roboto/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/font-roboto/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/font-roboto/README.md b/bower_components/font-roboto/README.md new file mode 100644 index 00000000..61c6394c --- /dev/null +++ b/bower_components/font-roboto/README.md @@ -0,0 +1 @@ +# font-roboto diff --git a/bower_components/font-roboto/bower.json b/bower_components/font-roboto/bower.json new file mode 100644 index 00000000..7099d7ff --- /dev/null +++ b/bower_components/font-roboto/bower.json @@ -0,0 +1,22 @@ +{ + "name": "font-roboto", + "version": "1.0.3", + "description": "An HTML import for Roboto", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "font", + "roboto" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/font-roboto.git" + }, + "main": "roboto.html", + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/font-roboto/", + "ignore": [ + "/.*" + ] +} diff --git a/bower_components/font-roboto/package-lock.json b/bower_components/font-roboto/package-lock.json new file mode 100644 index 00000000..0a8f0abd --- /dev/null +++ b/bower_components/font-roboto/package-lock.json @@ -0,0 +1,987 @@ +{ + "name": "@polymerelements/font-roboto", + "version": "1.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.1.1.tgz", + "integrity": "sha512-rUfH6USpiPYSHl2dC+/rGb3RYK8LPyqNhiuZCLv13F0fhYr01jdTogGuSphEoSLklm1gKRsDsrfZq7OvpzPYEg==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.1", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.10" + }, + "dependencies": { + "@types/node": { + "version": "6.0.97", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.97.tgz", + "integrity": "sha512-k3CDdCq8Uv8AZ7/bmGSSvlwbPDPhkkckSq8Y9ndXowv86m3k07PjG98SigpjVAY9EyHV9kiFldEV306xh4gkig==", + "dev": true + }, + "polymer-analyzer": { + "version": "3.0.0-pre.10", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.10.tgz", + "integrity": "sha1-9vCd15PdL0IomsAdoCb8q6ZfGYw=", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.97", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "2.3.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "2.2.3", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + } + } + } + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.0" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.0" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.0.tgz", + "integrity": "sha512-zkYho6/4wZyX6o9UQ8rd0ReEaiEYNNCqYFIAACe2Tf9DrYlgzWW27OigYHnnztnnZQwVRpwWmZKegFmDpinIsA==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.0" + } + }, + "@types/winston": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.7.tgz", + "integrity": "sha512-jNhbkxPtt9xbzvihfA0OavjJbpCIyTDSmwE03BVXgCKcz9lwNsq4cg2wsNkY4Av5eH35ttBArhYtVJa6CIrg2A==", + "dev": true, + "requires": { + "@types/node": "9.4.0" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.1.tgz", + "integrity": "sha512-gRJDcIjFSzMcmG/GrJlgL0wWoAxr11mVzCq32bjka0endupm9meLwvoJUKc4HDeFiEIB2X3GvNrhF5cKO4Bd4A==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-2.3.0.tgz", + "integrity": "sha1-+CBJdb0NrLvltYqKk//B/tD/zSo=", + "dev": true, + "requires": { + "@types/clone": "0.1.30", + "@types/node": "6.0.96", + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "2.2.3" + }, + "dependencies": { + "@types/node": { + "version": "6.0.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.96.tgz", + "integrity": "sha512-fsOOY6tMQ3jCB2wD51XFDmmpgm4wVKkJECdcVRqapbJEa7awJDcr+SaH8toz+4r4KW8YQ3M7ybXMoSDo1QGewA==", + "dev": true + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.7", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.96", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.96.tgz", + "integrity": "sha512-fsOOY6tMQ3jCB2wD51XFDmmpgm4wVKkJECdcVRqapbJEa7awJDcr+SaH8toz+4r4KW8YQ3M7ybXMoSDo1QGewA==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/font-roboto/package.json b/bower_components/font-roboto/package.json new file mode 100644 index 00000000..a74ad2b7 --- /dev/null +++ b/bower_components/font-roboto/package.json @@ -0,0 +1,26 @@ +{ + "name": "@polymerelements/font-roboto", + "version": "1.0.1", + "description": "An HTML import for Roboto", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "font", + "roboto" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/font-roboto.git" + }, + "main": "roboto.html", + "license": "BSD-3-Clause", + "homepage": "https://github.com/PolymerElements/font-roboto/", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.1.1", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/font-roboto/roboto.d.ts b/bower_components/font-roboto/roboto.d.ts new file mode 100644 index 00000000..12fab1ef --- /dev/null +++ b/bower_components/font-roboto/roboto.d.ts @@ -0,0 +1,10 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * roboto.html + */ + diff --git a/bower_components/font-roboto/roboto.html b/bower_components/font-roboto/roboto.html new file mode 100644 index 00000000..417ee18c --- /dev/null +++ b/bower_components/font-roboto/roboto.html @@ -0,0 +1,10 @@ + + diff --git a/bower_components/install/.bower.json b/bower_components/install/.bower.json new file mode 100644 index 00000000..61aac29f --- /dev/null +++ b/bower_components/install/.bower.json @@ -0,0 +1,14 @@ +{ + "name": "install", + "homepage": "https://github.com/tombigel/detect-zoom", + "version": "1.0.4", + "_release": "1.0.4", + "_resolution": { + "type": "version", + "tag": "v1.0.4", + "commit": "d7068c9bc6db09d458af90f19a02084efb141f66" + }, + "_source": "https://github.com/tombigel/detect-zoom.git", + "_target": "^1.0.4", + "_originalSource": "install" +} \ No newline at end of file diff --git a/bower_components/install/.gitignore b/bower_components/install/.gitignore new file mode 100644 index 00000000..c78ca6a0 --- /dev/null +++ b/bower_components/install/.gitignore @@ -0,0 +1,23 @@ +# Compiled Python files +*.pyc + +# Folder view configuration files +.DS_Store +Desktop.ini + +# Thumbnail cache files +._* +Thumbs.db + +# Files that might appear on external disks +.Spotlight-V100 +.Trashes + +# IntelliJ +*.iml +*.ipr +*.iws +.idea + +# npm +node-modules \ No newline at end of file diff --git a/bower_components/install/Makefile b/bower_components/install/Makefile new file mode 100644 index 00000000..0f048612 --- /dev/null +++ b/bower_components/install/Makefile @@ -0,0 +1,4 @@ +UGLIFY=./node_modules/uglify-js/bin/uglifyjs + +detect-zoom.min.js: detect-zoom.js + $(UGLIFY) detect-zoom.js -c > detect-zoom.min.js diff --git a/bower_components/install/README.md b/bower_components/install/README.md new file mode 100644 index 00000000..7228ff3b --- /dev/null +++ b/bower_components/install/README.md @@ -0,0 +1,118 @@ +Cross Browser Zoom and Pixel Ratio Detector +====== +------ + +### Known issues: +* In Firefox on retina displays (Macbook Pros), the base zoom level is always 2.0. I'm aware of it and looking for a solution. +* In some multi-monitor enviroments where each monitor has a different 'pixel aspect ratio' windows that span accross both monitors might return false pixelAspectRatio values. + +What is this for? +------ +Detecting the browser zoom level and device pixel ratio relative to the zoom level. + +It can be used to show higher-resolution `canvas` or `img` when necessary, +to warn users that your site's layout will be broken in their current zoom level, +and much more. +Personally I'm maintaining it to use Detect-zoom in [Wix.com](http://wix.com)'s editor to warn users +that their browser is in zoom mode before saving important changes to their website. + +What happend to @yonran? +------ +Don't worry, he is well. +As of January 2013 [@yonran](https://github.com/yonran) stopped maintaining his source of detect-zoom, and transferred the repository to me. +If you are looking to update previous versions note that there were some breaking changes + +* **Major Changes from the latest yonran version:** + * `DetectZoom` object name changed to `detectZoom` + * `DetectZoom.ratio()` is no longer publicly accessible + * Supported browsers: IE8+, FF4+, modern Webkit, mobile Webkit, Opera 11.1+ + * *IE6, IE7, FF 3.6 and Opera 10.x are no longer supported* + * Added support to be loaded as an AMD and CommonJS module + +Live Example +------ +See the Live Example section in +http://tombigel.github.com/detect-zoom/ + +Usage +------ +**Detect-zoom has only two public functions:** +* `zoom()` Returns the zoom level of the user's browser using Javascript. +* `device()` Returns the device pixel ratio multiplied by the zoom level (Read [more about devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html) at QuirksMode) + +```html + + +``` + +**AMD Usage** + +```javascript +require(['detect-zoom'], function(detectZoom){ + var zoom = detectZoom.zoom(); +}); +``` + +**Installing with NPM** + +```bash +> npm install detect-zoom +``` + +Changelog +------ + +2013/4/01 +* Changed WebKit detection from deprecated webkitTextSizeAdjust to webkitMarquee +* Changed WebKitMobile detection from unreliable 'ontouchstart' event (can be triggered on desktops too) to 'orientation' property that is hopefully more reliable +* Minor version bump to 1.0.4 + +2013/3/29 +* Added package.json (thanks [@TCampaigne](https://github.com/TCampaigne)) +* Some documentation fixes +* Added detect-zoom to npm package manager (again, thanks [@TCampaigne](https://github.com/TCampaigne)) + +2013/2/25 +* Fixed a missing 'else' between ie8 and ie10 detection +* Minor version bump to 1.0.2 + +2013/2/15 +* Added a fix for IE10 Metro (or whatever MS calls it these days..) by [@stefanvanburen](https://github.com/stefanvanburen) +* Minor version bump to 1.0.1 +* Added minimized version + +2013/2/05 +* Merged a pull request that fixed zoom on IE being returned X100 (thanks [@kreymerman](https://github.com/kreymerman)) +* Refactored the code some more, changed some function names +* Browser dependent main function is created only on initialization (thanks [@jsmaker](https://github.com/jsmaker)) +* _Open Issue: Firefox returns `zoom` and `devicePixelRatio` the same. Still looking for a solution here._ +* Started versioning - this is version 1.0.0 + +2013/1/27 +* Added a fix to Mozilla's (Broken as I see it - https://bugzilla.mozilla.org/show_bug.cgi?id=809788) +implementation of window.devicePixel starting Firefox 18 + +2013/1/26 +* Repository moved here +* Refactored most of the code +* Removed support for older browsers +* Added support for AMD and CommonJS + + +Help Needed +------ + +***Detect-zoom is not complete, many parts of the code are 6 to 12 months old and I'm still reviewing them +I need help testing different browsers, finding better ways to measure zoom on problematic browsers (ahm.. Firefox.. ahm) +patches are more than welcome.*** + + +License +------ + +Detect-zoom is dual-licensed under the [WTFPL](http://www.wtfpl.net/about/) and [MIT](http://opensource.org/licenses/MIT) license, at the recipient's choice. diff --git a/bower_components/install/detect-zoom.js b/bower_components/install/detect-zoom.js new file mode 100644 index 00000000..6e4b841b --- /dev/null +++ b/bower_components/install/detect-zoom.js @@ -0,0 +1,299 @@ +/* Detect-zoom + * ----------- + * Cross Browser Zoom and Pixel Ratio Detector + * Version 1.0.4 | Apr 1 2013 + * dual-licensed under the WTFPL and MIT license + * Maintained by https://github/tombigel + * Original developer https://github.com/yonran + */ + +//AMD and CommonJS initialization copied from https://github.com/zohararad/audio5js +(function (root, ns, factory) { + "use strict"; + + if (typeof (module) !== 'undefined' && module.exports) { // CommonJS + module.exports = factory(ns, root); + } else if (typeof (define) === 'function' && define.amd) { // AMD + define(function () { + return factory(ns, root); + }); + } else { + root[ns] = factory(ns, root); + } + +}(window, 'detectZoom', function () { + + /** + * Use devicePixelRatio if supported by the browser + * @return {Number} + * @private + */ + var devicePixelRatio = function () { + return window.devicePixelRatio || 1; + }; + + /** + * Fallback function to set default values + * @return {Object} + * @private + */ + var fallback = function () { + return { + zoom: 1, + devicePxPerCssPx: 1 + }; + }; + /** + * IE 8 and 9: no trick needed! + * TODO: Test on IE10 and Windows 8 RT + * @return {Object} + * @private + **/ + var ie8 = function () { + var zoom = Math.round((screen.deviceXDPI / screen.logicalXDPI) * 100) / 100; + return { + zoom: zoom, + devicePxPerCssPx: zoom * devicePixelRatio() + }; + }; + + /** + * For IE10 we need to change our technique again... + * thanks https://github.com/stefanvanburen + * @return {Object} + * @private + */ + var ie10 = function () { + var zoom = Math.round((document.documentElement.offsetHeight / window.innerHeight) * 100) / 100; + return { + zoom: zoom, + devicePxPerCssPx: zoom * devicePixelRatio() + }; + }; + + /** + * Mobile WebKit + * the trick: window.innerWIdth is in CSS pixels, while + * screen.width and screen.height are in system pixels. + * And there are no scrollbars to mess up the measurement. + * @return {Object} + * @private + */ + var webkitMobile = function () { + var deviceWidth = (Math.abs(window.orientation) == 90) ? screen.height : screen.width; + var zoom = deviceWidth / window.innerWidth; + return { + zoom: zoom, + devicePxPerCssPx: zoom * devicePixelRatio() + }; + }; + + /** + * Desktop Webkit + * the trick: an element's clientHeight is in CSS pixels, while you can + * set its line-height in system pixels using font-size and + * -webkit-text-size-adjust:none. + * device-pixel-ratio: http://www.webkit.org/blog/55/high-dpi-web-sites/ + * + * Previous trick (used before http://trac.webkit.org/changeset/100847): + * documentElement.scrollWidth is in CSS pixels, while + * document.width was in system pixels. Note that this is the + * layout width of the document, which is slightly different from viewport + * because document width does not include scrollbars and might be wider + * due to big elements. + * @return {Object} + * @private + */ + var webkit = function () { + var important = function (str) { + return str.replace(/;/g, " !important;"); + }; + + var div = document.createElement('div'); + div.innerHTML = "1
    2
    3
    4
    5
    6
    7
    8
    9
    0"; + div.setAttribute('style', important('font: 100px/1em sans-serif; -webkit-text-size-adjust: none; text-size-adjust: none; height: auto; width: 1em; padding: 0; overflow: visible;')); + + // The container exists so that the div will be laid out in its own flow + // while not impacting the layout, viewport size, or display of the + // webpage as a whole. + // Add !important and relevant CSS rule resets + // so that other rules cannot affect the results. + var container = document.createElement('div'); + container.setAttribute('style', important('width:0; height:0; overflow:hidden; visibility:hidden; position: absolute;')); + container.appendChild(div); + + document.body.appendChild(container); + var zoom = 1000 / div.clientHeight; + zoom = Math.round(zoom * 100) / 100; + document.body.removeChild(container); + + return{ + zoom: zoom, + devicePxPerCssPx: zoom * devicePixelRatio() + }; + }; + + /** + * no real trick; device-pixel-ratio is the ratio of device dpi / css dpi. + * (Note that this is a different interpretation than Webkit's device + * pixel ratio, which is the ratio device dpi / system dpi). + * + * Also, for Mozilla, there is no difference between the zoom factor and the device ratio. + * + * @return {Object} + * @private + */ + var firefox4 = function () { + var zoom = mediaQueryBinarySearch('min--moz-device-pixel-ratio', '', 0, 10, 20, 0.0001); + zoom = Math.round(zoom * 100) / 100; + return { + zoom: zoom, + devicePxPerCssPx: zoom + }; + }; + + /** + * Firefox 18.x + * Mozilla added support for devicePixelRatio to Firefox 18, + * but it is affected by the zoom level, so, like in older + * Firefox we can't tell if we are in zoom mode or in a device + * with a different pixel ratio + * @return {Object} + * @private + */ + var firefox18 = function () { + return { + zoom: firefox4().zoom, + devicePxPerCssPx: devicePixelRatio() + }; + }; + + /** + * works starting Opera 11.11 + * the trick: outerWidth is the viewport width including scrollbars in + * system px, while innerWidth is the viewport width including scrollbars + * in CSS px + * @return {Object} + * @private + */ + var opera11 = function () { + var zoom = window.top.outerWidth / window.top.innerWidth; + zoom = Math.round(zoom * 100) / 100; + return { + zoom: zoom, + devicePxPerCssPx: zoom * devicePixelRatio() + }; + }; + + /** + * Use a binary search through media queries to find zoom level in Firefox + * @param property + * @param unit + * @param a + * @param b + * @param maxIter + * @param epsilon + * @return {Number} + */ + var mediaQueryBinarySearch = function (property, unit, a, b, maxIter, epsilon) { + var matchMedia; + var head, style, div; + if (window.matchMedia) { + matchMedia = window.matchMedia; + } else { + head = document.getElementsByTagName('head')[0]; + style = document.createElement('style'); + head.appendChild(style); + + div = document.createElement('div'); + div.className = 'mediaQueryBinarySearch'; + div.style.display = 'none'; + document.body.appendChild(div); + + matchMedia = function (query) { + style.sheet.insertRule('@media ' + query + '{.mediaQueryBinarySearch ' + '{text-decoration: underline} }', 0); + var matched = getComputedStyle(div, null).textDecoration == 'underline'; + style.sheet.deleteRule(0); + return {matches: matched}; + }; + } + var ratio = binarySearch(a, b, maxIter); + if (div) { + head.removeChild(style); + document.body.removeChild(div); + } + return ratio; + + function binarySearch(a, b, maxIter) { + var mid = (a + b) / 2; + if (maxIter <= 0 || b - a < epsilon) { + return mid; + } + var query = "(" + property + ":" + mid + unit + ")"; + if (matchMedia(query).matches) { + return binarySearch(mid, b, maxIter - 1); + } else { + return binarySearch(a, mid, maxIter - 1); + } + } + }; + + /** + * Generate detection function + * @private + */ + var detectFunction = (function () { + var func = fallback; + //IE8+ + if (!isNaN(screen.logicalXDPI) && !isNaN(screen.systemXDPI)) { + func = ie8; + } + // IE10+ / Touch + else if (window.navigator.msMaxTouchPoints) { + func = ie10; + } + //Mobile Webkit + else if ('orientation' in window && typeof document.body.style.webkitMarquee === 'string') { + func = webkitMobile; + } + //WebKit + else if (typeof document.body.style.webkitMarquee === 'string') { + func = webkit; + } + //Opera + else if (navigator.userAgent.indexOf('Opera') >= 0) { + func = opera11; + } + //Last one is Firefox + //FF 18.x + else if (window.devicePixelRatio) { + func = firefox18; + } + //FF 4.0 - 17.x + else if (firefox4().zoom > 0.001) { + func = firefox4; + } + + return func; + }()); + + + return ({ + + /** + * Ratios.zoom shorthand + * @return {Number} Zoom level + */ + zoom: function () { + return detectFunction().zoom; + }, + + /** + * Ratios.devicePxPerCssPx shorthand + * @return {Number} devicePxPerCssPx level + */ + device: function () { + return detectFunction().devicePxPerCssPx; + } + }); +})); diff --git a/bower_components/install/detect-zoom.min.js b/bower_components/install/detect-zoom.min.js new file mode 100644 index 00000000..2e2883b5 --- /dev/null +++ b/bower_components/install/detect-zoom.min.js @@ -0,0 +1 @@ +(function(root,ns,factory){"use strict";"undefined"!=typeof module&&module.exports?module.exports=factory(ns,root):"function"==typeof define&&define.amd?define(function(){return factory(ns,root)}):root[ns]=factory(ns,root)})(window,"detectZoom",function(){var devicePixelRatio=function(){return window.devicePixelRatio||1},fallback=function(){return{zoom:1,devicePxPerCssPx:1}},ie8=function(){var zoom=Math.round(100*(screen.deviceXDPI/screen.logicalXDPI))/100;return{zoom:zoom,devicePxPerCssPx:zoom*devicePixelRatio()}},ie10=function(){var zoom=Math.round(100*(document.documentElement.offsetHeight/window.innerHeight))/100;return{zoom:zoom,devicePxPerCssPx:zoom*devicePixelRatio()}},webkitMobile=function(){var deviceWidth=90==Math.abs(window.orientation)?screen.height:screen.width,zoom=deviceWidth/window.innerWidth;return{zoom:zoom,devicePxPerCssPx:zoom*devicePixelRatio()}},webkit=function(){var important=function(str){return str.replace(/;/g," !important;")},div=document.createElement("div");div.innerHTML="1
    2
    3
    4
    5
    6
    7
    8
    9
    0",div.setAttribute("style",important("font: 100px/1em sans-serif; -webkit-text-size-adjust: none; text-size-adjust: none; height: auto; width: 1em; padding: 0; overflow: visible;"));var container=document.createElement("div");container.setAttribute("style",important("width:0; height:0; overflow:hidden; visibility:hidden; position: absolute;")),container.appendChild(div),document.body.appendChild(container);var zoom=1e3/div.clientHeight;return zoom=Math.round(100*zoom)/100,document.body.removeChild(container),{zoom:zoom,devicePxPerCssPx:zoom*devicePixelRatio()}},firefox4=function(){var zoom=mediaQueryBinarySearch("min--moz-device-pixel-ratio","",0,10,20,1e-4);return zoom=Math.round(100*zoom)/100,{zoom:zoom,devicePxPerCssPx:zoom}},firefox18=function(){return{zoom:firefox4().zoom,devicePxPerCssPx:devicePixelRatio()}},opera11=function(){var zoom=window.top.outerWidth/window.top.innerWidth;return zoom=Math.round(100*zoom)/100,{zoom:zoom,devicePxPerCssPx:zoom*devicePixelRatio()}},mediaQueryBinarySearch=function(property,unit,a,b,maxIter,epsilon){function binarySearch(a,b,maxIter){var mid=(a+b)/2;if(0>=maxIter||epsilon>b-a)return mid;var query="("+property+":"+mid+unit+")";return matchMedia(query).matches?binarySearch(mid,b,maxIter-1):binarySearch(a,mid,maxIter-1)}var matchMedia,head,style,div;window.matchMedia?matchMedia=window.matchMedia:(head=document.getElementsByTagName("head")[0],style=document.createElement("style"),head.appendChild(style),div=document.createElement("div"),div.className="mediaQueryBinarySearch",div.style.display="none",document.body.appendChild(div),matchMedia=function(query){style.sheet.insertRule("@media "+query+"{.mediaQueryBinarySearch "+"{text-decoration: underline} }",0);var matched="underline"==getComputedStyle(div,null).textDecoration;return style.sheet.deleteRule(0),{matches:matched}});var ratio=binarySearch(a,b,maxIter);return div&&(head.removeChild(style),document.body.removeChild(div)),ratio},detectFunction=function(){var func=fallback;return isNaN(screen.logicalXDPI)||isNaN(screen.systemXDPI)?window.navigator.msMaxTouchPoints?func=ie10:"orientation"in window&&"string"==typeof document.body.style.webkitMarquee?func=webkitMobile:"string"==typeof document.body.style.webkitMarquee?func=webkit:navigator.userAgent.indexOf("Opera")>=0?func=opera11:window.devicePixelRatio?func=firefox18:firefox4().zoom>.001&&(func=firefox4):func=ie8,func}();return{zoom:function(){return detectFunction().zoom},device:function(){return detectFunction().devicePxPerCssPx}}}); \ No newline at end of file diff --git a/bower_components/install/package.json b/bower_components/install/package.json new file mode 100644 index 00000000..e895f6a7 --- /dev/null +++ b/bower_components/install/package.json @@ -0,0 +1,31 @@ +{ + "name": "detect-zoom", + "version": "1.0.4", + "description": "Cross Browser Zoom and Pixel Ratio Detector", + "main": "detect-zoom.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git://github.com/tombigel/detect-zoom.git" + }, + "keywords": [ + "browser", + "zoom", + "compatibility", + "pixel", + "ratio", + "retina" + ], + "author": "Yonathan Randolph", + "contributors": [ + "Tom Bigelajzen " + ], + "license": "MIT", + "readmeFilename": "README.md", + "gitHead": "6eaf3107a6913a4f7b93665ba6d5bc16cdf0f3ab", + "devDependencies": { + "uglify-js": "~2.2.5" + } +} diff --git a/bower_components/iron-a11y-announcer/.bower.json b/bower_components/iron-a11y-announcer/.bower.json new file mode 100644 index 00000000..cfc23be1 --- /dev/null +++ b/bower_components/iron-a11y-announcer/.bower.json @@ -0,0 +1,65 @@ +{ + "name": "iron-a11y-announcer", + "version": "2.1.0", + "description": "A singleton element that simplifies announcing text to screen readers.", + "keywords": [ + "web-components", + "polymer", + "a11y", + "live" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" + }, + "main": "iron-a11y-announcer.html", + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-a11y-announcer", + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "7e2c529fcb96582cb8c13905896fcf8496763966" + }, + "_source": "https://github.com/PolymerElements/iron-a11y-announcer.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-a11y-announcer" +} \ No newline at end of file diff --git a/bower_components/iron-a11y-announcer/.github/CODEOWNERS b/bower_components/iron-a11y-announcer/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-a11y-announcer/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md b/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..594376ff --- /dev/null +++ b/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-a11y-announcer/.gitignore b/bower_components/iron-a11y-announcer/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-a11y-announcer/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-a11y-announcer/.travis.yml b/bower_components/iron-a11y-announcer/.travis.yml new file mode 100644 index 00000000..d13ba205 --- /dev/null +++ b/bower_components/iron-a11y-announcer/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + QlyQxWnziNgzWqptOtM0Oq1s/q6YHT/GPuslA31yC0nex7Wi6X9DFoF5rNlDEY0Y6WxCh8xzsZpwXrI9vZypgKoZlAwO1e3RLDsGV0APPrWg66MyImAwlHAJolvJg+ASsLJ8pm9nxMP/xapRamciqUMTUTeZh0V/5SR82BXQCf3zXe+9cMmAFNXBrIg6LDCm77AwW+1vkE/IZAL1oShSBwXEybn9kpYsdCiOGdnvMlChhaeqRlOUXkr3LHPUDtV8hbd2EswmPeHSV+RGdB/UFyRGa4g7gPgqtz7U2FS0/BqT0G2iJlAXGCttJnS6fXwyCriREplYjXzqrX0MeRWHD5vNxAucO/Va1n2tHEmJM3OhIYgO8VDM8S3nRRUDE/ifSjsu1UgBN7b1vml0zWo7rdvpD8fedx6+g4ph390kg5XRFNJZJ03YijfcNVUfnOTEWt9LntGRq5aKPB6RSbEvkuZFjLGHHD/xQu2LfyIjmueIWJNk4JeCNrm3zFPMhBAZfu7WTJPTk3dZ2L+0mty1QbaJ/lyTWIBYbTVBwwHzXKrPbgg5u/9e6DjhT8Zg/eJvmN/+sXAlUqnmTAE9coQ0LIivg6COWPoRDmdGl2uMygiCaLkFAy4sqhjP99Aq5/ekZWXUrTTa4NGw2qnvM4JY9YcEzUC0ZqzM11gj8x8ATi0= + - secure: >- + d0wz93AwXyNVmCr33od+TFC51nZgUzcdwHiJWxX0E+msZ8VgYCjj21D6OOZy84O7vYiPFy8vO03dvyqkj1uclEvfu2YlfiEaRxifKaxN6mQx142WjBtdHFjEUfBJR5eqm5qSeGj7aSZzPgerUl6yAkYH5tFldBatevF5Ax98Yr1dCsgpegsLCmBmusPH7tERnBilalcvXKVBfRXrnrkFkVoWroBb04W79aZSTlLGTlpBJCzR9Xe7RiXqnanSQQb1LjyCl55P0NvVVRjwpoVnikRqkIV/jehcNfIiJSC/vetepqqUehD6RdP2T8Nio7YvlLtXnW9vptlKYL2uZjhg23DyhgGW/4ZPaIABWVBqVUBbyaX6GCXo3EMyQcZhi17qCWEKnFGCrorC/4ZM6A0kJ+olOfQxszf9HrAX8+9DCaiKscn2Lz+ON/opFKFRAQngCJ9swBc27twavUxx4qNzOVJLdH8oGhCdl5DA4mgGGDWZz463X0HzagGUpi/RfME26uQnTkyK8eErL2yac+1VmA/QOx0RkYlrZ/pIEywkZPWusjJepCm9nlZGylaBr2mDpk8Kea+7IytO6sefiBwjX1RiqmnjnszO3jb/w5s0giUItWuFmDr14sOaFmj6wQB643eSGi42LSPG+FMea1RwUupyEPeLZq/aoJ0jmewGLv4= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-a11y-announcer/CONTRIBUTING.md b/bower_components/iron-a11y-announcer/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-a11y-announcer/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-a11y-announcer/README.md b/bower_components/iron-a11y-announcer/README.md new file mode 100644 index 00000000..8b997a30 --- /dev/null +++ b/bower_components/iron-a11y-announcer/README.md @@ -0,0 +1,55 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-a11y-announcer.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-announcer) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-a11y-announcer)_ + + +##<iron-a11y-announcer> + +`iron-a11y-announcer` is a singleton element that is intended to add a11y +to features that require on-demand announcement from screen readers. In +order to make use of the announcer, it is best to request its availability +in the announcing element. + +Example: + +```javascript +Polymer({ + + is: 'x-chatty', + + attached: function() { + // This will create the singleton element if it has not + // been created yet: + Polymer.IronA11yAnnouncer.requestAvailability(); + } +}); +``` + +After the `iron-a11y-announcer` has been made available, elements can +make announces by firing bubbling `iron-announce` events. + +Example: + +```javascript +this.fire('iron-announce', { + text: 'This is an announcement!' +}, { bubbles: true }); +``` + +Note: announcements are only audible if you have a screen reader enabled. + + diff --git a/bower_components/iron-a11y-announcer/bower.json b/bower_components/iron-a11y-announcer/bower.json new file mode 100644 index 00000000..524c047b --- /dev/null +++ b/bower_components/iron-a11y-announcer/bower.json @@ -0,0 +1,55 @@ +{ + "name": "iron-a11y-announcer", + "version": "2.0.0", + "description": "A singleton element that simplifies announcing text to screen readers.", + "keywords": [ + "web-components", + "polymer", + "a11y", + "live" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" + }, + "main": "iron-a11y-announcer.html", + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-a11y-announcer/demo/index.html b/bower_components/iron-a11y-announcer/demo/index.html new file mode 100644 index 00000000..8d5aa4c4 --- /dev/null +++ b/bower_components/iron-a11y-announcer/demo/index.html @@ -0,0 +1,75 @@ + + + + + + + + + + + iron-a11y-announcer demo + + + + + + + + + + + + +
    +

    Note: in order to hear the announcements, be sure to turn on your favorite screen reader!

    + +

    Announcer used directly on the main document

    + + + + +

    Announcer used inside a custom element

    + + + +
    + + diff --git a/bower_components/iron-a11y-announcer/demo/x-announces.html b/bower_components/iron-a11y-announcer/demo/x-announces.html new file mode 100644 index 00000000..b46d49d5 --- /dev/null +++ b/bower_components/iron-a11y-announcer/demo/x-announces.html @@ -0,0 +1,55 @@ + + + + + + + + + + diff --git a/bower_components/iron-a11y-announcer/index.html b/bower_components/iron-a11y-announcer/index.html new file mode 100644 index 00000000..1f8889a8 --- /dev/null +++ b/bower_components/iron-a11y-announcer/index.html @@ -0,0 +1,28 @@ + + + + + + + iron-a11y-announcer + + + + + + + + + + + + + diff --git a/bower_components/iron-a11y-announcer/iron-a11y-announcer.d.ts b/bower_components/iron-a11y-announcer/iron-a11y-announcer.d.ts new file mode 100644 index 00000000..e777c372 --- /dev/null +++ b/bower_components/iron-a11y-announcer/iron-a11y-announcer.d.ts @@ -0,0 +1,68 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-a11y-announcer.html + */ + +/// + +declare namespace Polymer { + + /** + * `iron-a11y-announcer` is a singleton element that is intended to add a11y + * to features that require on-demand announcement from screen readers. In + * order to make use of the announcer, it is best to request its availability + * in the announcing element. + * + * Example: + * + * Polymer({ + * + * is: 'x-chatty', + * + * attached: function() { + * // This will create the singleton element if it has not + * // been created yet: + * Polymer.IronA11yAnnouncer.requestAvailability(); + * } + * }); + * + * After the `iron-a11y-announcer` has been made available, elements can + * make announces by firing bubbling `iron-announce` events. + * + * Example: + * + * this.fire('iron-announce', { + * text: 'This is an announcement!' + * }, { bubbles: true }); + * + * Note: announcements are only audible if you have a screen reader enabled. + */ + class IronA11yAnnouncer extends Polymer.Element { + + /** + * The value of mode is used to set the `aria-live` attribute + * for the element that will be announced. Valid values are: `off`, + * `polite` and `assertive`. + */ + mode: string|null|undefined; + _text: string|null|undefined; + created(): void; + + /** + * Cause a text string to be announced by screen readers. + * + * @param text The text that should be announced. + */ + announce(text: string): void; + _onIronAnnounce(event: any): void; + } +} + +interface HTMLElementTagNameMap { + "iron-a11y-announcer": Polymer.IronA11yAnnouncer; +} diff --git a/bower_components/iron-a11y-announcer/iron-a11y-announcer.html b/bower_components/iron-a11y-announcer/iron-a11y-announcer.html new file mode 100644 index 00000000..11a8809f --- /dev/null +++ b/bower_components/iron-a11y-announcer/iron-a11y-announcer.html @@ -0,0 +1,124 @@ + + + + + + + + + + + diff --git a/bower_components/iron-a11y-announcer/package-lock.json b/bower_components/iron-a11y-announcer/package-lock.json new file mode 100644 index 00000000..51a44e05 --- /dev/null +++ b/bower_components/iron-a11y-announcer/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-a11y-announcer", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-a11y-announcer/package.json b/bower_components/iron-a11y-announcer/package.json new file mode 100644 index 00000000..ee95f424 --- /dev/null +++ b/bower_components/iron-a11y-announcer/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-a11y-announcer", + "private": true, + "description": "A singleton element that simplifies announcing text to screen readers.", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-a11y-announcer/test/index.html b/bower_components/iron-a11y-announcer/test/index.html new file mode 100644 index 00000000..fb7c0ce5 --- /dev/null +++ b/bower_components/iron-a11y-announcer/test/index.html @@ -0,0 +1,22 @@ + + + iron-a11y-announcer tests + + + + + + diff --git a/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html b/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html new file mode 100644 index 00000000..510bf6f9 --- /dev/null +++ b/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html @@ -0,0 +1,56 @@ + + + + + + iron-a11y-announcer + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys-behavior/.bower.json b/bower_components/iron-a11y-keys-behavior/.bower.json new file mode 100644 index 00000000..5d8f1f6f --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/.bower.json @@ -0,0 +1,64 @@ +{ + "name": "iron-a11y-keys-behavior", + "version": "2.1.1", + "description": "A behavior that enables keybindings for greater a11y.", + "keywords": [ + "web-components", + "web-component", + "polymer", + "a11y", + "input" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" + }, + "main": "iron-a11y-keys-behavior.html", + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior", + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "b7e78a4a8bdd857780ecd8b54852bb27dbf8f216" + }, + "_source": "https://github.com/PolymerElements/iron-a11y-keys-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-a11y-keys-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-a11y-keys-behavior/.github/CODEOWNERS b/bower_components/iron-a11y-keys-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..7d936048 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-a11y-keys-behavior/.gitignore b/bower_components/iron-a11y-keys-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-a11y-keys-behavior/.travis.yml b/bower_components/iron-a11y-keys-behavior/.travis.yml new file mode 100644 index 00000000..c0d007ab --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g bower polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Typings are stale. Please run "npm run format".' && false) +env: + global: + - secure: >- + XJ31r/5USVGZRtziCLfr8qM1pJKKQMUN1AeYbCdDFEc6i293WxZneR8PwUVhvyptu+qdyd28uy24sH+Ob7kShFbZTUaif5P4gqHPekrYToI0aHyhmVX7C1LmT7nEL8IcT62NhUwh+83eHTAdodkXgnhfQhPn9FHV24Dkvwm8OKhhzEhtTgUGVuGX9j9FyNV6n1+gf4X3Zq63+NkEUh5vpolpue4W7ul2u0sf4l0fzg9pvKPCmywUwX2i7wwAEf3CJghMu2xup54OzXTEkjjSou/ebt1ZnxaUNV1+dblfUne0v9wTD0dPF8H3DwgewwzcZSbOZmj6lFVHRzmLzWcRJOEKdDrpJkjpg7HIhNPGCKDUcNylekafqi7ezhzrkzFwkh6JCdAj7He4mv/X/OUDNjNCClB7Ms/+WPZwtACvIcR2/pvgZ+1PHbIkbIInyAe6iVMMR0oUecei/X+d04DH7iW7rrODVEu6qdibsJki0R0lR2184rrDO9pGek4rLu9sUQBDNgEM6ZLEXXByO8lpG4xStRdkg0/uR5i1/Q8kux4gIJ9yV8WLANkS8NVlmuJgIi6kbh5n4VVKaihGhbBUuTt2aL7fLnH2I6YRwjyNI9TOIRxwk4afppFYUuq6Fv+nfPcdqDOi5Y2AOXLJ3Yvco0+H57nXe/Ny29gFVW4Kftg= + - secure: >- + huEi/Ja2qnLatb7EJ4Jdc/XAeKphhdH6G+px7/XZY33oDawjStxakx0N/MpT0LPE1BdEWOYTzc17CzKv9R2L3ybWksqXyv/Zs+1NMTmpEAS/54Sk4E61aE3nrV5cfS2R8dBGbJhFoH1W237BDsbw9A4XhsTvhxlIsluWsZgeurbleGg+DgAmg8KlHGRddsfBFgXEk+Khhj6KPsbgPUiWhXpdnXKBPJKF7fJEAbsGR4aFK2eFbYd1OAgJg2Aye0n93IHe+SsxcKRUYteg6UK9V8fk7q5PBlvaodly4F3gH82l+zbnhcTFVW+qN0s6xDBTQzsQ55eTlO3pEezIo3u/1Lq41Yoe6scEkLs63pSYqoB3kakbhLMDJAen080ggdNg9evqvgyznKFYM7sqEcPu+KxHd043DyLTTW11y9lZ/hV3xSTdG4W8mV7+ILbIi54wMaYAcWSGMTOVM0JC/KDoVjze3tzDmfcZwiutLPBFgfrkfJQf3fyqcgvhoLKtHaWHI+76XDsXwEOS2Q5OX9oDtjoZaZ7r8Gp4dqwaKYceOrlsLbaZOLh5nJ4WnDbf4AqZkeM22QWWIfUN6aK+yhsDpQ/d+xJ+/WFENDADrMEKp0Lf3CkzAAcpHp3u65B9qsqweD5/5Je9t0GsA/NvK2xCasnNz6inYy4tAx9i4NWPcOY= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md b/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-a11y-keys-behavior/README.md b/bower_components/iron-a11y-keys-behavior/README.md new file mode 100644 index 00000000..87f99026 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/README.md @@ -0,0 +1,45 @@ + +[![Build status](https://travis-ci.org/PolymerElements/iron-a11y-keys-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-keys-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-a11y-keys-behavior)_ + + +## Polymer.IronA11yKeysBehavior + +`Polymer.IronA11yKeysBehavior` provides a normalized interface for processing +keyboard commands that pertain to [WAI-ARIA best practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). +The element takes care of browser differences with respect to Keyboard events +and uses an expressive syntax to filter key presses. + +Use the `keyBindings` prototype property to express what combination of keys +will trigger the callback. A key binding has the format +`"KEY+MODIFIER:EVENT": "callback"` (`"KEY": "callback"` or +`"KEY:EVENT": "callback"` are valid as well). Some examples: + +```javascript + keyBindings: { + 'space': '_onKeydown', // same as 'space:keydown' + 'shift+tab': '_onKeydown', + 'enter:keypress': '_onKeypress', + 'esc:keyup': '_onKeyup' + } +``` + +The callback will receive with an event containing the following information in `event.detail`: + +```javascript + _onKeydown: function(event) { + console.log(event.detail.combo); // KEY+MODIFIER, e.g. "shift+tab" + console.log(event.detail.key); // KEY only, e.g. "tab" + console.log(event.detail.event); // EVENT, e.g. "keydown" + console.log(event.detail.keyboardEvent); // the original KeyboardEvent + } +``` + +Use the `keyEventTarget` attribute to set up event handlers on a specific +node. + +See the [demo source code](https://github.com/PolymerElements/iron-a11y-keys-behavior/blob/master/demo/x-key-aware.html) +for an example. + + diff --git a/bower_components/iron-a11y-keys-behavior/bower.json b/bower_components/iron-a11y-keys-behavior/bower.json new file mode 100644 index 00000000..f79293d7 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/bower.json @@ -0,0 +1,54 @@ +{ + "name": "iron-a11y-keys-behavior", + "version": "2.1.1", + "description": "A behavior that enables keybindings for greater a11y.", + "keywords": [ + "web-components", + "web-component", + "polymer", + "a11y", + "input" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" + }, + "main": "iron-a11y-keys-behavior.html", + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-a11y-keys-behavior/demo/index.html b/bower_components/iron-a11y-keys-behavior/demo/index.html new file mode 100644 index 00000000..e7685e83 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/demo/index.html @@ -0,0 +1,32 @@ + + + + + + Iron A11y Keys Behavior demo + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html b/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html new file mode 100644 index 00000000..8d4eb2a7 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html @@ -0,0 +1,93 @@ + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys-behavior/index.html b/bower_components/iron-a11y-keys-behavior/index.html new file mode 100644 index 00000000..c53ba6cf --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/index.html @@ -0,0 +1,24 @@ + + + + + + iron-a11y-keys-behavior + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts b/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts new file mode 100644 index 00000000..f02a1f65 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts @@ -0,0 +1,107 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-a11y-keys-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * `Polymer.IronA11yKeysBehavior` provides a normalized interface for processing + * keyboard commands that pertain to [WAI-ARIA best + * practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). The + * element takes care of browser differences with respect to Keyboard events and + * uses an expressive syntax to filter key presses. + * + * Use the `keyBindings` prototype property to express what combination of keys + * will trigger the callback. A key binding has the format + * `"KEY+MODIFIER:EVENT": "callback"` (`"KEY": "callback"` or + * `"KEY:EVENT": "callback"` are valid as well). Some examples: + * + * keyBindings: { + * 'space': '_onKeydown', // same as 'space:keydown' + * 'shift+tab': '_onKeydown', + * 'enter:keypress': '_onKeypress', + * 'esc:keyup': '_onKeyup' + * } + * + * The callback will receive with an event containing the following information + * in `event.detail`: + * + * _onKeydown: function(event) { + * console.log(event.detail.combo); // KEY+MODIFIER, e.g. "shift+tab" + * console.log(event.detail.key); // KEY only, e.g. "tab" + * console.log(event.detail.event); // EVENT, e.g. "keydown" + * console.log(event.detail.keyboardEvent); // the original KeyboardEvent + * } + * + * Use the `keyEventTarget` attribute to set up event handlers on a specific + * node. + * + * See the [demo source + * code](https://github.com/PolymerElements/iron-a11y-keys-behavior/blob/master/demo/x-key-aware.html) + * for an example. + */ + interface IronA11yKeysBehavior { + + /** + * The EventTarget that will be firing relevant KeyboardEvents. Set it to + * `null` to disable the listeners. + */ + keyEventTarget: EventTarget|null; + + /** + * If true, this property will cause the implementing element to + * automatically stop propagation on any handled KeyboardEvents. + */ + stopKeyboardEventPropagation: boolean|null|undefined; + _boundKeyHandlers: any[]|null|undefined; + + /** + * own properties of everything on the "prototype". + */ + _imperativeKeyBindings: object|null|undefined; + + /** + * To be used to express what combination of keys will trigger the relative + * callback. e.g. `keyBindings: { 'esc': '_onEscPressed'}` + */ + keyBindings: object; + registered(): void; + attached(): void; + detached(): void; + + /** + * Can be used to imperatively add a key binding to the implementing + * element. This is the imperative equivalent of declaring a keybinding + * in the `keyBindings` prototype property. + */ + addOwnKeyBinding(eventString: string, handlerName: string): void; + + /** + * When called, will remove all imperatively-added key bindings. + */ + removeOwnKeyBindings(): void; + + /** + * Returns true if a keyboard event matches `eventString`. + */ + keyboardEventMatchesKeys(event: KeyboardEvent|null, eventString: string): boolean; + _collectKeyBindings(): any; + _prepKeyBindings(): void; + _addKeyBinding(eventString: any, handlerName: any): void; + _resetKeyEventListeners(): void; + _listenKeyEventListeners(): void; + _unlistenKeyEventListeners(): void; + _onKeyBindingEvent(keyBindings: any, event: any): void; + _triggerKeyHandler(keyCombo: any, handlerName: any, keyboardEvent: any): void; + } + + const IronA11yKeysBehavior: object; +} diff --git a/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html b/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html new file mode 100644 index 00000000..0005de96 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html @@ -0,0 +1,490 @@ + + + + + diff --git a/bower_components/iron-a11y-keys-behavior/package-lock.json b/bower_components/iron-a11y-keys-behavior/package-lock.json new file mode 100644 index 00000000..f8244363 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-a11y-keys-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.3" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.3.tgz", + "integrity": "sha512-igaEysRgtg5tYJVIdQ1T2lJ3G6OmoY7g0YVWKHLFiVs4YUChd9IRSiLoHSLffwut+CpsHHBDj4vRxxNEMstctw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-a11y-keys-behavior/package.json b/bower_components/iron-a11y-keys-behavior/package.json new file mode 100644 index 00000000..88f10c16 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-a11y-keys-behavior", + "private": true, + "description": "A behavior that enables keybindings for greater a11y.", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-a11y-keys-behavior/test/basic-test.html b/bower_components/iron-a11y-keys-behavior/test/basic-test.html new file mode 100644 index 00000000..b7a0b5b3 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/test/basic-test.html @@ -0,0 +1,430 @@ + + + + + + + iron-a11y-keys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys-behavior/test/index.html b/bower_components/iron-a11y-keys-behavior/test/index.html new file mode 100755 index 00000000..1e0a87d0 --- /dev/null +++ b/bower_components/iron-a11y-keys-behavior/test/index.html @@ -0,0 +1,27 @@ + + + + Tests + + + + + + + + + diff --git a/bower_components/iron-a11y-keys/.bower.json b/bower_components/iron-a11y-keys/.bower.json new file mode 100644 index 00000000..40277647 --- /dev/null +++ b/bower_components/iron-a11y-keys/.bower.json @@ -0,0 +1,64 @@ +{ + "name": "iron-a11y-keys", + "version": "2.1.2", + "description": "A basic element implementation of iron-a11y-keys-behavior, matching the legacy core-a11y-keys.", + "keywords": [ + "web-components", + "web-component", + "polymer", + "a11y", + "input" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-keys.git" + }, + "main": "iron-a11y-keys.html", + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-a11y-keys", + "_release": "2.1.2", + "_resolution": { + "type": "version", + "tag": "v2.1.2", + "commit": "882947a08a1c79f2ede570eb6e30bc42bfa2eead" + }, + "_source": "https://github.com/PolymerElements/iron-a11y-keys.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-a11y-keys" +} \ No newline at end of file diff --git a/bower_components/iron-a11y-keys/.github/CODEOWNERS b/bower_components/iron-a11y-keys/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-a11y-keys/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-a11y-keys/.github/ISSUE_TEMPLATE.md b/bower_components/iron-a11y-keys/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..f16b3668 --- /dev/null +++ b/bower_components/iron-a11y-keys/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-a11y-keys/.gitignore b/bower_components/iron-a11y-keys/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-a11y-keys/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-a11y-keys/.travis.yml b/bower_components/iron-a11y-keys/.travis.yml new file mode 100644 index 00000000..0ba4723c --- /dev/null +++ b/bower_components/iron-a11y-keys/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g bower polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Typings are stale. Please run "npm run format".' && false) +env: + global: + - secure: >- + R3/vUv1ZGFOaVvKRZFhNBaeGGV7U5J5aob6d9K5R7gwgyehuegVllbk1lauuhygxcNQ85+dyRXSw9+xhVa2cRtlHPbQKBMJuZt+NKsmq1+hpQ2lfyo/UWP6v7VIdjyUpKTowZj0YIohtJseW+vH9TZECfjyh+veW5B711aIQlopqswQzecvZMCigToIyx7kFujm8vTcKN4XOoNyB5FlHEnUR472XgCp4CCe/93VJixg1ccXeSR/YWDdZinHyvao4IRnrrXS2H2V7QupEQUZkcXCKAIxvuCFptpS+9ywLZpg/0YjKOazGB0eJV4p7rP1qBpnR024XA2g7mh563o+5QFZkOcPJCLohuEjBPw/XEvXtHIjlgFVtGOhPtMI6qgOz6CQzEWNEKGE083xZeMVFHxeTTVk+TT4pc4iadjwqLBZ2t7U/X4NSxnLT3olr4QL2iNesnrfE9sqbFA/8sJjZQIvaSUU0kK2xHh+W5hYfJigQvO0j9878VsGXhOTOA/OX6ghK6++qqiK39VN+rfvyLXfiO/bwUVxr8mw50ulU5prImMmxtOofD9yvEJ4TyOZoI10+k2vB+dozLvLps5oCKohJZI8xr42M3PWEFFCh/eva3DxmzsB5xdsS4TlmVccZp1SK7RC5t179RVXavzndKwqiegQC2YmblF+UtIgUn8k= + - secure: >- + inpQZsxZ8grQHQ8WxE3uKfZgSLzTXUp4YjBd86EXuydVQkJdMH5WWFpC0dSwb19r14b261xrwU9V1kyV6ZxXWqnb1+GORb6SVQeaKBacE85pPUXZ0kj6eSMtmQN3TMuzZZFSRzT12OEEAPQESPLbOebpydUX6IfOkF8BjeQdJ30jR5uXfOVqCobpMqsrRVJ9GGxXgF5jVdRpaqzTIl4Th1iHJUA8j48fEOhLBJKA7qzJ6xk6hAfdXQtMfDL0uwfYCI2Yd7nDZFvHPgX6bMuqui3cyKiuHxZqt/lrxYqT4L+LrRHm1I0WzcBLKBpLEAHcdhCia/GUWniuFD/va4wL3PIVbhCmEFh17IwH3aZSYfSqnIV+Cx85cjdQ4Uw5CFR46Wfu6HZ2otWpLo4uV4/7Ukq67xNzsPISOIXMOgsbnErMrdSBt28FKQxBDIAU3+Yg73h3KfXCxcYh1MQiMyu1SmVrSpHIxE1ys2LdKsPuIljagilpSgS6nOkihkrqgWJ6hxOUstDggOnG02Wgdoa4XusGz+piHyhkJQSzUkbbsGcTwKCWjrp0mIVU3fR3KLwdRzeMStMX2x6GAIBxATz7yUK2DyyoaNEWBXHg7MRZCaXcB063EJA8Qc8Sx3udubJcvXnuIXuiYm4PWw8bZTh1fYvw3ZELFuM8UbNBpvTbr9E= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-a11y-keys/CONTRIBUTING.md b/bower_components/iron-a11y-keys/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-a11y-keys/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-a11y-keys/README.md b/bower_components/iron-a11y-keys/README.md new file mode 100644 index 00000000..bb937c56 --- /dev/null +++ b/bower_components/iron-a11y-keys/README.md @@ -0,0 +1,124 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-a11y-keys.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-keys) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-a11y-keys)_ + +## <iron-a11y-keys> + +`iron-a11y-keys` provides a cross-browser interface for processing +keyboard commands. The interface adheres to [WAI-ARIA best +practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). +It uses an expressive syntax to filter key presses. + +## Basic usage + +The sample code below is a portion of a custom element. The goal is to call +the `onEnter` method whenever the `paper-input` element is in focus and +the `Enter` key is pressed. + +```html + + +``` + +The custom element declares an `iron-a11y-keys` element that is bound to a +property called `target`. The `target` property +needs to evaluate to the `paper-input` node. `iron-a11y-keys` registers +an event handler for the target node using Polymer's [annotated event handler +syntax](https://www.polymer-project.org/1.0/docs/devguide/events.html#annotated-listeners). `{{userInput::input}}` sets the `userInput` property to the +user's input on each keystroke. + +The last step is to link the two elements within the custom element's +registration. + +```javascript +... +properties: { + userInput: { + type: String, + notify: true, + }, + target: { + type: Object + }, +}, +ready: function() { + this.target = this.$.input; +}, +onEnter: function() { + console.log(this.userInput); +} +... +``` + +## The `keys` attribute + +The `keys` attribute expresses what combination of keys triggers the event. + +The attribute accepts a space-separated, plus-sign-concatenated +set of modifier keys and some common keyboard keys. + +The common keys are: `a-z`, `0-9` (top row and number pad), `*` (shift 8 and +number pad), `F1-F12`, `Page Up`, `Page Down`, `Left Arrow`, `Right Arrow`, +`Down Arrow`, `Up Arrow`, `Home`, `End`, `Escape`, `Space`, `Tab`, `Enter`. + +The modifier keys are: `Shift`, `Control`, `Alt`, `Meta`. + +All keys are expected to be lowercase and shortened. E.g. +`Left Arrow` is `left`, `Page Down` is `pagedown`, `Control` is `ctrl`, +`F1` is `f1`, `Escape` is `esc`, etc. + +### Grammar + +Below is the [EBNF](http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form) +Grammar of the `keys` attribute. + +```javascript +modifier = "shift" | "ctrl" | "alt" | "meta"; +ascii = ? /[a-z0-9]/ ? ; +fnkey = ? f1 through f12 ? ; +arrow = "up" | "down" | "left" | "right" ; +key = "tab" | "esc" | "space" | "*" | "pageup" | "pagedown" | + "home" | "end" | arrow | ascii | fnkey; +event = "keypress" | "keydown" | "keyup"; +keycombo = { modifier, "+" }, key, [ ":", event ] ; +keys = keycombo, { " ", keycombo } ; +``` + +### Example + +Given the following value for `keys`: + +`ctrl+shift+f7 up pagedown esc space alt+m` + +The event is fired if any of the following key combinations are fired: +`Control` and `Shift` and `F7` keys, `Up Arrow` key, `Page Down` key, +`Escape` key, `Space` key, `Alt` and `M` keys. + +### WAI-ARIA Slider Example + +The following is an example of the set of keys that fulfills WAI-ARIA's +"slider" role [best +practices](http://www.w3.org/TR/wai-aria-practices/#slider): + +```html + + + + +``` + +The `target` properties must evaluate to a node. See the basic usage +example above. + +Each of the values for the `on-keys-pressed` attributes must evalute +to methods. The `increment` method should move the slider a set amount +toward the maximum value. `decrement` should move the slider a set amount +toward the minimum value. `setMin` should move the slider to the minimum +value. `setMax` should move the slider to the maximum value. diff --git a/bower_components/iron-a11y-keys/bower.json b/bower_components/iron-a11y-keys/bower.json new file mode 100644 index 00000000..d69d7ff0 --- /dev/null +++ b/bower_components/iron-a11y-keys/bower.json @@ -0,0 +1,54 @@ +{ + "name": "iron-a11y-keys", + "version": "2.1.2", + "description": "A basic element implementation of iron-a11y-keys-behavior, matching the legacy core-a11y-keys.", + "keywords": [ + "web-components", + "web-component", + "polymer", + "a11y", + "input" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-keys.git" + }, + "main": "iron-a11y-keys.html", + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-a11y-keys/demo/index.html b/bower_components/iron-a11y-keys/demo/index.html new file mode 100644 index 00000000..3e63601f --- /dev/null +++ b/bower_components/iron-a11y-keys/demo/index.html @@ -0,0 +1,36 @@ + + + + + + + Iron A11y Keys demo + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-a11y-keys/demo/x-key-aware.html b/bower_components/iron-a11y-keys/demo/x-key-aware.html new file mode 100644 index 00000000..50ba37da --- /dev/null +++ b/bower_components/iron-a11y-keys/demo/x-key-aware.html @@ -0,0 +1,82 @@ + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys/index.html b/bower_components/iron-a11y-keys/index.html new file mode 100644 index 00000000..8a919686 --- /dev/null +++ b/bower_components/iron-a11y-keys/index.html @@ -0,0 +1,24 @@ + + + + + + iron-a11y-keys + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys/iron-a11y-keys.d.ts b/bower_components/iron-a11y-keys/iron-a11y-keys.d.ts new file mode 100644 index 00000000..dc91ca4c --- /dev/null +++ b/bower_components/iron-a11y-keys/iron-a11y-keys.d.ts @@ -0,0 +1,32 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-a11y-keys.html + */ + +/// +/// + +interface IronA11yKeysElement extends Polymer.Element, Polymer.IronA11yKeysBehavior { + target: Node|null; + + /** + * Space delimited list of keys where each key follows the format: + * `[MODIFIER+]*KEY[:EVENT]`. + * e.g. `keys="space ctrl+shift+tab enter:keyup"`. + * More detail can be found in the "Grammar" section of the documentation + */ + keys: string|null|undefined; + attached(): void; + _targetChanged(target: any): void; + _keysChanged(): void; + _fireKeysPressed(event: any): void; +} + +interface HTMLElementTagNameMap { + "iron-a11y-keys": IronA11yKeysElement; +} diff --git a/bower_components/iron-a11y-keys/iron-a11y-keys.html b/bower_components/iron-a11y-keys/iron-a11y-keys.html new file mode 100644 index 00000000..c3f737f3 --- /dev/null +++ b/bower_components/iron-a11y-keys/iron-a11y-keys.html @@ -0,0 +1,171 @@ + + + + + + diff --git a/bower_components/iron-a11y-keys/package-lock.json b/bower_components/iron-a11y-keys/package-lock.json new file mode 100644 index 00000000..29b89589 --- /dev/null +++ b/bower_components/iron-a11y-keys/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-a11y-keys", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.6" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.6.tgz", + "integrity": "sha512-1lrX+Zjk7Z3nvNn2w9mf/LZlUJeOQJsoK0sroQIQk0WNLCRSu6ma9aKE4ksRXmuySKDEIgTl2FGanCVdBWKoHw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.6" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.6" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.6" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-a11y-keys/package.json b/bower_components/iron-a11y-keys/package.json new file mode 100644 index 00000000..8257a6af --- /dev/null +++ b/bower_components/iron-a11y-keys/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-a11y-keys", + "private": true, + "description": "A basic element implementation of iron-a11y-keys-behavior, matching the legacy core-a11y-keys.", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-a11y-keys.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.1", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-a11y-keys/test/basic-test.html b/bower_components/iron-a11y-keys/test/basic-test.html new file mode 100644 index 00000000..385415d1 --- /dev/null +++ b/bower_components/iron-a11y-keys/test/basic-test.html @@ -0,0 +1,144 @@ + + + + + + + iron-a11y-keys + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-a11y-keys/test/index.html b/bower_components/iron-a11y-keys/test/index.html new file mode 100755 index 00000000..a570c94b --- /dev/null +++ b/bower_components/iron-a11y-keys/test/index.html @@ -0,0 +1,27 @@ + + + + Tests + + + + + + + + + diff --git a/bower_components/iron-ajax/.bower.json b/bower_components/iron-ajax/.bower.json new file mode 100644 index 00000000..557edecb --- /dev/null +++ b/bower_components/iron-ajax/.bower.json @@ -0,0 +1,65 @@ +{ + "name": "iron-ajax", + "version": "2.1.3", + "description": "Makes it easy to make ajax calls and parse the response", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "ajax" + ], + "main": "iron-ajax.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-ajax.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-ajax", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-image": "PolymerElements/iron-image#1 - 2", + "promise-polyfill": "PolymerLabs/promise-polyfill#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "promise-polyfill": "PolymerLabs/promise-polyfill#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-image": "PolymerElements/iron-image#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "promise-polyfill": "^1.0.0", + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.3", + "_resolution": { + "type": "version", + "tag": "v2.1.3", + "commit": "923e2b523832b2b7ff8768afbbec695f87a2dfd7" + }, + "_source": "https://github.com/PolymerElements/iron-ajax.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-ajax" +} \ No newline at end of file diff --git a/bower_components/iron-ajax/.github/CODEOWNERS b/bower_components/iron-ajax/.github/CODEOWNERS new file mode 100644 index 00000000..9ef9eb64 --- /dev/null +++ b/bower_components/iron-ajax/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @e111077 +/.travis.yml @azakus diff --git a/bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md b/bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..e73ee265 --- /dev/null +++ b/bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-ajax/.gitignore b/bower_components/iron-ajax/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-ajax/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-ajax/.travis.yml b/bower_components/iron-ajax/.travis.yml new file mode 100644 index 00000000..bb1aefa3 --- /dev/null +++ b/bower_components/iron-ajax/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + HWwX1XiMfkZkC5XzAz6HkMJcFR+O1DZ+g9hnogZ0e3zdjqZ8VFkCsx0glJLA4TIPdWDfq93gRmeGtbepIx0x4BVOWX8rqoIjb9fbNJDU4ItZsbOvDLInFqKevdq+/klDavVfbR4hNeaHgDmcIEa/IolDU0qIrIdefBfZLOQ0ajM= + - secure: >- + hBkZz41jJfEP+Z8Uwcw3/EWDLLBzKT+WKY/XI7ubT/bxlXn95RJqY+j1pBX7+fHfLrUfjRmQHTsqkkST2JwRGAZoZpBX+lmUuNRyMoYsDKMl+CYinhSNTVVGSv7JPt5Ls5fktfzIt6Qd97vBy25hcCGKB6HBy+ppfP2DuII4uC8= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-ajax/CONTRIBUTING.md b/bower_components/iron-ajax/CONTRIBUTING.md new file mode 100644 index 00000000..543fda4f --- /dev/null +++ b/bower_components/iron-ajax/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/zeriha/2/edit?html,output](https://jsbin.com/zeriha/2/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-ajax/README.md b/bower_components/iron-ajax/README.md new file mode 100644 index 00000000..7a1a3697 --- /dev/null +++ b/bower_components/iron-ajax/README.md @@ -0,0 +1,111 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-ajax.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-ajax) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-ajax)_ + +## Changes in 2.0 + +* Promise polyfill is now a dev dependency and no longer shipped with `iron-ajax`. + + `iron-ajax` uses the `Promise` API, which is not yet supported in all browsers. + + The 1.x version of `iron-ajax` automatically loaded the promise polyfill. This + forced the application to include the polyfill, whether or not it was needed. + + When using `iron-ajax` 2.x with Polymer 1.x, you must provide your own Promise polyfill, + if needed. For example, you could use the promise polyfill by installing it in your project: + + bower install --save PolymerLabs/promise-polyfill#1 - 2 + + Then your app should include the promise polyfill before loading `iron-ajax`: + + + + You can use a different promise polyfill if you need a more fully-featured implementation of + Promise. + + For Polymer 2.x, you **do not need to provide your own Promise polyfill if you are using + the web components polyfills.** Because the web components v1 APIs depend on `Promise`, + a promise polyfill is loaded when needed by the v1 polyfills (`web-components-lite.js` or + `webcomponents-loader.js`). + +* New optional error information. + + The `generateRequest` method returns an `iron-request` element representing the + request, and the request element provides a `completes` property, which is a + promise that completes when the request either succeeds or fails. + + This version includes a new flag, `rejectWithRequest`, that modifies the error handling + of the `completes` promise. By default, when the promise is rejected (because the request + failed), the rejection callback only receives an `Error` object describing the failure. + + With `rejectWithRequest` set to true, the callback receives an object with two keys, `error`, + the error message, and `request`, the original request that the error is related to: + + let request = ironAjaxElement.generateRequest(); + request.completes.then(function(req) { + // succesful request, argument is iron-request element + ... + }, function(rejected) { + // failed request, argument is an object + let req = rejected.request; + let error = rejected.error; + ... + } + ) + + Because this change could break existing code, `rejectWithRequest` is false by default, + however, in the next major release, this option will be removed and the new behavior made + the default. + + +## <iron-ajax> + +The `iron-ajax` element exposes network request functionality. + +```html + +``` + +With `auto` set to `true`, the element performs a request whenever +its `url`, `params` or `body` properties are changed. Automatically generated +requests will be debounced in the case that multiple attributes are changed +sequentially. + +Note: The `params` attribute must be double quoted JSON. + +You can trigger a request explicitly by calling `generateRequest` on the +element. + + + +## <iron-request> + +iron-request can be used to perform XMLHttpRequests. + +```html + +... +this.$.xhr.send({url: url, body: params}); +``` + + diff --git a/bower_components/iron-ajax/bower.json b/bower_components/iron-ajax/bower.json new file mode 100644 index 00000000..f59705eb --- /dev/null +++ b/bower_components/iron-ajax/bower.json @@ -0,0 +1,56 @@ +{ + "name": "iron-ajax", + "version": "2.1.3", + "description": "Makes it easy to make ajax calls and parse the response", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "ajax" + ], + "main": "iron-ajax.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-ajax.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-ajax", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-image": "PolymerElements/iron-image#1 - 2", + "promise-polyfill": "PolymerLabs/promise-polyfill#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "promise-polyfill": "PolymerLabs/promise-polyfill#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-image": "PolymerElements/iron-image#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "promise-polyfill": "^1.0.0", + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-ajax/demo/index.html b/bower_components/iron-ajax/demo/index.html new file mode 100644 index 00000000..02c37b59 --- /dev/null +++ b/bower_components/iron-ajax/demo/index.html @@ -0,0 +1,87 @@ + + + + + + iron-ajax + + + + + + + + +

    Video Feed

    + + + + + + + + + diff --git a/bower_components/iron-ajax/hero.svg b/bower_components/iron-ajax/hero.svg new file mode 100644 index 00000000..7b992152 --- /dev/null +++ b/bower_components/iron-ajax/hero.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-ajax/index.html b/bower_components/iron-ajax/index.html new file mode 100644 index 00000000..41aca5cb --- /dev/null +++ b/bower_components/iron-ajax/index.html @@ -0,0 +1,27 @@ + + + + + + iron-ajax + + + + + + + + + + + + + diff --git a/bower_components/iron-ajax/iron-ajax.d.ts b/bower_components/iron-ajax/iron-ajax.d.ts new file mode 100644 index 00000000..301d134b --- /dev/null +++ b/bower_components/iron-ajax/iron-ajax.d.ts @@ -0,0 +1,261 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-ajax.html + */ + +/// +/// + +/** + * The `iron-ajax` element exposes network request functionality. + * + * + * + * With `auto` set to `true`, the element performs a request whenever + * its `url`, `params` or `body` properties are changed. Automatically generated + * requests will be debounced in the case that multiple attributes are changed + * sequentially. + * + * Note: The `params` attribute must be double quoted JSON. + * + * You can trigger a request explicitly by calling `generateRequest` on the + * element. + */ +interface IronAjaxElement extends Polymer.Element { + + /** + * The URL target of the request. + */ + url: string|null|undefined; + + /** + * An object that contains query parameters to be appended to the + * specified `url` when generating a request. If you wish to set the body + * content when making a POST request, you should use the `body` property + * instead. + */ + params: object|null|undefined; + + /** + * The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'. + * Default is 'GET'. + */ + method: string|null|undefined; + + /** + * HTTP request headers to send. + * + * Example: + * + * + * + * Note: setting a `Content-Type` header here will override the value + * specified by the `contentType` property of this element. + */ + headers: object|null|undefined; + + /** + * Content type to use when sending data. If the `contentType` property + * is set and a `Content-Type` header is specified in the `headers` + * property, the `headers` property value will take precedence. + * + * Varies the handling of the `body` param. + */ + contentType: string|null|undefined; + + /** + * Body content to send with the request, typically used with "POST" + * requests. + * + * If body is a string it will be sent unmodified. + * + * If Content-Type is set to a value listed below, then + * the body will be encoded accordingly. + * + * * `content-type="application/json"` + * * body is encoded like `{"foo":"bar baz","x":1}` + * * `content-type="application/x-www-form-urlencoded"` + * * body is encoded like `foo=bar+baz&x=1` + * + * Otherwise the body will be passed to the browser unmodified, and it + * will handle any encoding (e.g. for FormData, Blob, ArrayBuffer). + */ + body: object|null|undefined; + + /** + * Toggle whether XHR is synchronous or asynchronous. Don't change this + * to true unless You Know What You Are Doing™. + */ + sync: boolean|null|undefined; + + /** + * Specifies what data to store in the `response` property, and + * to deliver as `event.detail.response` in `response` events. + * + * One of: + * + * `text`: uses `XHR.responseText`. + * + * `xml`: uses `XHR.responseXML`. + * + * `json`: uses `XHR.responseText` parsed as JSON. + * + * `arraybuffer`: uses `XHR.response`. + * + * `blob`: uses `XHR.response`. + * + * `document`: uses `XHR.response`. + */ + handleAs: string|null|undefined; + + /** + * Set the withCredentials flag on the request. + */ + withCredentials: boolean|null|undefined; + + /** + * Set the timeout flag on the request. + */ + timeout: number|null|undefined; + + /** + * If true, automatically performs an Ajax request when either `url` or + * `params` changes. + */ + auto: boolean|null|undefined; + + /** + * If true, error messages will automatically be logged to the console. + */ + verbose: boolean|null|undefined; + + /** + * The most recent request made by this iron-ajax element. + */ + readonly lastRequest: object|null|undefined; + + /** + * The `progress` property of this element's `lastRequest`. + */ + readonly lastProgress: object|null|undefined; + + /** + * True while lastRequest is in flight. + */ + readonly loading: boolean|null|undefined; + + /** + * lastRequest's response. + * + * Note that lastResponse and lastError are set when lastRequest finishes, + * so if loading is true, then lastResponse and lastError will correspond + * to the result of the previous request. + * + * The type of the response is determined by the value of `handleAs` at + * the time that the request was generated. + */ + readonly lastResponse: object|null; + + /** + * lastRequest's error, if any. + */ + readonly lastError: object|null; + + /** + * An Array of all in-flight requests originating from this iron-ajax + * element. + */ + readonly activeRequests: any[]|null|undefined; + + /** + * Length of time in milliseconds to debounce multiple automatically generated requests. + */ + debounceDuration: number|null|undefined; + + /** + * Prefix to be stripped from a JSON response before parsing it. + * + * In order to prevent an attack using CSRF with Array responses + * (http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/) + * many backends will mitigate this by prefixing all JSON response bodies + * with a string that would be nonsensical to a JavaScript parser. + */ + jsonPrefix: string|null|undefined; + + /** + * By default, iron-ajax's events do not bubble. Setting this attribute will cause its + * request and response events as well as its iron-ajax-request, -response, and -error + * events to bubble to the window object. The vanilla error event never bubbles when + * using shadow dom even if this.bubbles is true because a scoped flag is not passed with + * it (first link) and because the shadow dom spec did not used to allow certain events, + * including events named error, to leak outside of shadow trees (second link). + * https://www.w3.org/TR/shadow-dom/#scoped-flag + * https://www.w3.org/TR/2015/WD-shadow-dom-20151215/#events-that-are-not-leaked-into-ancestor-trees + */ + bubbles: boolean|null|undefined; + + /** + * Changes the [`completes`](iron-request#property-completes) promise chain + * from `generateRequest` to reject with an object + * containing the original request, as well an error message. + * If false (default), the promise rejects with an error message only. + */ + rejectWithRequest: boolean|null|undefined; + _boundHandleResponse: Function|null|undefined; + hostAttributes: object|null; + + /** + * The query string that should be appended to the `url`, serialized from + * the current value of `params`. + */ + readonly queryString: string; + + /** + * The `url` with query string (if `params` are specified), suitable for + * providing to an `iron-request` instance. + */ + readonly requestUrl: string; + + /** + * An object that maps header names to header values, first applying the + * the value of `Content-Type` and then overlaying the headers specified + * in the `headers` property. + */ + readonly requestHeaders: object|null; + created(): void; + _onProgressChanged(event: any): void; + + /** + * Request options suitable for generating an `iron-request` instance based + * on the current state of the `iron-ajax` instance's properties. + */ + toRequestOptions(): {url: string, method?: string, async?: boolean, body?: ArrayBuffer|ArrayBufferView|Blob|Document|FormData|string|object|null, headers?: object|null, handleAs?: string, jsonPrefix?: string, withCredentials?: boolean}; + + /** + * Performs an AJAX request to the specified URL. + */ + generateRequest(): IronRequestElement; + _handleResponse(request: any): void; + _handleError(request: any, error: any): void; + _discardRequest(request: any): void; + _requestOptionsChanged(): void; +} + +interface HTMLElementTagNameMap { + "iron-ajax": IronAjaxElement; +} diff --git a/bower_components/iron-ajax/iron-ajax.html b/bower_components/iron-ajax/iron-ajax.html new file mode 100644 index 00000000..257552e6 --- /dev/null +++ b/bower_components/iron-ajax/iron-ajax.html @@ -0,0 +1,624 @@ + + + + + + + + diff --git a/bower_components/iron-ajax/iron-request.d.ts b/bower_components/iron-ajax/iron-request.d.ts new file mode 100644 index 00000000..d44d1b23 --- /dev/null +++ b/bower_components/iron-ajax/iron-request.d.ts @@ -0,0 +1,152 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-request.html + */ + +/// + +/** + * iron-request can be used to perform XMLHttpRequests. + * + * + * ... + * this.$.xhr.send({url: url, body: params}); + */ +interface IronRequestElement extends Polymer.Element { + + /** + * A reference to the XMLHttpRequest instance used to generate the + * network request. + */ + readonly xhr: XMLHttpRequest|null; + + /** + * A reference to the parsed response body, if the `xhr` has completely + * resolved. + */ + readonly response: any; + + /** + * A reference to the status code, if the `xhr` has completely resolved. + */ + readonly status: number|null|undefined; + + /** + * A reference to the status text, if the `xhr` has completely resolved. + */ + readonly statusText: string|null|undefined; + + /** + * A promise that resolves when the `xhr` response comes back, or rejects + * if there is an error before the `xhr` completes. + * The resolve callback is called with the original request as an argument. + * By default, the reject callback is called with an `Error` as an argument. + * If `rejectWithRequest` is true, the reject callback is called with an + * object with two keys: `request`, the original request, and `error`, the + * error object. + */ + readonly completes: Promise|null; + + /** + * An object that contains progress information emitted by the XHR if + * available. + */ + readonly progress: object|null|undefined; + + /** + * Aborted will be true if an abort of the request is attempted. + */ + readonly aborted: boolean|null|undefined; + + /** + * Errored will be true if the browser fired an error event from the + * XHR object (mainly network errors). + */ + readonly errored: boolean|null|undefined; + + /** + * TimedOut will be true if the XHR threw a timeout event. + */ + readonly timedOut: boolean|null|undefined; + hostAttributes: object|null; + + /** + * Succeeded is true if the request succeeded. The request succeeded if it + * loaded without error, wasn't aborted, and the status code is ≥ 200, and + * < 300, or if the status code is 0. + * + * The status code 0 is accepted as a success because some schemes - e.g. + * file:// - don't provide status codes. + */ + readonly succeeded: boolean; + + /** + * Sends an HTTP request to the server and returns a promise (see the `completes` + * property for details). + * + * The handling of the `body` parameter will vary based on the Content-Type + * header. See the docs for iron-ajax's `body` property for details. + * + * @param options - url The url to which the request is sent. + * - method The HTTP method to use, default is GET. + * - async By default, all requests are sent asynchronously. To send synchronous requests, + * set to false. + * - body The content for the request body for POST method. + * - headers HTTP request headers. + * - handleAs The response type. Default is 'text'. + * - withCredentials Whether or not to send credentials on the request. Default is false. + * - timeout - Timeout for request, in milliseconds. + * - rejectWithRequest Set to true to include the request object with promise rejections. + */ + send(options: {url: string, method?: string, async?: boolean, body?: ArrayBuffer|ArrayBufferView|Blob|Document|FormData|string|object|null, headers?: object|null, handleAs?: string, jsonPrefix?: string, withCredentials?: boolean, timeout?: Number|null, rejectWithRequest?: boolean}): Promise|null; + + /** + * Attempts to parse the response body of the XHR. If parsing succeeds, + * the value returned will be deserialized based on the `responseType` + * set on the XHR. + * + * @returns The parsed response, + * or undefined if there was an empty response or parsing failed. + */ + parseResponse(): any; + + /** + * Aborts the request. + */ + abort(): void; + + /** + * @param body The given body of the request to try and encode. + * @param contentType The given content type, to infer an encoding + * from. + * @returns Either the encoded body as a string, if successful, + * or the unaltered body object if no encoding could be inferred. + */ + _encodeBodyObject(body: any, contentType: string|null): any; + + /** + * @param object The object to encode as x-www-form-urlencoded. + * @returns . + */ + _wwwFormUrlEncode(object: object|null): string; + + /** + * @param str A key or value to encode as x-www-form-urlencoded. + * @returns . + */ + _wwwFormUrlEncodePiece(str: any): string; + + /** + * Updates the status code and status text. + */ + _updateStatus(): void; +} + +interface HTMLElementTagNameMap { + "iron-request": IronRequestElement; +} diff --git a/bower_components/iron-ajax/iron-request.html b/bower_components/iron-ajax/iron-request.html new file mode 100644 index 00000000..d35f7d7c --- /dev/null +++ b/bower_components/iron-ajax/iron-request.html @@ -0,0 +1,475 @@ + + + + + + diff --git a/bower_components/iron-ajax/package-lock.json b/bower_components/iron-ajax/package-lock.json new file mode 100644 index 00000000..d2f43752 --- /dev/null +++ b/bower_components/iron-ajax/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-ajax", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-ajax/package.json b/bower_components/iron-ajax/package.json new file mode 100644 index 00000000..2641100a --- /dev/null +++ b/bower_components/iron-ajax/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-ajax", + "private": true, + "description": "Makes it easy to make ajax calls and parse the response", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-ajax.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-ajax/test/index.html b/bower_components/iron-ajax/test/index.html new file mode 100644 index 00000000..997b08f1 --- /dev/null +++ b/bower_components/iron-ajax/test/index.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-ajax/test/iron-ajax.html b/bower_components/iron-ajax/test/iron-ajax.html new file mode 100644 index 00000000..57746e1f --- /dev/null +++ b/bower_components/iron-ajax/test/iron-ajax.html @@ -0,0 +1,1017 @@ + + + + + iron-ajax + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-ajax/test/iron-request.html b/bower_components/iron-ajax/test/iron-request.html new file mode 100644 index 00000000..4530fd47 --- /dev/null +++ b/bower_components/iron-ajax/test/iron-request.html @@ -0,0 +1,378 @@ + + + + + iron-request + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-autogrow-textarea/.bower.json b/bower_components/iron-autogrow-textarea/.bower.json new file mode 100644 index 00000000..1b870736 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/.bower.json @@ -0,0 +1,72 @@ +{ + "name": "iron-autogrow-textarea", + "version": "2.2.0", + "description": "A textarea element that automatically grows with input", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "input", + "textarea" + ], + "main": "iron-autogrow-textarea.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea", + "ignore": [], + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.2.0", + "_resolution": { + "type": "version", + "tag": "v2.2.0", + "commit": "e5cdb402561bfcfea17a24aae478cbd5ea4bf943" + }, + "_source": "https://github.com/PolymerElements/iron-autogrow-textarea.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-autogrow-textarea" +} \ No newline at end of file diff --git a/bower_components/iron-autogrow-textarea/.github/CODEOWNERS b/bower_components/iron-autogrow-textarea/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-autogrow-textarea/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md b/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0b70c29d --- /dev/null +++ b/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-autogrow-textarea/.gitignore b/bower_components/iron-autogrow-textarea/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-autogrow-textarea/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-autogrow-textarea/.travis.yml b/bower_components/iron-autogrow-textarea/.travis.yml new file mode 100644 index 00000000..08b3ca10 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + TqFz1Cdu4BtLCHYLFPES0q+6wPfCnj9bnTfven9LIU+gtek70FPDT3UlnviNwp5ob3o0sbLgsLWG5OkCsRHli+HCgPEVDazSrghfwaT9mL+h/DlM/PVB079VDdIKvZM6L7xEF0zPv7t26kljBRQcZJ81O3K7h1mNjeBj6sDXHzE= + - secure: >- + ihYM52Uu3H7FGU+x+f+hzMcWt00B7l6GZOtxzT1xYx4hb4E9/WwXYR5z9bqN+s5p10yf3FG64zbmMTuJeBvknDpSyBt/vKP+QBBZT0hxv05GifS38hiSoYT3HBxEpwhYdpjlsSJtIbKfYGR3xIXutRzRrRKSYigcrQNX83MGWFY= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-autogrow-textarea/CONTRIBUTING.md b/bower_components/iron-autogrow-textarea/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-autogrow-textarea/README.md b/bower_components/iron-autogrow-textarea/README.md new file mode 100644 index 00000000..73e8f8af --- /dev/null +++ b/bower_components/iron-autogrow-textarea/README.md @@ -0,0 +1,45 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-autogrow-textarea.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-autogrow-textarea) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-autogrow-textarea)_ + + +## <iron-autogrow-textarea> + +`iron-autogrow-textarea` is an element containing a textarea that grows in height as more +lines of input are entered. Unless an explicit height or the `maxRows` property is set, it will +never scroll. + +Example: + +```html + +``` + +### Changes in 2.0 +- `bind-value` is deprecated, and just mirrors the `value` property +- corrected the behaviour of `validate()` + +### Styling + +The following custom properties and mixins are available for styling: + +| Custom property | Description | Default | +| --- | --- | --- | +| `--iron-autogrow-textarea` | Mixin applied to the textarea | `{}` | +| `--iron-autogrow-textarea-placeholder` | Mixin applied to the textarea placeholder | `{}` | + + diff --git a/bower_components/iron-autogrow-textarea/bower.json b/bower_components/iron-autogrow-textarea/bower.json new file mode 100644 index 00000000..1ed77375 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/bower.json @@ -0,0 +1,63 @@ +{ + "name": "iron-autogrow-textarea", + "version": "2.1.1", + "description": "A textarea element that automatically grows with input", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "input", + "textarea" + ], + "main": "iron-autogrow-textarea.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea", + "ignore": [], + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-autogrow-textarea/demo/index.html b/bower_components/iron-autogrow-textarea/demo/index.html new file mode 100644 index 00000000..9b87df87 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/demo/index.html @@ -0,0 +1,99 @@ + + + + + + + + + + iron-autogrow-textarea demo + + + + + + + + + + + + +
    +

    An iron-autogrow-textarea grows automatically as more text is entered

    + + + + +

    The maximum height can be controlled either through the max-rows + property, or through a fixed max height

    + + + + +

    The initial height can also be controlled using the rows property, + or through a fixed height

    + + + + +

    Example of updating the value imperatively

    + + + +
    + + diff --git a/bower_components/iron-autogrow-textarea/hero.svg b/bower_components/iron-autogrow-textarea/hero.svg new file mode 100755 index 00000000..19ec70a0 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/hero.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-autogrow-textarea/index.html b/bower_components/iron-autogrow-textarea/index.html new file mode 100644 index 00000000..3be2964f --- /dev/null +++ b/bower_components/iron-autogrow-textarea/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-autogrow-textarea + + + + + + + + + + + + + diff --git a/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.d.ts b/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.d.ts new file mode 100644 index 00000000..7f45efcb --- /dev/null +++ b/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.d.ts @@ -0,0 +1,136 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-autogrow-textarea.html + */ + +/// +/// +/// +/// + +/** + * `iron-autogrow-textarea` is an element containing a textarea that grows in height as more + * lines of input are entered. Unless an explicit height or the `maxRows` property is set, it will + * never scroll. + * + * Example: + * + * + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--iron-autogrow-textarea` | Mixin applied to the textarea | `{}` + * `--iron-autogrow-textarea-placeholder` | Mixin applied to the textarea placeholder | `{}` + */ +interface IronAutogrowTextareaElement extends Polymer.Element, Polymer.IronValidatableBehavior, Polymer.IronControlState { + + /** + * Use this property instead of `bind-value` for two-way data binding. + */ + value: string|number; + + /** + * This property is deprecated, and just mirrors `value`. Use `value` instead. + */ + bindValue: string|number; + + /** + * The initial number of rows. + */ + rows: number|null|undefined; + + /** + * The maximum number of rows this element can grow to until it + * scrolls. 0 means no maximum. + */ + maxRows: number|null|undefined; + + /** + * Bound to the textarea's `autocomplete` attribute. + */ + autocomplete: string|null|undefined; + + /** + * Bound to the textarea's `autofocus` attribute. + */ + autofocus: boolean|null|undefined; + + /** + * Bound to the textarea's `inputmode` attribute. + */ + inputmode: string|null|undefined; + + /** + * Bound to the textarea's `placeholder` attribute. + */ + placeholder: string|null|undefined; + + /** + * Bound to the textarea's `readonly` attribute. + */ + readonly: string|null|undefined; + + /** + * Set to true to mark the textarea as required. + */ + required: boolean|null|undefined; + + /** + * The minimum length of the input value. + */ + minlength: number|null|undefined; + + /** + * The maximum length of the input value. + */ + maxlength: number|null|undefined; + + /** + * Bound to the textarea's `aria-label` attribute. + */ + label: string|null|undefined; + + /** + * Returns the underlying textarea. + */ + readonly textarea: HTMLTextAreaElement; + + /** + * Returns textarea's selection start. + */ + selectionStart: number; + + /** + * Returns textarea's selection end. + */ + selectionEnd: number; + + /** + * Returns true if `value` is valid. The validator provided in `validator` + * will be used first, if it exists; otherwise, the `textarea`'s validity + * is used. + * + * @returns True if the value is valid. + */ + validate(): boolean; + attached(): void; + _bindValueChanged(bindValue: any): void; + _valueChanged(value: any): void; + _onInput(event: any): void; + _constrain(tokens: any): any; + _valueForMirror(): any; + _updateCached(): void; +} + +interface HTMLElementTagNameMap { + "iron-autogrow-textarea": IronAutogrowTextareaElement; +} diff --git a/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html b/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html new file mode 100644 index 00000000..f46bc2dd --- /dev/null +++ b/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + diff --git a/bower_components/iron-autogrow-textarea/package-lock.json b/bower_components/iron-autogrow-textarea/package-lock.json new file mode 100644 index 00000000..cd64a529 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-autogrow-textarea", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-autogrow-textarea/package.json b/bower_components/iron-autogrow-textarea/package.json new file mode 100644 index 00000000..f29402fe --- /dev/null +++ b/bower_components/iron-autogrow-textarea/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-autogrow-textarea", + "private": true, + "description": "A textarea element that automatically grows with input", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-autogrow-textarea/test/basic.html b/bower_components/iron-autogrow-textarea/test/basic.html new file mode 100644 index 00000000..51f3abab --- /dev/null +++ b/bower_components/iron-autogrow-textarea/test/basic.html @@ -0,0 +1,190 @@ + + + + + + iron-autogrow-textarea tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-autogrow-textarea/test/index.html b/bower_components/iron-autogrow-textarea/test/index.html new file mode 100644 index 00000000..d3fe7958 --- /dev/null +++ b/bower_components/iron-autogrow-textarea/test/index.html @@ -0,0 +1,24 @@ + + + + iron-autogrow-textarea tests + + + + + + + diff --git a/bower_components/iron-behaviors/.bower.json b/bower_components/iron-behaviors/.bower.json new file mode 100644 index 00000000..1043fd4f --- /dev/null +++ b/bower_components/iron-behaviors/.bower.json @@ -0,0 +1,63 @@ +{ + "name": "iron-behaviors", + "version": "2.1.1", + "description": "Provides a set of behaviors for the iron elements", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-behaviors.git" + }, + "main": [ + "iron-button-state.html", + "iron-control-state.html" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-input": "PolymerElements/paper-input#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "paper-input": "PolymerElements/paper-input#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-behaviors", + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "a27b45bebb2af58506af77c377dab301bf7406ce" + }, + "_source": "https://github.com/PolymerElements/iron-behaviors.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-behaviors" +} \ No newline at end of file diff --git a/bower_components/iron-behaviors/.github/CODEOWNERS b/bower_components/iron-behaviors/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-behaviors/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md b/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..1cc85c0c --- /dev/null +++ b/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-behaviors/.gitignore b/bower_components/iron-behaviors/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-behaviors/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-behaviors/.travis.yml b/bower_components/iron-behaviors/.travis.yml new file mode 100644 index 00000000..bf521e2a --- /dev/null +++ b/bower_components/iron-behaviors/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + H49pcRc5C6G+ti/ehtT74GZdsUsM/xCvEVJBmKq8rpck7s18R6BbH37RkF2XgYfO4rVa1Bl4KU4Wf5S6aIDYzdaq/phGtFQ04NmDYGbmBhRjwfgxlW4dJ7mkXqXCvNZkxJtAJpgzgVG+xu/I6GsO1Lp4VjGENvVYSsrkGIlSA34= + - secure: >- + Zq+hvOlL1RmTtMfAtO3bxqYnB7X6MY199cVCKo2J/EbsMvOHII1JvEU1+s2/UG9tgoiXkd7N2OfFOivlbQ75BDIwtvkq32KZNrUEC6vRGhbMBc8JCKkdFB/XHh1mNhQcn6Js656PhZIj2WteZYMSGYDUj7KcBBMacRZQKWuB0OU= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-behaviors/CONTRIBUTING.md b/bower_components/iron-behaviors/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-behaviors/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-behaviors/README.md b/bower_components/iron-behaviors/README.md new file mode 100644 index 00000000..0a0629ec --- /dev/null +++ b/bower_components/iron-behaviors/README.md @@ -0,0 +1,22 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-behaviors.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-behaviors) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-behaviors)_ + + + + + diff --git a/bower_components/iron-behaviors/bower.json b/bower_components/iron-behaviors/bower.json new file mode 100644 index 00000000..63505202 --- /dev/null +++ b/bower_components/iron-behaviors/bower.json @@ -0,0 +1,53 @@ +{ + "name": "iron-behaviors", + "version": "2.1.1", + "description": "Provides a set of behaviors for the iron elements", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-behaviors.git" + }, + "main": [ + "iron-button-state.html", + "iron-control-state.html" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-input": "PolymerElements/paper-input#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "paper-input": "PolymerElements/paper-input#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-behaviors/demo/index.html b/bower_components/iron-behaviors/demo/index.html new file mode 100644 index 00000000..e7cbdcc6 --- /dev/null +++ b/bower_components/iron-behaviors/demo/index.html @@ -0,0 +1,48 @@ + + + + + + + + + + simple-button + + + + + + + + + +
    +

    Normal

    + + Hello World + +

    Toggles

    + + Hello World + +

    Disabled

    + + Hello World +
    + + diff --git a/bower_components/iron-behaviors/demo/simple-button.html b/bower_components/iron-behaviors/demo/simple-button.html new file mode 100644 index 00000000..2c3aeeff --- /dev/null +++ b/bower_components/iron-behaviors/demo/simple-button.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-behaviors/index.html b/bower_components/iron-behaviors/index.html new file mode 100644 index 00000000..220deb00 --- /dev/null +++ b/bower_components/iron-behaviors/index.html @@ -0,0 +1,27 @@ + + + + + + Iron Behaviors + + + + + + + + + + + + + diff --git a/bower_components/iron-behaviors/iron-button-state.d.ts b/bower_components/iron-behaviors/iron-button-state.d.ts new file mode 100644 index 00000000..9a231cb3 --- /dev/null +++ b/bower_components/iron-behaviors/iron-button-state.d.ts @@ -0,0 +1,88 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-button-state.html + */ + +/// +/// +/// + +declare namespace Polymer { + + interface IronButtonState extends Polymer.IronA11yKeysBehavior { + keyBindings: object; + + /** + * If true, the user is currently holding down the button. + */ + readonly pressed: boolean|null|undefined; + + /** + * If true, the button toggles the active state with each tap or press + * of the spacebar. + */ + toggles: boolean|null|undefined; + + /** + * If true, the button is a toggle and is currently in the active state. + */ + active: boolean|null|undefined; + + /** + * True if the element is currently being pressed by a "pointer," which + * is loosely defined as mouse or touch input (but specifically excluding + * keyboard input). + */ + readonly pointerDown: boolean|null|undefined; + + /** + * True if the input device that caused the element to receive focus + * was a keyboard. + */ + readonly receivedFocusFromKeyboard: boolean|null|undefined; + + /** + * The aria attribute to be set if the button is a toggle and in the + * active state. + */ + ariaActiveAttribute: string|null|undefined; + _mouseEventRe: RegExp|null; + _tapHandler(): void; + _focusChanged(focused: any): void; + _detectKeyboardFocus(focused: any): void; + + /** + * 'change' events + */ + _userActivate(active: any): void; + _downHandler(event: any): void; + _upHandler(): void; + + /** + * @param event . + */ + _spaceKeyDownHandler(event: KeyboardEvent): void; + + /** + * @param event . + */ + _spaceKeyUpHandler(event: KeyboardEvent): void; + + /** + * event handler to unwind before triggering another event + */ + _asyncClick(): void; + _pressedChanged(pressed: any): void; + _ariaActiveAttributeChanged(value: any, oldValue: any): void; + _activeChanged(active: any, ariaActiveAttribute: any): void; + _controlStateChanged(): void; + _changedButtonState(): void; + } + + const IronButtonState: object; +} diff --git a/bower_components/iron-behaviors/iron-button-state.html b/bower_components/iron-behaviors/iron-button-state.html new file mode 100644 index 00000000..45e5d313 --- /dev/null +++ b/bower_components/iron-behaviors/iron-button-state.html @@ -0,0 +1,239 @@ + + + + + + + diff --git a/bower_components/iron-behaviors/iron-control-state.d.ts b/bower_components/iron-behaviors/iron-control-state.d.ts new file mode 100644 index 00000000..9082c66a --- /dev/null +++ b/bower_components/iron-behaviors/iron-control-state.d.ts @@ -0,0 +1,40 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-control-state.html + */ + +/// + +declare namespace Polymer { + + interface IronControlState { + + /** + * If true, the element currently has focus. + */ + readonly focused: boolean|null|undefined; + + /** + * If true, the user cannot interact with this element. + */ + disabled: boolean|null|undefined; + + /** + * Value of the `tabindex` attribute before `disabled` was activated. + * `null` means the attribute was not present. + */ + _oldTabIndex: string|null|undefined; + _boundFocusBlurHandler: Function|null|undefined; + ready(): void; + _focusBlurHandler(event: any): void; + _disabledChanged(disabled: any, old: any): void; + _changedControlState(): void; + } + + const IronControlState: object; +} diff --git a/bower_components/iron-behaviors/iron-control-state.html b/bower_components/iron-behaviors/iron-control-state.html new file mode 100644 index 00000000..100ac397 --- /dev/null +++ b/bower_components/iron-behaviors/iron-control-state.html @@ -0,0 +1,137 @@ + + + + + diff --git a/bower_components/iron-behaviors/package-lock.json b/bower_components/iron-behaviors/package-lock.json new file mode 100644 index 00000000..fcd0a62f --- /dev/null +++ b/bower_components/iron-behaviors/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-behaviors", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-behaviors/package.json b/bower_components/iron-behaviors/package.json new file mode 100644 index 00000000..85ff46c8 --- /dev/null +++ b/bower_components/iron-behaviors/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-behaviors", + "private": true, + "description": "Provides a set of behaviors for the iron elements", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-behaviors.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-behaviors/test/active-state.html b/bower_components/iron-behaviors/test/active-state.html new file mode 100644 index 00000000..e1ed4791 --- /dev/null +++ b/bower_components/iron-behaviors/test/active-state.html @@ -0,0 +1,290 @@ + + + + + active-state + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-behaviors/test/disabled-state.html b/bower_components/iron-behaviors/test/disabled-state.html new file mode 100644 index 00000000..f31e5ce7 --- /dev/null +++ b/bower_components/iron-behaviors/test/disabled-state.html @@ -0,0 +1,130 @@ + + + + + disabled-state + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-behaviors/test/focused-state.html b/bower_components/iron-behaviors/test/focused-state.html new file mode 100644 index 00000000..cd5d4acf --- /dev/null +++ b/bower_components/iron-behaviors/test/focused-state.html @@ -0,0 +1,161 @@ + + + + + focused-state + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-behaviors/test/index.html b/bower_components/iron-behaviors/test/index.html new file mode 100644 index 00000000..d3dd3144 --- /dev/null +++ b/bower_components/iron-behaviors/test/index.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-behaviors/test/test-elements.html b/bower_components/iron-behaviors/test/test-elements.html new file mode 100644 index 00000000..92918069 --- /dev/null +++ b/bower_components/iron-behaviors/test/test-elements.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-checked-element-behavior/.bower.json b/bower_components/iron-checked-element-behavior/.bower.json new file mode 100644 index 00000000..c20553a6 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/.bower.json @@ -0,0 +1,64 @@ +{ + "name": "iron-checked-element-behavior", + "version": "2.1.1", + "description": "Implements an element that has a checked attribute and can be added to a form", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "main": "iron-checked-element-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "2081eb82a4ee7f7045e5b8b0dcfbfefc229ef37f" + }, + "_source": "https://github.com/PolymerElements/iron-checked-element-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-checked-element-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-checked-element-behavior/.github/CODEOWNERS b/bower_components/iron-checked-element-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..2d520b47 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-checked-element-behavior/.gitignore b/bower_components/iron-checked-element-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-checked-element-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-checked-element-behavior/.travis.yml b/bower_components/iron-checked-element-behavior/.travis.yml new file mode 100644 index 00000000..e1b366bd --- /dev/null +++ b/bower_components/iron-checked-element-behavior/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + zj5WTkJrZAy1QK0j65jHEsHluT4B/PZl0u3iVEWnyd4CSUbHh3rS5NytZTA8wZ63DYnUcrdbhPeIQI3UKaVBUM2MO/K4MwsC2YTRpifpCLbC+wlRV9WRZNZ9CJ3hu6leshOBWHzZucUWAcKtyQRm66rAU+90ZaJcrBPC/xtgPG1n/Bm2aygr5IA36vJy80Zpwk1+yFmb08eu7jpzNVhcFor+VX0gBW3rxeX0kvzhHGn0bTLxKztNB56Oe+bzx6vU8ACjBcSylouOtPJVIk/iIh7AIDHDcpoZGzmwtVnwAV2mJQtu3V8hQ2kE8eXpDloBGID+AUfTF3YSOVQo34I1yv4T+FlB7uxWrgJo80X5IRXUe15+OoXqraZ25v736RPdTWPjV2b6cWHqdOa45wODkDY0KZ9SrmwZibF3vcfVOG21llW2jF/HC5FvDIiM7gv1ro5jsFbEIwv7ligh0KKa+TOZBphL4sEtMrpxR/zXLqBLXUbKL54A+AefHelxjDIqT3oKQylesrGZ58fEF7Fx5xDSYGJwhIEwTLsEQWIWw8sWB34yRtDBIPocqh8nNZ9pJBOdhK3oC5KK44IQnE44YrIzLRRinHzRVoywpUb5OJDxxSSvOwcqmTYbkFmRJMzfJCEj/EtYsEokmSFv8zIRRDetvenBTGouNK/VsU9xQpA= + - secure: >- + Q3xN3fRvTQuy/HKlkYFFnVrFo01r6Q8zgzHHK8yKNKio9T/BM0+iIMYP8mRY+qvCQxCboXuUawG6gsxxT2Zn/p7SgNZ+UHq7DcLmocqxmECdGfqra6Hy9Y7BZVYPWlWIADkNUjI0RfOz69/3o/TAFlt4Cnw3BX3ip0o0Rri5/jzj0Nn+xSF+onyMnpH2gQvUE77MHvCuWTPki3R86Bz8RRzbTwKYwVa0oVca7jzdPtOjqzsnz8k9X0HVwQEpHGjqgTP3lg8EotON0rac/ayWs3J3bk9ye5AfvdTCYcZnDcz8POAN6FeC2Xey7oqQO4N8vFagru88mC3AmN67ZYqwI0fmDEYre20lnXFAFBFzsiu4FvKMgFYi/C5tG5ngSR5XcXwLskax82Un7yYYRzVbyhFSxxWZCqIC4cJ5d+E0Wex4eEYDwAlZ9AFP/hRJ2qrBVUbzXeGVMkHlg4qtdUIzHRkMUmjvEWVzTvk0Xa2wD+S0mYPcBwQcscoZy9zqdJM4hfbG9IGi02/DyrTOL3IuNH8WHHvGWS4ajDhSRkGCV4I5VtGKQ/Y3RA/pU6AaI7tVcDhbxOyIPKuOXO6PWuZOiJhhPQ/kceMkUXeh0TmsDtSBpe5OKCnjsdSn02lTT5yYf4nlVIVczP9p6zBerXorzZk1/S3CRBtqYZPgRrefbCw= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-checked-element-behavior/CONTRIBUTING.md b/bower_components/iron-checked-element-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-checked-element-behavior/README.md b/bower_components/iron-checked-element-behavior/README.md new file mode 100644 index 00000000..d3a11bc7 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/README.md @@ -0,0 +1,11 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-checked-element-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-checked-element-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-checked-element-behavior)_ + + +##Polymer.IronCheckedElementBehavior + +Use `Polymer.IronCheckedElementBehavior` to implement a custom element +that has a `checked` property, which can be used for validation if the +element is also `required`. Element instances implementing this behavior +will also be registered for use in an `iron-form` element. diff --git a/bower_components/iron-checked-element-behavior/bower.json b/bower_components/iron-checked-element-behavior/bower.json new file mode 100644 index 00000000..418c1995 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/bower.json @@ -0,0 +1,55 @@ +{ + "name": "iron-checked-element-behavior", + "version": "2.1.1", + "description": "Implements an element that has a checked attribute and can be added to a form", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "main": "iron-checked-element-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-checked-element-behavior/demo/index.html b/bower_components/iron-checked-element-behavior/demo/index.html new file mode 100644 index 00000000..788a64f0 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/demo/index.html @@ -0,0 +1,39 @@ + + + + + + + + + iron-checked-element-behavior demo + + + + + + +
    +
    +

    Not required

    +
    + +
    +
    +
    +

    Required

    +
    + +
    +
    +
    + + diff --git a/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html b/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html new file mode 100644 index 00000000..f7bdd14b --- /dev/null +++ b/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html @@ -0,0 +1,57 @@ + + + + + + + + + + + diff --git a/bower_components/iron-checked-element-behavior/index.html b/bower_components/iron-checked-element-behavior/index.html new file mode 100644 index 00000000..1975dc5a --- /dev/null +++ b/bower_components/iron-checked-element-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-checked-element-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.d.ts b/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.d.ts new file mode 100644 index 00000000..56f12e17 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.d.ts @@ -0,0 +1,68 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-checked-element-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.IronCheckedElementBehavior` to implement a custom element + * that has a `checked` property, which can be used for validation if the + * element is also `required`. Element instances implementing this behavior + * will also be registered for use in an `iron-form` element. + */ + interface IronCheckedElementBehavior extends Polymer.IronFormElementBehavior, Polymer.IronValidatableBehavior { + + /** + * Overriden from Polymer.IronFormElementBehavior + */ + value: string|null|undefined; + + /** + * Gets or sets the state, `true` is checked and `false` is unchecked. + */ + checked: boolean|null|undefined; + + /** + * If true, the button toggles the active state with each tap or press + * of the spacebar. + */ + toggles: boolean|null|undefined; + + /** + * Returns false if the element is required and not checked, and true + * otherwise. + * + * @param _value Ignored. + * @returns true if `required` is false or if `checked` is true. + */ + _getValidity(_value?: any): boolean; + created(): void; + + /** + * Update the aria-required label when `required` is changed. + */ + _requiredChanged(): void; + + /** + * Fire `iron-changed` when the checked state changes. + */ + _checkedChanged(): void; + + /** + * Reset value to 'on' if it is set to `undefined`. + */ + _valueChanged(): void; + } + + const IronCheckedElementBehavior: object; +} diff --git a/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html b/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html new file mode 100644 index 00000000..fde93e7d --- /dev/null +++ b/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html @@ -0,0 +1,109 @@ + + + + + + + diff --git a/bower_components/iron-checked-element-behavior/package-lock.json b/bower_components/iron-checked-element-behavior/package-lock.json new file mode 100644 index 00000000..c430994b --- /dev/null +++ b/bower_components/iron-checked-element-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-checked-element-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-checked-element-behavior/package.json b/bower_components/iron-checked-element-behavior/package.json new file mode 100644 index 00000000..206a5199 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-checked-element-behavior", + "private": true, + "description": "Implements an element that has a checked attribute and can be added to a form", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-checked-element-behavior/test/basic.html b/bower_components/iron-checked-element-behavior/test/basic.html new file mode 100644 index 00000000..c7ad2a0c --- /dev/null +++ b/bower_components/iron-checked-element-behavior/test/basic.html @@ -0,0 +1,150 @@ + + + + + + iron-checked-element-behavior basic tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-checked-element-behavior/test/index.html b/bower_components/iron-checked-element-behavior/test/index.html new file mode 100644 index 00000000..fced9065 --- /dev/null +++ b/bower_components/iron-checked-element-behavior/test/index.html @@ -0,0 +1,29 @@ + + + iron-checked-element-behavior tests + + + + + + + + + + + + + + + diff --git a/bower_components/iron-checked-element-behavior/test/simple-checkbox.html b/bower_components/iron-checked-element-behavior/test/simple-checkbox.html new file mode 100644 index 00000000..695d4ccf --- /dev/null +++ b/bower_components/iron-checked-element-behavior/test/simple-checkbox.html @@ -0,0 +1,22 @@ + + + + + + diff --git a/bower_components/iron-collapse/.bower.json b/bower_components/iron-collapse/.bower.json new file mode 100644 index 00000000..face863a --- /dev/null +++ b/bower_components/iron-collapse/.bower.json @@ -0,0 +1,63 @@ +{ + "name": "iron-collapse", + "version": "2.2.1", + "description": "Provides a collapsable container", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "container" + ], + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/PolymerElements/iron-collapse" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-collapse", + "ignore": [], + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "web-component-tester": "^5.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "main": "iron-collapse.html", + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.2.1", + "_resolution": { + "type": "version", + "tag": "v2.2.1", + "commit": "c39063e959bd80be79ef6ff0b4a080260ef13868" + }, + "_source": "https://github.com/PolymerElements/iron-collapse.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-collapse" +} \ No newline at end of file diff --git a/bower_components/iron-collapse/.github/CODEOWNERS b/bower_components/iron-collapse/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-collapse/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-collapse/.github/ISSUE_TEMPLATE.md b/bower_components/iron-collapse/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..544b51e7 --- /dev/null +++ b/bower_components/iron-collapse/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-collapse/.gitignore b/bower_components/iron-collapse/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-collapse/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-collapse/.travis.yml b/bower_components/iron-collapse/.travis.yml new file mode 100644 index 00000000..f9e4afb7 --- /dev/null +++ b/bower_components/iron-collapse/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Typings are stale. Please run "npm run format".' && false) +env: + global: + - secure: >- + UKNKHUjbp8O3UiVmnCmmprLR573ZXak9znhIvy0Uvxpkga7DFvfKvYRFCXQI/eV2I9YOI1FgVjlPfH8Id1NOWdMLdNjAI7G5p4FWisgu36kfat853HDYemoxx0C9nqPwakPGCJ9duL1w0dwje2sEHndk1cdwkU3TMsgkawdOJbU= + - secure: >- + cWudj1yh2mzialubEqhSHBG/CPLtI9ZeUPaI1+N3hiPzvuxqGaEbkpzEmlZrdAfuy9axCQStg88dgKRSv+TdMbcDKpzQqfClxTf9baKgrSgzVoMReY0kjHumCJz1tIVIz74ggp/gdQVFyS9CiA82pHTnxDl/drwPIHa2S8ST02U= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-collapse/CONTRIBUTING.md b/bower_components/iron-collapse/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-collapse/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-collapse/README.md b/bower_components/iron-collapse/README.md new file mode 100644 index 00000000..4157dac7 --- /dev/null +++ b/bower_components/iron-collapse/README.md @@ -0,0 +1,56 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-collapse.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-collapse) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-collapse)_ + + +## <iron-collapse> + +`iron-collapse` creates a collapsible block of content. By default, the content +will be collapsed. Use `opened` or `toggle()` to show/hide the content. The +aria-expanded attribute should only be set on the button that controls the +collapsable area, not on the area itself. See +https://www.w3.org/WAI/GL/wiki/Using_aria-expanded_to_indicate_the_state_of_a_collapsible_element#Description + +```html + + + +
    Content goes here...
    +
    + +... + +toggle: function() { + this.$.collapse.toggle(); + this.$.button.setAttribute('aria-expanded', this.$.collapse.opened); +} +``` + +`iron-collapse` adjusts the max-height/max-width of the collapsible element to show/hide +the content. So avoid putting padding/margin/border on the collapsible directly, +and instead put a div inside and style that. + +```html + + + +
    +
    Content goes here...
    +
    +
    +``` + +### Styling + +The following custom properties and mixins are available for styling: + +| Custom property | Description | Default | +| --- | --- | --- | +| `--iron-collapse-transition-duration` | Animation transition duration | `300ms` | + + diff --git a/bower_components/iron-collapse/bower.json b/bower_components/iron-collapse/bower.json new file mode 100644 index 00000000..4e2da746 --- /dev/null +++ b/bower_components/iron-collapse/bower.json @@ -0,0 +1,54 @@ +{ + "name": "iron-collapse", + "version": "2.2.1", + "description": "Provides a collapsable container", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "container" + ], + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/PolymerElements/iron-collapse" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-collapse", + "ignore": [], + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "web-component-tester": "^5.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "main": "iron-collapse.html", + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-collapse/demo/index.html b/bower_components/iron-collapse/demo/index.html new file mode 100644 index 00000000..c9d48111 --- /dev/null +++ b/bower_components/iron-collapse/demo/index.html @@ -0,0 +1,108 @@ + + + + + + + + iron-collapse demo + + + + + + + + + + + + + + + + +

    Basic

    + + + + +

    Nested, horizontal expand

    + + + + +

    No animation

    + + + + + + diff --git a/bower_components/iron-collapse/demo/simple-expand-collapse.html b/bower_components/iron-collapse/demo/simple-expand-collapse.html new file mode 100644 index 00000000..f5a0b9b7 --- /dev/null +++ b/bower_components/iron-collapse/demo/simple-expand-collapse.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/hero.svg b/bower_components/iron-collapse/hero.svg new file mode 100755 index 00000000..ae1a49ef --- /dev/null +++ b/bower_components/iron-collapse/hero.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/index.html b/bower_components/iron-collapse/index.html new file mode 100644 index 00000000..b5d20077 --- /dev/null +++ b/bower_components/iron-collapse/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + iron-collapse + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/iron-collapse.d.ts b/bower_components/iron-collapse/iron-collapse.d.ts new file mode 100644 index 00000000..b260d0bc --- /dev/null +++ b/bower_components/iron-collapse/iron-collapse.d.ts @@ -0,0 +1,110 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-collapse.html + */ + +/// +/// + +/** + * `iron-collapse` creates a collapsible block of content. By default, the content + * will be collapsed. Use `opened` or `toggle()` to show/hide the content. + * + * + * + * + *
    Content goes here...
    + *
    + * + * ... + * + * toggle: function() { + * this.$.collapse.toggle(); + * } + * + * `iron-collapse` adjusts the max-height/max-width of the collapsible element to show/hide + * the content. So avoid putting padding/margin/border on the collapsible directly, + * and instead put a div inside and style that. + * + * + * + * + *
    + *
    Content goes here...
    + *
    + *
    + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--iron-collapse-transition-duration` | Animation transition duration | `300ms` + */ +interface IronCollapseElement extends Polymer.Element, Polymer.IronResizableBehavior { + + /** + * If true, the orientation is horizontal; otherwise is vertical. + */ + horizontal: boolean|null|undefined; + + /** + * Set opened to true to show the collapse element and to false to hide it. + */ + opened: boolean|null|undefined; + + /** + * When true, the element is transitioning its opened state. When false, + * the element has finished opening/closing. + */ + readonly transitioning: boolean|null|undefined; + + /** + * Set noAnimation to true to disable animations. + */ + noAnimation: boolean|null|undefined; + hostAttributes: object|null; + readonly dimension: any; + + /** + * Toggle the opened state. + */ + toggle(): void; + show(): void; + hide(): void; + + /** + * Updates the size of the element. + * + * @param size The new value for `maxWidth`/`maxHeight` as css property value, usually `auto` or `0px`. + * @param animated if `true` updates the size with an animation, otherwise without. + */ + updateSize(size: string, animated?: boolean): void; + + /** + * enableTransition() is deprecated, but left over so it doesn't break + * existing code. Please use `noAnimation` property instead. + */ + enableTransition(enabled: any): void; + _updateTransition(enabled: any): void; + _horizontalChanged(): void; + _openedChanged(): void; + _transitionEnd(): void; + _onTransitionEnd(event: any): void; + _calcSize(): any; +} + +interface HTMLElementTagNameMap { + "iron-collapse": IronCollapseElement; +} diff --git a/bower_components/iron-collapse/iron-collapse.html b/bower_components/iron-collapse/iron-collapse.html new file mode 100644 index 00000000..604034e5 --- /dev/null +++ b/bower_components/iron-collapse/iron-collapse.html @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/package-lock.json b/bower_components/iron-collapse/package-lock.json new file mode 100644 index 00000000..cd8c0825 --- /dev/null +++ b/bower_components/iron-collapse/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-collapse", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.3" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.3.tgz", + "integrity": "sha512-igaEysRgtg5tYJVIdQ1T2lJ3G6OmoY7g0YVWKHLFiVs4YUChd9IRSiLoHSLffwut+CpsHHBDj4vRxxNEMstctw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-collapse/package.json b/bower_components/iron-collapse/package.json new file mode 100644 index 00000000..0c188543 --- /dev/null +++ b/bower_components/iron-collapse/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-collapse", + "private": true, + "description": "Provides a collapsable container", + "repository": { + "type": "git", + "url": "https://github.com/PolymerElements/iron-collapse" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-collapse/test/a11y.html b/bower_components/iron-collapse/test/a11y.html new file mode 100644 index 00000000..4bc6925c --- /dev/null +++ b/bower_components/iron-collapse/test/a11y.html @@ -0,0 +1,74 @@ + + + + + + + iron-collapse-a11y + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/test/basic.html b/bower_components/iron-collapse/test/basic.html new file mode 100644 index 00000000..072fbfac --- /dev/null +++ b/bower_components/iron-collapse/test/basic.html @@ -0,0 +1,193 @@ + + + + + + + iron-collapse-basic + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/test/flex.html b/bower_components/iron-collapse/test/flex.html new file mode 100644 index 00000000..96fe85a6 --- /dev/null +++ b/bower_components/iron-collapse/test/flex.html @@ -0,0 +1,143 @@ + + + + + + + iron-collapse-flex + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/test/horizontal.html b/bower_components/iron-collapse/test/horizontal.html new file mode 100644 index 00000000..27e32bcb --- /dev/null +++ b/bower_components/iron-collapse/test/horizontal.html @@ -0,0 +1,91 @@ + + + + + + iron-collapse-horizontal + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-collapse/test/index.html b/bower_components/iron-collapse/test/index.html new file mode 100644 index 00000000..e0680005 --- /dev/null +++ b/bower_components/iron-collapse/test/index.html @@ -0,0 +1,35 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-collapse/test/nested.html b/bower_components/iron-collapse/test/nested.html new file mode 100644 index 00000000..51ecb563 --- /dev/null +++ b/bower_components/iron-collapse/test/nested.html @@ -0,0 +1,128 @@ + + + + + + iron-collapse-nested + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/.bower.json b/bower_components/iron-demo-helpers/.bower.json new file mode 100644 index 00000000..f98108f0 --- /dev/null +++ b/bower_components/iron-demo-helpers/.bower.json @@ -0,0 +1,73 @@ +{ + "name": "iron-demo-helpers", + "version": "2.1.1", + "description": "Utility classes to make building demo pages easier", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "demo" + ], + "main": [ + "demo-snippet.html", + "url-bar.html", + "demo-pages-shared-styles.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-demo-helpers.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-demo-helpers", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "font-roboto": "PolymerElements/font-roboto#^1", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-location": "PolymerElements/iron-location#1 - 2", + "marked-element": "PolymerElements/marked-element#1 - 2", + "prism-element": "PolymerElements/prism-element#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "font-roboto": "PolymerElements/font-roboto#^1", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-location": "PolymerElements/iron-location#^0.8.0", + "marked-element": "PolymerElements/marked-element#^1.0.0", + "prism-element": "PolymerElements/prism-element#^1.1.0" + }, + "devDependencies": { + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "5d90090edd6416202a87bb87cd4b882eec7973ba" + }, + "_source": "https://github.com/PolymerElements/iron-demo-helpers.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-demo-helpers" +} \ No newline at end of file diff --git a/bower_components/iron-demo-helpers/.github/CODEOWNERS b/bower_components/iron-demo-helpers/.github/CODEOWNERS new file mode 100644 index 00000000..0852f5f7 --- /dev/null +++ b/bower_components/iron-demo-helpers/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @e111077 @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-demo-helpers/.github/ISSUE_TEMPLATE.md b/bower_components/iron-demo-helpers/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..ff99a8f7 --- /dev/null +++ b/bower_components/iron-demo-helpers/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-demo-helpers/.gitignore b/bower_components/iron-demo-helpers/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-demo-helpers/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-demo-helpers/.travis.yml b/bower_components/iron-demo-helpers/.travis.yml new file mode 100644 index 00000000..660d8cde --- /dev/null +++ b/bower_components/iron-demo-helpers/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +env: + global: + - secure: >- + i2lTz7D+1ZUYIqZoBtTaXXEUChnfihtpMDr7N6JBlCLBrj90GodBGYkJOJbn1GakBYRwpCvjsXI0DAhfSUQ+yEtLURnVW2KyuCFrAJ6/4h2QSPDJriJ+iG3/nexoDO3bxV010jms6b9/Fl8eeDWkVc2tjmOpBsa8T5+blot4xPVU3aKlB+gcXcLaYZFc6dBeXEBfSqK0bJ4601fRrX01ec25ljjZdgFnol405fThJlnr6GcFtQWNmtiMu0hqTk/AUFp3yL7IVFb0MfjrEBNZ47EL3BiYb4x1W4lDgCpooSoEYib5GDHw0N0NOaFcSoHqgQrDq1OxPH9qxEKkgFkGMhLa7dJ6Tt3GnJK1K+MS4yt//oAsMbPjwVCW4fZahzlIanQLhdFh7/UBRgnRlJ+lUzpcnVGIe2YNdL8wtMsJXApiOVFFEhKJ81dHwetvPmVz8SqF6B/uD9UuW04J34oxMrmV3g32x27rMpzSJQaU4h0jV0aYQcWLYhqDFSUWKXYTFdTBrnjKbuFxPa9VMs/kEmY8ckz3rcYet3eMlxRuL06qUr5Y0TC/kL7zM02L78YdRLqIeIDFPdqraVS7Kv8AoFBaYIm5MQ9dpsZomRP1h0DXXgcubnflLZCxawDn4dYfgZ27r1M0AXyZwiPP6+Lcel5DTyc8vwv7NO4QzIoaBvs= + - secure: >- + ODJASItc4zdTFFUAMyq2yfNszcjelFGYb8T4gwJyZe/Q5jWFfv3imBbZ/8UBVjaHh8pPANtb8iKBT70k1jl63uIeAlzNyCvE2ppqrfc2cuf9DL964i7ZY9kfC1cYni7UqdDnRgCir1mV2/Q0p3aGGw0/eksJtEjzVc4wPYN9+RjKljgRZzKq+Jbw8jM7NAS7BtRjTGPPTw+iDXvgabgQr7Sf7+bXECOXt9HqjLMxBdbR+DyvERZGpbj7Ish6CFKWOoULtnRPC+E9Subd1DQl0CEntPBlPWchxNoGxWPK2JURrNbup8dkwVDW433cm4ubuMnQpiQ0ityyzWF2fMPLOHPv6DLZl5RQPSz20oj9D9DOMV0nQTDegBTDazgGDpWei0Q3HH6EUj1nLdZag8EHWcbPzmIqseZ6cWP/C5Yps7BypEX5cWwJnKTe1BPXP/4Okeq/yZBIR+j5OdBo8q+G33qJBhMzLWdS2Pr3EYEujaCxU3VeZzFCCmdpZ7hwd68zWhJdILYWo4VCvkos61gwsUP3fizoBmFSW8copuRJbsFJ7Iq0gmM34pQsNKlOwgyN+uLHHEJ93ugFfmxpXdgbLO4Jo0NypITLO9bLICvMaSrpdG1kGwoIFH96XeWGZpYWN/9mtN9xct5hp6acPF4eeb2rwwSGH1rrFVqivnMLIN0= +dist: trusty diff --git a/bower_components/iron-demo-helpers/CONTRIBUTING.md b/bower_components/iron-demo-helpers/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-demo-helpers/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-demo-helpers/README.md b/bower_components/iron-demo-helpers/README.md new file mode 100644 index 00000000..2de48132 --- /dev/null +++ b/bower_components/iron-demo-helpers/README.md @@ -0,0 +1,73 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-demo-helpers.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-demo-helpers) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-demo-helpers)_ + + +## <demo-snippet> + +`demo-snippet` is a helper element that displays the source of a code snippet and +its rendered demo. It can be used for both native elements and +Polymer elements. + +```html +Example of a native element demo + + + + + +Example of a Polymer demo + + + + +``` + +### Styling + +The following custom properties and mixins are available for styling: + +| Custom property | Description | Default | +| --- | --- | --- | +| `--demo-snippet` | Mixin applied to the entire element | `{}` | +| `--demo-snippet-demo` | Mixin applied to just the demo section | `{}` | +| `--demo-snippet-code` | Mixin applied to just the code section | `{}` | + + + +## <url-bar> + +`url-bar` is a helper element that displays a simple read-only URL bar if +and only if the page is in an iframe. In this way we can demo elements that +deal with the URL in our iframe-based demo environments. + +If the page is not in an iframe, the url-bar element is not displayed. + +### Styling + +The following custom properties and mixins are available for styling: + +| Custom property | Description | Default | +| --- | --- | --- | +| `--url-bar` | Mixin applied to the entire element | `{}` | + + diff --git a/bower_components/iron-demo-helpers/bower.json b/bower_components/iron-demo-helpers/bower.json new file mode 100644 index 00000000..8dd71c29 --- /dev/null +++ b/bower_components/iron-demo-helpers/bower.json @@ -0,0 +1,64 @@ +{ + "name": "iron-demo-helpers", + "version": "2.1.0", + "description": "Utility classes to make building demo pages easier", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "demo" + ], + "main": [ + "demo-snippet.html", + "url-bar.html", + "demo-pages-shared-styles.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-demo-helpers.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-demo-helpers", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "font-roboto": "PolymerElements/font-roboto#^1", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-location": "PolymerElements/iron-location#1 - 2", + "marked-element": "PolymerElements/marked-element#1 - 2", + "prism-element": "PolymerElements/prism-element#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "font-roboto": "PolymerElements/font-roboto#^1", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-location": "PolymerElements/iron-location#^0.8.0", + "marked-element": "PolymerElements/marked-element#^1.0.0", + "prism-element": "PolymerElements/prism-element#^1.1.0" + }, + "devDependencies": { + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-demo-helpers/demo-pages-shared-styles.d.ts b/bower_components/iron-demo-helpers/demo-pages-shared-styles.d.ts new file mode 100644 index 00000000..f9410b30 --- /dev/null +++ b/bower_components/iron-demo-helpers/demo-pages-shared-styles.d.ts @@ -0,0 +1,14 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * demo-pages-shared-styles.html + */ + +/// +/// +/// + diff --git a/bower_components/iron-demo-helpers/demo-pages-shared-styles.html b/bower_components/iron-demo-helpers/demo-pages-shared-styles.html new file mode 100644 index 00000000..12ecc01f --- /dev/null +++ b/bower_components/iron-demo-helpers/demo-pages-shared-styles.html @@ -0,0 +1,52 @@ + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/demo-snippet.d.ts b/bower_components/iron-demo-helpers/demo-snippet.d.ts new file mode 100644 index 00000000..596daca9 --- /dev/null +++ b/bower_components/iron-demo-helpers/demo-snippet.d.ts @@ -0,0 +1,59 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * demo-snippet.html + */ + +/// +/// +/// +/// + +/** + * `demo-snippet` is a helper element that displays the source of a code snippet and + * its rendered demo. It can be used for both native elements and + * Polymer elements. + * + * Example of a native element demo + * + * + * + * + * + * Example of a Polymer demo + * + * + * + * + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--demo-snippet` | Mixin applied to the entire element | `{}` + * `--demo-snippet-demo` | Mixin applied to just the demo section | `{}` + * `--demo-snippet-code` | Mixin applied to just the code section | `{}` + */ +interface DemoSnippetElement extends Polymer.Element { + _markdown: string|null|undefined; + attached(): void; + detached(): void; + _updateMarkdown(): void; + _copyToClipboard(): any; + _resetCopyButtonState(): void; +} + +interface HTMLElementTagNameMap { + "demo-snippet": DemoSnippetElement; +} diff --git a/bower_components/iron-demo-helpers/demo-snippet.html b/bower_components/iron-demo-helpers/demo-snippet.html new file mode 100644 index 00000000..5767a2f3 --- /dev/null +++ b/bower_components/iron-demo-helpers/demo-snippet.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/demo/index.html b/bower_components/iron-demo-helpers/demo/index.html new file mode 100644 index 00000000..0908bece --- /dev/null +++ b/bower_components/iron-demo-helpers/demo/index.html @@ -0,0 +1,70 @@ + + + + + demo-snippet demo + + + + + + + + + + + + + + + + +
    +

    Demo of a native element

    + + + + +

    Demo of a native element with styles

    + + + + +

    Demo of a custom element with styles

    + + + +
    + + diff --git a/bower_components/iron-demo-helpers/demo/simple-button.html b/bower_components/iron-demo-helpers/demo/simple-button.html new file mode 100644 index 00000000..5a49b308 --- /dev/null +++ b/bower_components/iron-demo-helpers/demo/simple-button.html @@ -0,0 +1,40 @@ + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/demo/url-bar.html b/bower_components/iron-demo-helpers/demo/url-bar.html new file mode 100644 index 00000000..c7ea8f83 --- /dev/null +++ b/bower_components/iron-demo-helpers/demo/url-bar.html @@ -0,0 +1,50 @@ + + + + + url-bar demo + + + + + + + + + + + + + + + + +
    + + + + diff --git a/bower_components/iron-demo-helpers/index.html b/bower_components/iron-demo-helpers/index.html new file mode 100644 index 00000000..74ffffd6 --- /dev/null +++ b/bower_components/iron-demo-helpers/index.html @@ -0,0 +1,28 @@ + + + + + + + + + iron-demo-helpers + + + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/package-lock.json b/bower_components/iron-demo-helpers/package-lock.json new file mode 100644 index 00000000..c3eced9f --- /dev/null +++ b/bower_components/iron-demo-helpers/package-lock.json @@ -0,0 +1,983 @@ +{ + "name": "@polymer/iron-demo-helpers", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "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.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.9.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-demo-helpers/package.json b/bower_components/iron-demo-helpers/package.json new file mode 100644 index 00000000..9f5a39c7 --- /dev/null +++ b/bower_components/iron-demo-helpers/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-demo-helpers", + "private": true, + "description": "Utility classes to make building demo pages easier", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-demo-helpers.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-demo-helpers/test/basic.html b/bower_components/iron-demo-helpers/test/basic.html new file mode 100644 index 00000000..a3259f76 --- /dev/null +++ b/bower_components/iron-demo-helpers/test/basic.html @@ -0,0 +1,121 @@ + + + + + + demo-snippet tests + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/test/index.html b/bower_components/iron-demo-helpers/test/index.html new file mode 100644 index 00000000..1804fdbb --- /dev/null +++ b/bower_components/iron-demo-helpers/test/index.html @@ -0,0 +1,26 @@ + + + + + + + demo-snippet tests + + + + + + diff --git a/bower_components/iron-demo-helpers/test/simple-button.html b/bower_components/iron-demo-helpers/test/simple-button.html new file mode 100644 index 00000000..5a49b308 --- /dev/null +++ b/bower_components/iron-demo-helpers/test/simple-button.html @@ -0,0 +1,40 @@ + + + + + + + + + diff --git a/bower_components/iron-demo-helpers/url-bar.d.ts b/bower_components/iron-demo-helpers/url-bar.d.ts new file mode 100644 index 00000000..e0d089df --- /dev/null +++ b/bower_components/iron-demo-helpers/url-bar.d.ts @@ -0,0 +1,40 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * url-bar.html + */ + +/// +/// +/// + +/** + * `url-bar` is a helper element that displays a simple read-only URL bar if + * and only if the page is in an iframe. In this way we can demo elements that + * deal with the URL in our iframe-based demo environments. + * + * If the page is not in an iframe, the url-bar element is not displayed. + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--url-bar` | Mixin applied to the entire element | `{}` + */ +interface UrlBarElement extends Polymer.Element { + readonly url: string|null|undefined; + inIframe: boolean|null|undefined; + path: string|null|undefined; + query: string|null|undefined; + hash: string|null|undefined; +} + +interface HTMLElementTagNameMap { + "url-bar": UrlBarElement; +} diff --git a/bower_components/iron-demo-helpers/url-bar.html b/bower_components/iron-demo-helpers/url-bar.html new file mode 100644 index 00000000..d5db4d00 --- /dev/null +++ b/bower_components/iron-demo-helpers/url-bar.html @@ -0,0 +1,129 @@ + + + + + + + + + + diff --git a/bower_components/iron-dropdown/.bower.json b/bower_components/iron-dropdown/.bower.json new file mode 100644 index 00000000..8f444da4 --- /dev/null +++ b/bower_components/iron-dropdown/.bower.json @@ -0,0 +1,71 @@ +{ + "name": "iron-dropdown", + "version": "2.2.0", + "description": "An unstyled element that works similarly to a native browser select", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer" + ], + "main": "iron-dropdown.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-dropdown" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-dropdown", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^2.2.0", + "neon-animation": "PolymerElements/neon-animation#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "iron-image": "PolymerElements/iron-image#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^2.2.0", + "neon-animation": "PolymerElements/neon-animation#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "iron-image": "PolymerElements/iron-image#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.2.0", + "_resolution": { + "type": "version", + "tag": "v2.2.0", + "commit": "44b87e148bba715bb176c8378e05467d1c296b88" + }, + "_source": "https://github.com/PolymerElements/iron-dropdown.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-dropdown" +} \ No newline at end of file diff --git a/bower_components/iron-dropdown/.github/CODEOWNERS b/bower_components/iron-dropdown/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-dropdown/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-dropdown/.github/ISSUE_TEMPLATE.md b/bower_components/iron-dropdown/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..a1b71482 --- /dev/null +++ b/bower_components/iron-dropdown/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-dropdown/.gitignore b/bower_components/iron-dropdown/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-dropdown/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-dropdown/.travis.yml b/bower_components/iron-dropdown/.travis.yml new file mode 100644 index 00000000..7ef95509 --- /dev/null +++ b/bower_components/iron-dropdown/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + YMlrRxFp8QBJ9KfvrPru2sIaHm5GeVHsZ/wE4qm5ntdsoqQlsJXRYYhlE2jPSHte+2VrOnFItjCsoqG6myeCbMrDS+/ZAZd+PWNdxbSs0DiGVMJWtrd8PwhKeOoVYzJleTwU0Uj2mF/mKwoC6aNgf56V9XzC2mkooRJX9cDbCkfddcIGoU/45zsPPMJV+BRVDcETw5g0PD+7NJBPtJP+d8TMO+jtdgXQ1V0vPJhkS7RaYZoDeljsml/Xc8Djb3zUttu5cFk4lXeKAKtFgFzxVsFqytxuYY2aSkMcq2/KxwexnnK/SCe5uQC014TjYAMzSs5A7l/ZBEzRGDhxKmkR2JHY3ktRCOFphqrQa9JoK3k+Tc28JeXJXTXNW7B5SODclN45ik5jQQ/FaJgRlideK07LsEObC9FjEoSd0U5rt75bzIhGuBQ6vr16JQLtN7+NvPRMsNqZRGHQysbW7SbfuLdWwmprn8kXaiQoensAnWlrrGoaPtPfKgA68YRQ/2cr9zZWFmMTzfDP6/Y8YSulj1mzqP2U8AZStXZ1vKN7IWY/ADzYrRG/nCqwd8gQpQoiAEgOfc+de5fIzLPRfLS8fI8sow9yZC8hE91JDatxOPvg/YCDGfJUQddCG+Z3LIBqY6RYKjXzCTCexGD6XWIJso8x5HEEWEQKArqT6vLM4gE= + - secure: >- + yNGht7DLQ56gIwWh+Wu/3spWaIo0qR/EXB7SDzGtE7Y1KLbgYjmGCnA+3Y+vQ8q9Smpv66FMi8ejbBnObb347806LykEG23OJWBbruUi3gGoImNqLmaj+iqxiaYzxqIWs7gwhpYMdNGFiu1T83eBLOLoVQqO1OIIVbH1Fk0MvHvbknY52VyOEaEjVBdnWAxTpDdgujzVaPBxaPCbD15nUFgaMCsBdR0SKtX0X+vVZRdu0VzHqLJPhUxrQJIxdAYc/OyEKki5pR93b0df+0P14NHxduWNtaAReBtMtpVsiLfaxiHdoWzjHdJ2g+x4DEoH1ynbs4v/8qWE1xLABcgHK2UeZYwTtk7KSA9ZcYSx7JxnO1mhseWdiCSKO4Y0bZuBcSsQ9O5skvIOhAd9bLdQHMe4bHSf8mhtv/Kw6IHmEqZ9YZ8TIk7YY4bYiLOKsN6q2kYbWO7UVeYBLul3mppiEWZ04JmbjVU5us1hq40RdSsc34/fW3KitLfVaYQlTWlZ/h9nx7tOQ2o6OOSHgRnD8qPpFM+xExqkj2FIgUWyecn8VKQ6FojgfOeVyEQ3WdPK17LdFxhKfHVod+Qufl6ArBsUMWctns4/jQTCJXL+VIPfZWQ/wrYmkIW7dEjA6NnTMBqhjBa37C1G8+Ak5kvSAcU4iAbjqA1jVv4RANRV5x8= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-dropdown/CONTRIBUTING.md b/bower_components/iron-dropdown/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-dropdown/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-dropdown/README.md b/bower_components/iron-dropdown/README.md new file mode 100644 index 00000000..06c02cc0 --- /dev/null +++ b/bower_components/iron-dropdown/README.md @@ -0,0 +1,35 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-dropdown.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-dropdown) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-dropdown)_ + + +## <iron-dropdown> + +`` is a generalized element that is useful when you have +hidden content (`dropdown-content`) that is revealed due to some change in +state that should cause it to do so. + +Note that this is a low-level element intended to be used as part of other +composite elements that cause dropdowns to be revealed. + +Examples of elements that might be implemented using an `iron-dropdown` +include comboboxes, menubuttons, selects. The list goes on. + +The `` element exposes attributes that allow the position +of the `dropdown-content` relative to the `dropdown-trigger` to be +configured. + +```html + +
    Hello!
    +
    +``` + +In the above example, the `
    ` assigned to the `dropdown-content` slot will be +hidden until the dropdown element has `opened` set to true, or when the `open` +method is called on the element. + +### Changes in 2.0 +- Removed the private property `_focusTarget` which was deprecated. +- `neon-animation 2.0` doesn't import the Web Animations polyfill, so you'll have to import it ([see example](demo/index.html)) +- Distribution moved from the `class="dropdown-content"` to `slot="dropdown-content"` diff --git a/bower_components/iron-dropdown/bower.json b/bower_components/iron-dropdown/bower.json new file mode 100644 index 00000000..cda69639 --- /dev/null +++ b/bower_components/iron-dropdown/bower.json @@ -0,0 +1,62 @@ +{ + "name": "iron-dropdown", + "version": "2.1.0", + "description": "An unstyled element that works similarly to a native browser select", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer" + ], + "main": "iron-dropdown.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-dropdown" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-dropdown", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^2.2.0", + "neon-animation": "PolymerElements/neon-animation#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "iron-image": "PolymerElements/iron-image#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^2.2.0", + "neon-animation": "PolymerElements/neon-animation#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "iron-image": "PolymerElements/iron-image#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-dropdown/demo/grow-height-animation.html b/bower_components/iron-dropdown/demo/grow-height-animation.html new file mode 100644 index 00000000..e2fdc448 --- /dev/null +++ b/bower_components/iron-dropdown/demo/grow-height-animation.html @@ -0,0 +1,36 @@ + + + + + + diff --git a/bower_components/iron-dropdown/demo/index.html b/bower_components/iron-dropdown/demo/index.html new file mode 100644 index 00000000..15f7480f --- /dev/null +++ b/bower_components/iron-dropdown/demo/index.html @@ -0,0 +1,211 @@ + + + + + + + iron-dropdown + + + + + + + + + + + + + + +

    Basic

    + + + + +

    Alignment

    + + + + +

    Scroll actions

    + + + + +

    Content

    + + + + + + + + + diff --git a/bower_components/iron-dropdown/demo/x-select.html b/bower_components/iron-dropdown/demo/x-select.html new file mode 100644 index 00000000..39444115 --- /dev/null +++ b/bower_components/iron-dropdown/demo/x-select.html @@ -0,0 +1,82 @@ + + + + + + + + + + diff --git a/bower_components/iron-dropdown/gen-tsd.json b/bower_components/iron-dropdown/gen-tsd.json new file mode 100644 index 00000000..488a6724 --- /dev/null +++ b/bower_components/iron-dropdown/gen-tsd.json @@ -0,0 +1,7 @@ +{ + "addReferences": { + "iron-dropdown-scroll-manager.d.ts": [ + "iron-dropdown-scroll-manager-extra.d.ts" + ] + } +} diff --git a/bower_components/iron-dropdown/index.html b/bower_components/iron-dropdown/index.html new file mode 100644 index 00000000..1d3d6cad --- /dev/null +++ b/bower_components/iron-dropdown/index.html @@ -0,0 +1,24 @@ + + + + + + iron-dropdown + + + + + + + + + + diff --git a/bower_components/iron-dropdown/iron-dropdown-scroll-manager-extra.d.ts b/bower_components/iron-dropdown/iron-dropdown-scroll-manager-extra.d.ts new file mode 100644 index 00000000..1dd002c7 --- /dev/null +++ b/bower_components/iron-dropdown/iron-dropdown-scroll-manager-extra.d.ts @@ -0,0 +1,6 @@ +declare namespace Polymer { + /** + * IronDropdownScrollManager is deprecated, use IronScrollManager instead. + */ + const IronDropdownScrollManager: typeof Polymer.IronScrollManager; +} diff --git a/bower_components/iron-dropdown/iron-dropdown-scroll-manager.d.ts b/bower_components/iron-dropdown/iron-dropdown-scroll-manager.d.ts new file mode 100644 index 00000000..9030aeca --- /dev/null +++ b/bower_components/iron-dropdown/iron-dropdown-scroll-manager.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-dropdown-scroll-manager.html + */ + +/// +/// + diff --git a/bower_components/iron-dropdown/iron-dropdown-scroll-manager.html b/bower_components/iron-dropdown/iron-dropdown-scroll-manager.html new file mode 100644 index 00000000..757b6a25 --- /dev/null +++ b/bower_components/iron-dropdown/iron-dropdown-scroll-manager.html @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/bower_components/iron-dropdown/iron-dropdown.d.ts b/bower_components/iron-dropdown/iron-dropdown.d.ts new file mode 100644 index 00000000..c49bff85 --- /dev/null +++ b/bower_components/iron-dropdown/iron-dropdown.d.ts @@ -0,0 +1,153 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-dropdown.html + */ + +/// +/// +/// +/// +/// + +/** + * `` is a generalized element that is useful when you have + * hidden content (`dropdown-content`) that is revealed due to some change in + * state that should cause it to do so. + * + * Note that this is a low-level element intended to be used as part of other + * composite elements that cause dropdowns to be revealed. + * + * Examples of elements that might be implemented using an `iron-dropdown` + * include comboboxes, menubuttons, selects. The list goes on. + * + * The `` element exposes attributes that allow the position + * of the `dropdown-content` relative to the `dropdown-trigger` to be + * configured. + * + * + *
    Hello!
    + *
    + * + * In the above example, the `
    ` assigned to the `dropdown-content` slot will be + * hidden until the dropdown element has `opened` set to true, or when the `open` + * method is called on the element. + */ +interface IronDropdownElement extends Polymer.Element, Polymer.IronControlState, Polymer.IronA11yKeysBehavior, Polymer.IronOverlayBehavior, Polymer.NeonAnimationRunnerBehavior { + + /** + * The orientation against which to align the dropdown content + * horizontally relative to the dropdown trigger. + * Overridden from `Polymer.IronFitBehavior`. + */ + horizontalAlign: string|null|undefined; + + /** + * The orientation against which to align the dropdown content + * vertically relative to the dropdown trigger. + * Overridden from `Polymer.IronFitBehavior`. + */ + verticalAlign: string|null|undefined; + + /** + * An animation config. If provided, this will be used to animate the + * opening of the dropdown. Pass an Array for multiple animations. + * See `neon-animation` documentation for more animation configuration + * details. + */ + openAnimationConfig: object|null|undefined; + + /** + * An animation config. If provided, this will be used to animate the + * closing of the dropdown. Pass an Array for multiple animations. + * See `neon-animation` documentation for more animation configuration + * details. + */ + closeAnimationConfig: object|null|undefined; + + /** + * If provided, this will be the element that will be focused when + * the dropdown opens. + */ + focusTarget: object|null|undefined; + + /** + * Set to true to disable animations when opening and closing the + * dropdown. + */ + noAnimations: boolean|null|undefined; + + /** + * By default, the dropdown will constrain scrolling on the page + * to itself when opened. + * Set to true in order to prevent scroll from being constrained + * to the dropdown when it opens. + * This property is a shortcut to set `scrollAction` to lock or refit. + * Prefer directly setting the `scrollAction` property. + */ + allowOutsideScroll: boolean|null|undefined; + + /** + * The element that is contained by the dropdown, if any. + * + */ + readonly containedElement: any; + ready(): void; + attached(): void; + detached(): void; + + /** + * Called when the value of `opened` changes. + * Overridden from `IronOverlayBehavior` + */ + _openedChanged(): void; + + /** + * Overridden from `IronOverlayBehavior`. + */ + _renderOpened(): void; + + /** + * Overridden from `IronOverlayBehavior`. + */ + _renderClosed(): void; + + /** + * Apply focus to focusTarget or containedElement + */ + _applyFocus(): void; + + /** + * Called when animation finishes on the dropdown (when opening or + * closing). Responsible for "completing" the process of opening or + * closing the dropdown by positioning it or setting its display to + * none. + */ + _onNeonAnimationFinish(): void; + + /** + * Constructs the final animation config from different properties used + * to configure specific parts of the opening and closing animations. + */ + _updateAnimationConfig(): void; + + /** + * Updates the overlay position based on configured horizontal + * and vertical alignment. + */ + _updateOverlayPosition(): void; + + /** + * Sets scrollAction according to the value of allowOutsideScroll. + * Prefer setting directly scrollAction. + */ + _allowOutsideScrollChanged(allowOutsideScroll: any): void; +} + +interface HTMLElementTagNameMap { + "iron-dropdown": IronDropdownElement; +} diff --git a/bower_components/iron-dropdown/iron-dropdown.html b/bower_components/iron-dropdown/iron-dropdown.html new file mode 100644 index 00000000..88985d73 --- /dev/null +++ b/bower_components/iron-dropdown/iron-dropdown.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-dropdown/package-lock.json b/bower_components/iron-dropdown/package-lock.json new file mode 100644 index 00000000..d8c34b37 --- /dev/null +++ b/bower_components/iron-dropdown/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-dropdown", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-dropdown/package.json b/bower_components/iron-dropdown/package.json new file mode 100644 index 00000000..900db9ef --- /dev/null +++ b/bower_components/iron-dropdown/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-dropdown", + "private": true, + "description": "An unstyled element that works similarly to a native browser select", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-dropdown" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-dropdown/test/index.html b/bower_components/iron-dropdown/test/index.html new file mode 100644 index 00000000..cf393da5 --- /dev/null +++ b/bower_components/iron-dropdown/test/index.html @@ -0,0 +1,26 @@ + + + + + + + iron-dropdown tests + + + + + + diff --git a/bower_components/iron-dropdown/test/iron-dropdown.html b/bower_components/iron-dropdown/test/iron-dropdown.html new file mode 100644 index 00000000..e1547992 --- /dev/null +++ b/bower_components/iron-dropdown/test/iron-dropdown.html @@ -0,0 +1,618 @@ + + + + + + + iron-dropdown basic tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-dropdown/test/x-scrollable-element.html b/bower_components/iron-dropdown/test/x-scrollable-element.html new file mode 100644 index 00000000..3bdb3cf9 --- /dev/null +++ b/bower_components/iron-dropdown/test/x-scrollable-element.html @@ -0,0 +1,53 @@ + + + + + + + + diff --git a/bower_components/iron-fit-behavior/.bower.json b/bower_components/iron-fit-behavior/.bower.json new file mode 100644 index 00000000..a4d5a31f --- /dev/null +++ b/bower_components/iron-fit-behavior/.bower.json @@ -0,0 +1,59 @@ +{ + "name": "iron-fit-behavior", + "version": "2.2.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Fits an element inside another element", + "private": true, + "main": "iron-fit-behavior.html", + "keywords": [ + "web-components", + "polymer", + "behavior" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-fit-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-fit-behavior", + "_release": "2.2.1", + "_resolution": { + "type": "version", + "tag": "v2.2.1", + "commit": "1fb4d9a54bc29b53c50d70b5fceb3fa2fc68ba36" + }, + "_source": "https://github.com/PolymerElements/iron-fit-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-fit-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-fit-behavior/.github/CODEOWNERS b/bower_components/iron-fit-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-fit-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0bd8a806 --- /dev/null +++ b/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-fit-behavior/.gitignore b/bower_components/iron-fit-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-fit-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-fit-behavior/.travis.yml b/bower_components/iron-fit-behavior/.travis.yml new file mode 100644 index 00000000..a2c11e8a --- /dev/null +++ b/bower_components/iron-fit-behavior/.travis.yml @@ -0,0 +1,31 @@ +language: node_js +sudo: 'false' +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + IRn7Bu0Iq9etV/e71Lt3D9FRwVYB6lx8ItB9qk6Tj0FdmtpZ0PIKjTQ08QnbNHinl4xMkeJWs41qPk8LpOig2LHd7AmXnomRwHck1+7oJyIqTMf9fsbZ8BkdAz8RPr0OmiTVsjAZaFaI9YVc9y9DyfD8DGO51mWdpUCfr/S2+Hw= + - secure: >- + ZJDnPya7VyGKCUiaG1VfoT2GWRXDPt33+uFgLxIx3ahZu/Mlw5jy5vu9Y/qQldHAdGceY19wmXhdHsnQBKmDjE4MDSVl7FDVV5eUstsudoovx+ul9MsbdGfBXKT6C3bATqPpQ+ML8hMeuJSQ4AlbY7+KhpVEVi4ko8uaDERdOWc= +node_js: '9' +addons: + firefox: latest + chrome: stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty +cache: + directories: + - node_modules diff --git a/bower_components/iron-fit-behavior/CONTRIBUTING.md b/bower_components/iron-fit-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-fit-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-fit-behavior/README.md b/bower_components/iron-fit-behavior/README.md new file mode 100644 index 00000000..4900ab98 --- /dev/null +++ b/bower_components/iron-fit-behavior/README.md @@ -0,0 +1,43 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-fit-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-fit-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-fit-behavior)_ + + +## Polymer.IronFitBehavior + +`Polymer.IronFitBehavior` fits an element in another element using `max-height` and `max-width`, and +optionally centers it in the window or another element. + +The element will only be sized and/or positioned if it has not already been sized and/or positioned +by CSS. + +| CSS properties | Action | +| --- | --- | +| `position` set | Element is not centered horizontally or vertically | +| `top` or `bottom` set | Element is not vertically centered | +| `left` or `right` set | Element is not horizontally centered | +| `max-height` set | Element respects `max-height` | +| `max-width` set | Element respects `max-width` | + +`Polymer.IronFitBehavior` can position an element into another element using +`verticalAlign` and `horizontalAlign`. This will override the element's css position. + +```html +
    + + Positioned into the container + +
    +``` + +Use `noOverlap` to position the element around another element without overlapping it. + +```html +
    + + Positioned around the container + +
    +``` + + diff --git a/bower_components/iron-fit-behavior/bower.json b/bower_components/iron-fit-behavior/bower.json new file mode 100644 index 00000000..0e0c1622 --- /dev/null +++ b/bower_components/iron-fit-behavior/bower.json @@ -0,0 +1,49 @@ +{ + "name": "iron-fit-behavior", + "version": "2.2.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Fits an element inside another element", + "private": true, + "main": "iron-fit-behavior.html", + "keywords": [ + "web-components", + "polymer", + "behavior" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-fit-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-fit-behavior/demo/index.html b/bower_components/iron-fit-behavior/demo/index.html new file mode 100644 index 00000000..3b166d9b --- /dev/null +++ b/bower_components/iron-fit-behavior/demo/index.html @@ -0,0 +1,175 @@ + + + + + + + iron-fit-behavior demo + + + + + + + + + + + + + + + +

    + An element with IronFitBehavior can be centered in + fitInto or positioned around a positionTarget +

    + + + + + + + diff --git a/bower_components/iron-fit-behavior/demo/simple-fit.html b/bower_components/iron-fit-behavior/demo/simple-fit.html new file mode 100644 index 00000000..c7c6b876 --- /dev/null +++ b/bower_components/iron-fit-behavior/demo/simple-fit.html @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/bower_components/iron-fit-behavior/index.html b/bower_components/iron-fit-behavior/index.html new file mode 100644 index 00000000..5ffa7d61 --- /dev/null +++ b/bower_components/iron-fit-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-fit-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-fit-behavior/iron-fit-behavior.d.ts b/bower_components/iron-fit-behavior/iron-fit-behavior.d.ts new file mode 100644 index 00000000..e9356e60 --- /dev/null +++ b/bower_components/iron-fit-behavior/iron-fit-behavior.d.ts @@ -0,0 +1,211 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-fit-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * `Polymer.IronFitBehavior` fits an element in another element using `max-height` + * and `max-width`, and optionally centers it in the window or another element. + * + * The element will only be sized and/or positioned if it has not already been + * sized and/or positioned by CSS. + * + * CSS properties | Action + * -----------------------------|------------------------------------------- + * `position` set | Element is not centered horizontally or + * vertically `top` or `bottom` set | Element is not vertically centered + * `left` or `right` set | Element is not horizontally centered + * `max-height` set | Element respects `max-height` + * `max-width` set | Element respects `max-width` + * + * `Polymer.IronFitBehavior` can position an element into another element using + * `verticalAlign` and `horizontalAlign`. This will override the element's css + * position. + * + *
    + * + * Positioned into the container + * + *
    + * + * Use `noOverlap` to position the element around another element without + * overlapping it. + * + *
    + * + * Positioned around the container + * + *
    + * + * Use `horizontalOffset, verticalOffset` to offset the element from its + * `positionTarget`; `Polymer.IronFitBehavior` will collapse these in order to keep + * the element within `fitInto` boundaries, while preserving the element's CSS + * margin values. + * + *
    + * + * With vertical offset + * + *
    + * + * + * + */ + interface IronFitBehavior { + + /** + * The element that will receive a `max-height`/`width`. By default it is + * the same as `this`, but it can be set to a child element. This is useful, + * for example, for implementing a scrolling region inside the element. + */ + sizingTarget: Element; + + /** + * The element to fit `this` into. + */ + fitInto: object|null|undefined; + + /** + * Will position the element around the positionTarget without overlapping + * it. + */ + noOverlap: boolean|null|undefined; + + /** + * The element that should be used to position the element. If not set, it + * will default to the parent node. + */ + positionTarget: Element; + + /** + * The orientation against which to align the element horizontally + * relative to the `positionTarget`. Possible values are "left", "right", + * "center", "auto". + */ + horizontalAlign: string|null|undefined; + + /** + * The orientation against which to align the element vertically + * relative to the `positionTarget`. Possible values are "top", "bottom", + * "middle", "auto". + */ + verticalAlign: string|null|undefined; + + /** + * If true, it will use `horizontalAlign` and `verticalAlign` values as + * preferred alignment and if there's not enough space, it will pick the + * values which minimize the cropping. + */ + dynamicAlign: boolean|null|undefined; + + /** + * A pixel value that will be added to the position calculated for the + * given `horizontalAlign`, in the direction of alignment. You can think + * of it as increasing or decreasing the distance to the side of the + * screen given by `horizontalAlign`. + * + * If `horizontalAlign` is "left" or "center", this offset will increase or + * decrease the distance to the left side of the screen: a negative offset + * will move the dropdown to the left; a positive one, to the right. + * + * Conversely if `horizontalAlign` is "right", this offset will increase + * or decrease the distance to the right side of the screen: a negative + * offset will move the dropdown to the right; a positive one, to the left. + */ + horizontalOffset: number|null|undefined; + + /** + * A pixel value that will be added to the position calculated for the + * given `verticalAlign`, in the direction of alignment. You can think + * of it as increasing or decreasing the distance to the side of the + * screen given by `verticalAlign`. + * + * If `verticalAlign` is "top" or "middle", this offset will increase or + * decrease the distance to the top side of the screen: a negative offset + * will move the dropdown upwards; a positive one, downwards. + * + * Conversely if `verticalAlign` is "bottom", this offset will increase + * or decrease the distance to the bottom side of the screen: a negative + * offset will move the dropdown downwards; a positive one, upwards. + */ + verticalOffset: number|null|undefined; + + /** + * Set to true to auto-fit on attach. + */ + autoFitOnAttach: boolean|null|undefined; + _fitInfo: object|null; + readonly _fitWidth: any; + readonly _fitHeight: any; + readonly _fitLeft: any; + readonly _fitTop: any; + + /** + * The element that should be used to position the element, + * if no position target is configured. + * + */ + readonly _defaultPositionTarget: any; + + /** + * The horizontal align value, accounting for the RTL/LTR text direction. + * + */ + readonly _localeHorizontalAlign: any; + attached(): void; + detached(): void; + + /** + * Positions and fits the element into the `fitInto` element. + */ + fit(): void; + + /** + * Memoize information needed to position and size the target element. + */ + _discoverInfo(): void; + + /** + * Resets the target element's position and size constraints, and clear + * the memoized data. + */ + resetFit(): void; + + /** + * Equivalent to calling `resetFit()` and `fit()`. Useful to call this after + * the element or the `fitInto` element has been resized, or if any of the + * positioning properties (e.g. `horizontalAlign, verticalAlign`) is updated. + * It preserves the scroll position of the sizingTarget. + */ + refit(): void; + + /** + * Positions the element according to `horizontalAlign, verticalAlign`. + */ + position(): void; + + /** + * Constrains the size of the element to `fitInto` by setting `max-height` + * and/or `max-width`. + */ + constrain(): void; + _sizeDimension(rect: any, positionedBy: any, start: any, end: any, extent: any): void; + + /** + * Centers horizontally and vertically if not already positioned. This also + * sets `position:fixed`. + */ + center(): void; + } + + const IronFitBehavior: object; +} diff --git a/bower_components/iron-fit-behavior/iron-fit-behavior.html b/bower_components/iron-fit-behavior/iron-fit-behavior.html new file mode 100644 index 00000000..306b38f7 --- /dev/null +++ b/bower_components/iron-fit-behavior/iron-fit-behavior.html @@ -0,0 +1,689 @@ + + + + + diff --git a/bower_components/iron-fit-behavior/package-lock.json b/bower_components/iron-fit-behavior/package-lock.json new file mode 100644 index 00000000..6b08ab8c --- /dev/null +++ b/bower_components/iron-fit-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-fit-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.3" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.3.tgz", + "integrity": "sha512-igaEysRgtg5tYJVIdQ1T2lJ3G6OmoY7g0YVWKHLFiVs4YUChd9IRSiLoHSLffwut+CpsHHBDj4vRxxNEMstctw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-fit-behavior/package.json b/bower_components/iron-fit-behavior/package.json new file mode 100644 index 00000000..bcc6eb33 --- /dev/null +++ b/bower_components/iron-fit-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-fit-behavior", + "private": true, + "description": "Fits an element inside another element", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-fit-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-fit-behavior/test/index.html b/bower_components/iron-fit-behavior/test/index.html new file mode 100644 index 00000000..265d90d5 --- /dev/null +++ b/bower_components/iron-fit-behavior/test/index.html @@ -0,0 +1,31 @@ + + + iron-fit-behavior tests + + + + + + + + + + + + + + + diff --git a/bower_components/iron-fit-behavior/test/iron-fit-behavior.html b/bower_components/iron-fit-behavior/test/iron-fit-behavior.html new file mode 100644 index 00000000..478b5f56 --- /dev/null +++ b/bower_components/iron-fit-behavior/test/iron-fit-behavior.html @@ -0,0 +1,1411 @@ + + + + + + iron-fit-behavior tests + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-fit-behavior/test/test-fit.html b/bower_components/iron-fit-behavior/test/test-fit.html new file mode 100644 index 00000000..e8733105 --- /dev/null +++ b/bower_components/iron-fit-behavior/test/test-fit.html @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/bower_components/iron-fit-behavior/wct.conf.json b/bower_components/iron-fit-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/bower_components/iron-fit-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/bower_components/iron-flex-layout/.bower.json b/bower_components/iron-flex-layout/.bower.json new file mode 100644 index 00000000..0c98be54 --- /dev/null +++ b/bower_components/iron-flex-layout/.bower.json @@ -0,0 +1,64 @@ +{ + "name": "iron-flex-layout", + "version": "2.0.3", + "description": "Provide flexbox-based layouts", + "keywords": [ + "web-components", + "polymer", + "layout" + ], + "main": "iron-flex-layout.html", + "private": true, + "license": "http://polymer.github.io/LICENSE.txt", + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-flex-layout.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "pages": { + "Flexbox layout guide": "GUIDE.md" + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-flex-layout", + "_release": "2.0.3", + "_resolution": { + "type": "version", + "tag": "v2.0.3", + "commit": "67461d70607ca19d17b462b9a649c1585094f798" + }, + "_source": "https://github.com/PolymerElements/iron-flex-layout.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-flex-layout" +} \ No newline at end of file diff --git a/bower_components/iron-flex-layout/.github/CODEOWNERS b/bower_components/iron-flex-layout/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-flex-layout/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-flex-layout/.github/ISSUE_TEMPLATE.md b/bower_components/iron-flex-layout/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..b79eca40 --- /dev/null +++ b/bower_components/iron-flex-layout/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-flex-layout/.gitignore b/bower_components/iron-flex-layout/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-flex-layout/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-flex-layout/.travis.yml b/bower_components/iron-flex-layout/.travis.yml new file mode 100644 index 00000000..2d3f9f6e --- /dev/null +++ b/bower_components/iron-flex-layout/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + idlCNYtNQ7rLGCSl2NuZ++XZEwofpojkakXhL8m34pCX1ZwhGRprHsvNE7h7tz8SIV+mUjuUT8DaM7rlgZ+bLyw/Hq7G15DdmU5puUsCVibFFBBEhh82lxkdK/Rlfo+ytt0MFsbTJljEoqTSbnL0fSeC0cN/7wf6yEQs/+mTR0I= + - secure: >- + i/rAHa9rxszmbE+RbQ2b7ln6OYzrcoUssdPk36lNeJk/B1HjBS9cfg1PMwSAw+t6yvAN3I0fbOOl4dlGB1K5T4kAtmcAcC3fbptJL08IvK9K15pz/rMEzIBWLXj9oVJliwBZR2GFH+5zv6aFdEwQxh1leBnHQwmKgl24QX8XGO4= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-flex-layout/CONTRIBUTING.md b/bower_components/iron-flex-layout/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-flex-layout/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-flex-layout/GUIDE.md b/bower_components/iron-flex-layout/GUIDE.md new file mode 100644 index 00000000..e230ce07 --- /dev/null +++ b/bower_components/iron-flex-layout/GUIDE.md @@ -0,0 +1,1265 @@ +## Overview + +The `iron-flex-layout` component provides simple ways to use [CSS flexible box layout](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes), also known as _flexbox_. This component provides two different ways to use flexbox: + +* Layout classes. The layout class stylesheet provides a simple set of class-based flexbox rules. Layout classes + let you specify layout properties directly in markup. + +* Custom CSS mixins. The mixin stylesheet includes custom CSS mixins that can be applied + inside a CSS rule using the `@apply` function. + +Using the classes or CSS mixins is largely a matter of preference. The following sections discuss +how to use the each of the stylesheets. + +> Note: Before using either of these stylesheets, it's helpful to be familiar with the basics +of flexbox layout. Chris Coyier's [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) is a +good primer. + +### Using layout classes + +To use layout classes import the `iron-flex-layout-classes` file. You +must do this in any element that uses any of the `iron-flex-layout` styles. +```html + +``` + +Then include the module(s) that you need: +```html + + + + + + +
    +
    One
    +
    Two
    +
    Three
    +
    + + +``` +**Example: using classes in a Polymer element** +```html + + + ... + + + + + + + + + + + +``` + +It's important to note that unlike the previous layout class stylesheets +(found in `/classes/iron-flex-layout.html`), the new version does not use the `/deep/` +combinator: it does not work across local DOM boundaries, +and the modules must be imported into each scope where they're used. + +### Using layout mixins + +Custom mixins can be applied inside a Polymer +custom element's stylesheet, **or** inside a `custom-style` stylesheet to apply styles to the +main document. (They cannot be applied in the main document without a `custom-style` stylesheet.) + +**Example: using mixins in the main document** +```html + + + ... + + + + ... + + + + + + + +
    +
    One
    +
    Two
    +
    Three
    +
    + + +``` +**Example: using mixins in a Polymer element** +```html + + + ... + + + + + + + + + + + +``` + +In general the mixins require a little more code to use, but they can be preferable if you +don't want to use the classes, or if you want to switch layouts based on a media query. + +Custom CSS properties and mixins are features provided by the Polymer library. +See [Cross-scope styling](https://www.polymer-project.org/1.0/docs/devguide/styling.html#xscope-styling) +in the Polymer developer guide. + +## Horizontal and vertical layout + +Create a flex container that lays out its children vertically or horizontally. + +Class | Mixin | Result +:-|:-|:- +layout horizontal| --layout-horizontal | Horizontal layout container. +layout vertical | --layout-vertical | Vertical layout container. + +The classes listed here are included in the `iron-flex` module of the `iron-flex-layout-classes` file. + +**Example: classes** +```html +
    +
    One
    +
    Two
    +
    Three
    +
    +``` + +**Example: mixins** + +```html + + +
    +
    One
    +
    Two
    +
    Three
    +
    +``` + +### Flexible children + +Children of a flex container can use flex to control their own sizing. + +Class | Mixin | Result +:-|:-|:- +flex| --layout-flex | Expand the child to fill available space in the main axis. +flex-ratio| --layout-flex-ratio | Assign a flex ratio of 1 to 12. +flex-none| --layout-flex-none | Don't flex the child. +flex-auto| --layout-flex-auto | Sets flex `flex-basis` to `auto` and `flex-grow` and `flex-shrink` to 1. + +The classes listed here are included in the `iron-flex` module of the `iron-flex-layout-classes` file. + +**Example: classes** +```html +
    +
    Alpha
    +
    Beta (flex)
    +
    Gamma
    +
    +``` + +**Example: mixins** + +```html + + +
    +
    Alpha
    +
    Beta (flex)
    +
    Gamma
    +
    +``` + +#### Flexible children in vertical layouts + +The same rules can be used for children in vertical layouts. + +**Example: classes** +```html +
    +
    Alpha
    +
    Beta (flex)
    +
    Gamma
    +
    +``` + +**Example: mixins** + +```html + + +
    +
    One
    +
    Two
    +
    Three
    +
    +``` + +> **Note**: for vertical layouts, the container needs to have a height for the +children to flex correctly. + +#### Flex ratios + +Children elements can be told to take up more space by including a "flex ratio" +from 1 to 12. This is equivalent to specifying the CSS `flex-grow` property. + +For example, the following examples make "Gamma" 2x larger than "Beta" and "Alpha" 3x larger, use +`flex-2` and `flex-3`, respectively. + +The classes listed here are included in the `iron-flex-factors` module of the `iron-flex-layout-classes` file. + +**Example: classes** +```html +
    +
    Alpha
    +
    Beta
    +
    Gamma
    +
    +``` + +**Example: mixins** + +```html + + +
    +
    One
    +
    Two
    +
    Three
    +
    +``` + +### Cross-axis alignment + +By default, children stretch to fit the cross-axis (e.g. _vertical_ stretching in a _horizontal_ layout). + + +```html +
    +
    Stretch Fill
    +
    +``` + +Center _across_ the main axis (e.g. _vertical_ centering elements in a _horizontal_ layout) +by adding the `center` class or applying the `--layout-center` mixin. + +**Example: classes, cross-axis center** + +```html +
    +
    Center
    +
    +``` + +**Example: mixins, cross-axis center** + +```html + + +
    +
    Center
    +
    +``` + +You can also position at the top/bottom (or left/right in `vertical` layouts) using the `start` or `end` +classes, or by applying the `--layout-start` or `--layout-end` mixins. + + +**Example: classes, cross-axis start** + +```html +
    +
    start
    +
    +``` + +**Example: mixins, cross-axis start** + +```html + + +
    +
    start
    +
    +``` + +**Example: classes, cross-axis end** + +```html +
    +
    end
    +
    +``` + +**Example: mixins, cross-axis end** + +```html + + +
    +
    end
    +
    +``` + +### Justification + +Justifying aligns contents along the **main axis**. Justify the layout +by specifying one of the following. + + +Class | Mixin | Result +:-|:-|:- +`start-justified`| --layout-start-justified | Aligns contents at the start of the main axis. +`center-justified` | --layout-center-justified | Centers contents along the main axis. +`end-justified` | --layout-end-justified | Aligns contents to the end of the main axis. +`justified` | --layout-justified | Aligns contents with equal spaces between children. +`around-justified` | --layout-around-justified | Aligns contents with equal spaces arround children. + +The classes listed here are included in the `iron-flex-alignment` module of the `iron-flex-layout-classes` file. + +**Example: classes, start justified** + +```html +
    +
    start-justified
    +
    +``` + +**Example: mixins, center justified** + +```html + + +
    +
    center-justified
    +
    +``` + +**Example: classes, end justified** + +```html +
    +
    end-justified
    +
    +``` + +**Example: mixins, equal space between elements** + +```html + + +
    +
    justified
    +
    justified
    +
    justified
    +
    +``` + +**Example: classes, equal space around each element** + +```html +
    +
    around-justified
    +
    around-justified
    +
    +``` + +## Self alignment + +Alignment can also be set per-child (instead of using the layout container's rules). + +Class | Mixin | Result +:-|:-|:- +`self-start`| --layout-self-start | Aligns the child at the start of the cross-axis. +`self-center` | --layout-self-center | Centers the child along the cross-axis. +`self-end` | --layout-self-end | Aligns the child at the end of the cross-axis. +`self-stretch` | --layout-self-stretch | Stretches the child to fit the cross-axis. + +**Example: classes** + +```html +
    +
    Alpha
    +
    Beta
    +
    Gamma
    +
    Delta
    +
    +``` + +**Example: mixins** + +```html + +
    +
    Alpha
    +
    Beta
    +
    Gamma
    +
    Delta
    +
    +``` + +> Note: The flex class +(and --layout-flex mixin) shown in these examples is +added for the demo and not required for self-alignment. + + +## Wrapping + +Wrapped layouts can be enabled with the `wrap` class or `--layout-wrap` mixin. + +**Example: classes** + +```html +
    +
    Alpha
    +
    Beta
    +
    Gamma
    +
    Delta
    +
    +``` + +## Reversed layouts + +Layout direction can be mirrored using the following rules: + +Class | Mixin | Result +:-|:-|:- +layout horizontal-reverse| --layout-horizontal-reverse | Horizontal layout with children laid out in reverse order (last-to-first). +layout vertical-reverse | --layout-vertical-reverse | Vertical layout with children laid out in reverse order. +layout wrap-reverse | --layout-wrap-reverse | Wrap layout with wrapped rows placed in the reverse order (for example, in a vertical layout, the second row is placed above the first row, instead of below). + +The classes listed here are included in the `iron-flex-reverse` module of the `iron-flex-layout-classes` file. + +**Example: mixins** + +```html + + +
    +
    Alpha
    +
    Beta
    +
    Gamma
    +
    Delta
    +
    +``` + +## Full bleed <body> + +It's common to want the entire `` to fit to the viewport. By themselves, Polymer's layout features on +`` don't achieve the result. You can make `` take up the entire viewport by adding the `fullbleed` class: + +```html + +
    Fitting a fullbleed body.
    + +``` + +This removes its margins and maximizes its height to the viewport. There is no equivalent mixin, but the same result can +be achieved in CSS very simply: +```css +body { + margin: 0; + height: 100vh; +} +``` + +This class is included in the `iron-positioning` module of the `iron-flex-layout-classes` file. + +Note that the `fullbleed` class **only works on the `` tag.** This is the only rule in the +stylesheet that is scoped to a particular tag. + + +## General purpose rules + +Polymer also includes other general purpose rules for basic positioning: + +Class | Mixin | Result +:-|:-|:- +`block`| `--layout-block` | Assigns `display: block` +`invisible` | `--layout-invisible` | Assigns `visibility: hidden` +`relative` | `--layout-relative` | Assigns `position: relative` +`fit` | `--layout-fit` | Sets `position: absolute` and sets `top:0;right:0;bottom:0;left:0;` (aka "trbl fitting"). + +The classes listed here are included in the `iron-positioning` module of the `iron-flex-layout-classes` file. + +> Note:When using `fit` layout, the element must have an ancestor with fixed size and `position: relative` layout +to fit inside of. + + +**Example: classes** + +```html +
    Before [A Span] After
    +
    Before [A Block Span] After
    +
    Before invisible span After invisible span
    +
    +
    Fit
    +
    +``` diff --git a/bower_components/iron-flex-layout/README.md b/bower_components/iron-flex-layout/README.md new file mode 100644 index 00000000..ca54ed33 --- /dev/null +++ b/bower_components/iron-flex-layout/README.md @@ -0,0 +1,61 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-flex-layout.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-flex-layout) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://beta.webcomponents.org/element/PolymerElements/iron-flex-layout) + +## <iron-flex-layout> + +The `` component provides simple ways to use +[CSS flexible box layout](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes), +also known as flexbox. This component provides two different ways to use flexbox: + +1. [Layout classes](https://github.com/PolymerElements/iron-flex-layout/tree/master/iron-flex-layout-classes.html). +The layout class stylesheet provides a simple set of class-based flexbox rules, that +let you specify layout properties directly in markup. You must include this file +in every element that needs to use them. + +Sample use: + + +```html +
    +
    cross axis start alignment
    +
    +``` + +1. [Custom CSS mixins](https://github.com/PolymerElements/iron-flex-layout/blob/master/iron-flex-layout.html). +The mixin stylesheet includes custom CSS mixins that can be applied inside a CSS rule using the `@apply` function. + +A complete [guide](https://elements.polymer-project.org/guides/flex-layout) to `` is available. + +## Changes in 2.0 +- removed the deprecated `/deep/` classes -- files removed: `classes/iron-flex-layout.html`, `classes/iron-shadow-flex-layout` + diff --git a/bower_components/iron-flex-layout/bower.json b/bower_components/iron-flex-layout/bower.json new file mode 100644 index 00000000..28c3bd3d --- /dev/null +++ b/bower_components/iron-flex-layout/bower.json @@ -0,0 +1,54 @@ +{ + "name": "iron-flex-layout", + "version": "2.0.3", + "description": "Provide flexbox-based layouts", + "keywords": [ + "web-components", + "polymer", + "layout" + ], + "main": "iron-flex-layout.html", + "private": true, + "license": "http://polymer.github.io/LICENSE.txt", + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-flex-layout.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "pages": { + "Flexbox layout guide": "GUIDE.md" + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-flex-layout/demo/index.html b/bower_components/iron-flex-layout/demo/index.html new file mode 100644 index 00000000..887ff3f9 --- /dev/null +++ b/bower_components/iron-flex-layout/demo/index.html @@ -0,0 +1,429 @@ + + + + + + + iron-flex-layout demo + + + + + + + + + + + + + + + +
    +

    Horizontal and vertical layout

    + + + + +

    Flexible children

    + + + + +

    Flexible children in vertical layouts

    + + + + +

    Flex ratios

    + + + + +

    Cross-axis stretch alignment (default)

    + + + + +

    Cross-axis center alignment

    + + + + +

    Cross-axis start alignment

    + + + + +

    Cross-axis end alignment

    + + + + +

    Justification, start justified

    + + + + +

    Justification, center justified

    + + + + +

    Justification, end justified

    + + + + +

    Justification, equal space between elements

    + + + + +

    Justification, equal space around each element

    + + + + +

    Self alignment

    + + + + +

    Wrapping

    + + + + +

    Reversed layouts

    + + + + +

    General purpose rules

    + + + +
    + + diff --git a/bower_components/iron-flex-layout/gen-tsd.json b/bower_components/iron-flex-layout/gen-tsd.json new file mode 100644 index 00000000..cc757dbf --- /dev/null +++ b/bower_components/iron-flex-layout/gen-tsd.json @@ -0,0 +1,5 @@ +{ + "excludeIdentifiers": [ + "iron-flex-layout" + ] +} diff --git a/bower_components/iron-flex-layout/index.html b/bower_components/iron-flex-layout/index.html new file mode 100644 index 00000000..7d3b0881 --- /dev/null +++ b/bower_components/iron-flex-layout/index.html @@ -0,0 +1,24 @@ + + + + + + iron-flex-layout + + + + + + + + + + diff --git a/bower_components/iron-flex-layout/iron-flex-layout-classes.d.ts b/bower_components/iron-flex-layout/iron-flex-layout-classes.d.ts new file mode 100644 index 00000000..139911b8 --- /dev/null +++ b/bower_components/iron-flex-layout/iron-flex-layout-classes.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-flex-layout-classes.html + */ + +/// + diff --git a/bower_components/iron-flex-layout/iron-flex-layout-classes.html b/bower_components/iron-flex-layout/iron-flex-layout-classes.html new file mode 100644 index 00000000..a4e84c1f --- /dev/null +++ b/bower_components/iron-flex-layout/iron-flex-layout-classes.html @@ -0,0 +1,436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-flex-layout/iron-flex-layout.d.ts b/bower_components/iron-flex-layout/iron-flex-layout.d.ts new file mode 100644 index 00000000..c7301adc --- /dev/null +++ b/bower_components/iron-flex-layout/iron-flex-layout.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-flex-layout.html + */ + +/// + diff --git a/bower_components/iron-flex-layout/iron-flex-layout.html b/bower_components/iron-flex-layout/iron-flex-layout.html new file mode 100644 index 00000000..99bc5535 --- /dev/null +++ b/bower_components/iron-flex-layout/iron-flex-layout.html @@ -0,0 +1,424 @@ + + + + + + + + + + + + + diff --git a/bower_components/iron-flex-layout/package-lock.json b/bower_components/iron-flex-layout/package-lock.json new file mode 100644 index 00000000..56139b2b --- /dev/null +++ b/bower_components/iron-flex-layout/package-lock.json @@ -0,0 +1,986 @@ +{ + "name": "@polymer/iron-flex-layout", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.1.1.tgz", + "integrity": "sha512-rUfH6USpiPYSHl2dC+/rGb3RYK8LPyqNhiuZCLv13F0fhYr01jdTogGuSphEoSLklm1gKRsDsrfZq7OvpzPYEg==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.1", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.10" + }, + "dependencies": { + "@types/node": { + "version": "6.0.97", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.97.tgz", + "integrity": "sha512-k3CDdCq8Uv8AZ7/bmGSSvlwbPDPhkkckSq8Y9ndXowv86m3k07PjG98SigpjVAY9EyHV9kiFldEV306xh4gkig==", + "dev": true + }, + "polymer-analyzer": { + "version": "3.0.0-pre.10", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.10.tgz", + "integrity": "sha1-9vCd15PdL0IomsAdoCb8q6ZfGYw=", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.97", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "2.3.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "2.2.3", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + } + } + } + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.0" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.0" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.0.tgz", + "integrity": "sha512-zkYho6/4wZyX6o9UQ8rd0ReEaiEYNNCqYFIAACe2Tf9DrYlgzWW27OigYHnnztnnZQwVRpwWmZKegFmDpinIsA==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.0" + } + }, + "@types/winston": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.7.tgz", + "integrity": "sha512-jNhbkxPtt9xbzvihfA0OavjJbpCIyTDSmwE03BVXgCKcz9lwNsq4cg2wsNkY4Av5eH35ttBArhYtVJa6CIrg2A==", + "dev": true, + "requires": { + "@types/node": "9.4.0" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.1.tgz", + "integrity": "sha512-gRJDcIjFSzMcmG/GrJlgL0wWoAxr11mVzCq32bjka0endupm9meLwvoJUKc4HDeFiEIB2X3GvNrhF5cKO4Bd4A==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-2.3.0.tgz", + "integrity": "sha1-+CBJdb0NrLvltYqKk//B/tD/zSo=", + "dev": true, + "requires": { + "@types/clone": "0.1.30", + "@types/node": "6.0.96", + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "2.2.3" + }, + "dependencies": { + "@types/node": { + "version": "6.0.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.96.tgz", + "integrity": "sha512-fsOOY6tMQ3jCB2wD51XFDmmpgm4wVKkJECdcVRqapbJEa7awJDcr+SaH8toz+4r4KW8YQ3M7ybXMoSDo1QGewA==", + "dev": true + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.7", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.96", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.96.tgz", + "integrity": "sha512-fsOOY6tMQ3jCB2wD51XFDmmpgm4wVKkJECdcVRqapbJEa7awJDcr+SaH8toz+4r4KW8YQ3M7ybXMoSDo1QGewA==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-flex-layout/package.json b/bower_components/iron-flex-layout/package.json new file mode 100644 index 00000000..5656aeb4 --- /dev/null +++ b/bower_components/iron-flex-layout/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-flex-layout", + "private": true, + "description": "Provide flexbox-based layouts", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-flex-layout.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.1.1", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-flex-layout/test/index.html b/bower_components/iron-flex-layout/test/index.html new file mode 100644 index 00000000..78d32da2 --- /dev/null +++ b/bower_components/iron-flex-layout/test/index.html @@ -0,0 +1,31 @@ + + + + + iron-flex-behavior tests + + + + + + + + + + + diff --git a/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html b/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html new file mode 100644 index 00000000..525718ec --- /dev/null +++ b/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html @@ -0,0 +1,422 @@ + + + + + iron-flex-layout-classes tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-flex-layout/test/iron-flex-layout.html b/bower_components/iron-flex-layout/test/iron-flex-layout.html new file mode 100644 index 00000000..f2977309 --- /dev/null +++ b/bower_components/iron-flex-layout/test/iron-flex-layout.html @@ -0,0 +1,444 @@ + + + + + iron-flex-layout tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-form-element-behavior/.bower.json b/bower_components/iron-form-element-behavior/.bower.json new file mode 100644 index 00000000..9587c307 --- /dev/null +++ b/bower_components/iron-form-element-behavior/.bower.json @@ -0,0 +1,59 @@ +{ + "name": "iron-form-element-behavior", + "version": "2.1.2", + "license": "http://polymer.github.io/LICENSE.txt", + "private": true, + "main": "iron-form-element-behavior.html", + "authors": [ + "The Polymer Authors" + ], + "description": "Enables a custom element to be included in an iron-form", + "keywords": [ + "web-components", + "polymer", + "form" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-form-element-behavior", + "_release": "2.1.2", + "_resolution": { + "type": "version", + "tag": "v2.1.2", + "commit": "601b8337c2728c8421c2a018c016d9ca97e0f385" + }, + "_source": "https://github.com/PolymerElements/iron-form-element-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-form-element-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-form-element-behavior/.github/CODEOWNERS b/bower_components/iron-form-element-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-form-element-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-form-element-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-form-element-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..36493f30 --- /dev/null +++ b/bower_components/iron-form-element-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-form-element-behavior/.gitignore b/bower_components/iron-form-element-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-form-element-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-form-element-behavior/.travis.yml b/bower_components/iron-form-element-behavior/.travis.yml new file mode 100644 index 00000000..334e2446 --- /dev/null +++ b/bower_components/iron-form-element-behavior/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + IJ2DKBWd4T446kn7yV/2tStL8tTZcmfguzymvE+U9p9JBJl6Qu+KwfzETjJPyiEhzwS8gqcrV8takloMto2dMLCyCc9RBzJt/AHlLC5vcZ0aJ06ArYkn98/lz4q9noDDpd1dqXbzC8ea4En/b+DCgf8iei7pFmoNjFo8+RGoSMN7GvmUIBEbZ0akQnZcvMNgbWrRQQ31Qkug492ybrmizBMlBoMSRVkMjKkuKQyOr/7CTEvmj62XuapM9VoE21qr6E0T1iXrBbT9ay5HPlitkfBXe+oV3tj3ONBp81+HhEiIkZua3xnGcs0YkT9qd/fipy/1hfPAj5bBco/IyYEjVYUuIrhdJEfzFlHBwNqlWtl5yuW9srHP5V4k7NiUWBESoQ2V4AH7ZDuxcsdhBT1N/2D0dksBP4UkfyBIYQaUOYSI0a4O6BpgTQRPh7yHZ88fG6B2/k59dlX1PuPFuiI7dECPMmaLVsUGH3PMkezHsD4BNdp89HzJVk0jTM8W5oP1/Lj8EEp1X48zHg7IZo+o0rOPtvjqrYtdhw9+BVujRKkLhXBDIh+bjQeX4WpeDPtAxAaOH7bAWxWa+w1h0DbOkHzB6cV3H8jzg/oJKwZyIgmrR9aVjeaW2IP3sYxbkGq2ZM/x9+mcRo+JV3TONStYRc6lEKpmOGQgUZbVMyU0S2E= + - secure: >- + KZmse/kaUHZKkjYYWssUihkjaWmhXFfJio6/TcyxlvzlRN+b+s8xkMx09F2mfCEzCuxbhMeYaOLYUP+x44mO/N5OKvRYqGKLBJASQ+LvsVe6ep972AfWtb2P2E6OK/b9vAdW0v52j1gTaj94KtUfjaWjxP78TTEG5slMMwadqBm5e7nW4vS+wV26sbNymnWB9NErLebJr0T+wwrXDyjXWkUTH8yPzlwFjPcfXZavQwFyM9E+k+HQVUOQ8b3oMxVnwc2aHRWLWRDu97k1S/hVk+c1j+qamOa16faJLTsG9lay7RRkeq/OQBvjdWtmsq95NkP27/uLlQrKKOY7nZZ331LlqYK/o1+i+nVjZqWAgMXun7OjTtZvU53dOFXPVroXNoIcAPhdVNxLNvlJLvTL1uoVybzjeDdiMrTpZc6FpSLRKOj9AGmnT4vy+A2MSxn3rwujvz2PlRvoXYxnN36QbONbF7Zr1Sv6i+53eN+/1xC78i7otJEsvJhKe6YAq9/7xyOBGhELhOYMIES2gy/Nbc+47pEWWgYQ/tvBO1RXuaRgKG2iwiWL83Phhgw3SAdYaAL5xk6lUTTsuCJZHmcDoD8bTDblBIjntWvtzT6Z1NPTiuUXszJXkLSwUjfNUeQtb4H9GnNWF0P4ze91RZippygyWfrDz7aQhf+NcbF/PE0= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-form-element-behavior/CONTRIBUTING.md b/bower_components/iron-form-element-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-form-element-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-form-element-behavior/README.md b/bower_components/iron-form-element-behavior/README.md new file mode 100644 index 00000000..14e1ebf7 --- /dev/null +++ b/bower_components/iron-form-element-behavior/README.md @@ -0,0 +1,14 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-form-element-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-form-element-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-form-element-behavior)_ + + +## Polymer.IronFormElementBehavior + +Polymer.IronFormElementBehavior enables a custom element to be included +in an `iron-form`. + +### Changes in 2.0 + +If your form element is used with Polymer 2.0, it doesn't need to implement `Polymer.IronFormElementBehavior` as `iron-form#2.0.0` won't rely on it. +The events `iron-form-element-register` and `iron-form-element-unregister` are not fired on Polymer 2.0. diff --git a/bower_components/iron-form-element-behavior/bower.json b/bower_components/iron-form-element-behavior/bower.json new file mode 100644 index 00000000..0870b00b --- /dev/null +++ b/bower_components/iron-form-element-behavior/bower.json @@ -0,0 +1,49 @@ +{ + "name": "iron-form-element-behavior", + "version": "2.1.2", + "license": "http://polymer.github.io/LICENSE.txt", + "private": true, + "main": "iron-form-element-behavior.html", + "authors": [ + "The Polymer Authors" + ], + "description": "Enables a custom element to be included in an iron-form", + "keywords": [ + "web-components", + "polymer", + "form" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-form-element-behavior/demo/index.html b/bower_components/iron-form-element-behavior/demo/index.html new file mode 100644 index 00000000..7688e826 --- /dev/null +++ b/bower_components/iron-form-element-behavior/demo/index.html @@ -0,0 +1,71 @@ + + + + + + iron-form-element-behavior demo + + + + + + + + + + + + + + +
    +
    +
    + Element with iron-form-element-behavior +
    + Element without iron-form-element-behavior +
    + Element with iron-form-element-behavior +
    + +

    Elements tracked by the form:

    + +
      +
    +
    +
    + + + + + + diff --git a/bower_components/iron-form-element-behavior/demo/simple-element.html b/bower_components/iron-form-element-behavior/demo/simple-element.html new file mode 100644 index 00000000..45027692 --- /dev/null +++ b/bower_components/iron-form-element-behavior/demo/simple-element.html @@ -0,0 +1,27 @@ + + + + + diff --git a/bower_components/iron-form-element-behavior/demo/simple-form.html b/bower_components/iron-form-element-behavior/demo/simple-form.html new file mode 100644 index 00000000..4dc5dc6b --- /dev/null +++ b/bower_components/iron-form-element-behavior/demo/simple-form.html @@ -0,0 +1,53 @@ + + + + diff --git a/bower_components/iron-form-element-behavior/index.html b/bower_components/iron-form-element-behavior/index.html new file mode 100644 index 00000000..8d748c05 --- /dev/null +++ b/bower_components/iron-form-element-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-form-element-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-form-element-behavior/iron-form-element-behavior.d.ts b/bower_components/iron-form-element-behavior/iron-form-element-behavior.d.ts new file mode 100644 index 00000000..da153011 --- /dev/null +++ b/bower_components/iron-form-element-behavior/iron-form-element-behavior.d.ts @@ -0,0 +1,54 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-form-element-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * Polymer.IronFormElementBehavior enables a custom element to be included + * in an `iron-form`. + * + * Events `iron-form-element-register` and `iron-form-element-unregister` are not fired on Polymer 2.0. + * + * + */ + interface IronFormElementBehavior { + + /** + * The name of this element. + */ + name: string|null|undefined; + + /** + * The value for this element. + */ + value: string|number|null|undefined; + + /** + * Set to true to mark the input as required. If used in a form, a + * custom element that uses this behavior should also use + * Polymer.IronValidatableBehavior and define a custom validation method. + * Otherwise, a `required` element will always be considered valid. + * It's also strongly recommended to provide a visual style for the element + * when its value is invalid. + */ + required: boolean|null|undefined; + + /** + * The form that the element is registered to. + */ + _parentForm: object|null|undefined; + attached(): void; + detached(): void; + } + + const IronFormElementBehavior: object; +} diff --git a/bower_components/iron-form-element-behavior/iron-form-element-behavior.html b/bower_components/iron-form-element-behavior/iron-form-element-behavior.html new file mode 100644 index 00000000..e36371c2 --- /dev/null +++ b/bower_components/iron-form-element-behavior/iron-form-element-behavior.html @@ -0,0 +1,91 @@ + + + + + diff --git a/bower_components/iron-form-element-behavior/package-lock.json b/bower_components/iron-form-element-behavior/package-lock.json new file mode 100644 index 00000000..fc399884 --- /dev/null +++ b/bower_components/iron-form-element-behavior/package-lock.json @@ -0,0 +1,983 @@ +{ + "name": "@polymer/iron-form-element-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.7" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", + "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "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.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.102", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.9.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.102", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", + "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.102", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.102", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", + "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-form-element-behavior/package.json b/bower_components/iron-form-element-behavior/package.json new file mode 100644 index 00000000..9fab6832 --- /dev/null +++ b/bower_components/iron-form-element-behavior/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-form-element-behavior", + "private": true, + "description": "Enables a custom element to be included in an iron-form", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-form-element-behavior/test/basic.html b/bower_components/iron-form-element-behavior/test/basic.html new file mode 100644 index 00000000..4cf9f547 --- /dev/null +++ b/bower_components/iron-form-element-behavior/test/basic.html @@ -0,0 +1,74 @@ + + + + + + iron-form-element-behavior + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-form-element-behavior/test/index.html b/bower_components/iron-form-element-behavior/test/index.html new file mode 100644 index 00000000..d76b736e --- /dev/null +++ b/bower_components/iron-form-element-behavior/test/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-form-element-behavior/test/simple-element.html b/bower_components/iron-form-element-behavior/test/simple-element.html new file mode 100644 index 00000000..b1aa3002 --- /dev/null +++ b/bower_components/iron-form-element-behavior/test/simple-element.html @@ -0,0 +1,23 @@ + + + + + diff --git a/bower_components/iron-form-element-behavior/test/simple-form.html b/bower_components/iron-form-element-behavior/test/simple-form.html new file mode 100644 index 00000000..7fa38d88 --- /dev/null +++ b/bower_components/iron-form-element-behavior/test/simple-form.html @@ -0,0 +1,19 @@ + + + + diff --git a/bower_components/iron-form/.bower.json b/bower_components/iron-form/.bower.json new file mode 100644 index 00000000..8f206c1f --- /dev/null +++ b/bower_components/iron-form/.bower.json @@ -0,0 +1,80 @@ +{ + "name": "iron-form", + "version": "2.4.0", + "description": "Wrapper around native form that submits native and custom elements", + "keywords": [ + "web-components", + "polymer", + "form" + ], + "authors": [ + "The Polymer Authors" + ], + "main": "iron-form.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-form.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-form", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-ajax": "PolymerElements/iron-ajax#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "paper-checkbox": "PolymerElements/paper-checkbox#1 - 2", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#1 - 2", + "paper-input": "PolymerElements/paper-input#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-listbox": "PolymerElements/paper-listbox#1 - 2", + "paper-spinner": "PolymerElements/paper-spinner#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-ajax": "PolymerElements/iron-ajax#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^1.0.0", + "paper-input": "PolymerElements/paper-input#^1.0.0", + "paper-item": "PolymerElements/paper-item#^1.0.0", + "paper-menu": "PolymerElements/paper-menu#^1.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-animations-js": "web-animations/web-animations-js#^2.2", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.4.0", + "_resolution": { + "type": "version", + "tag": "v2.4.0", + "commit": "90730d15a2ea673ad883503c75af7126433644f5" + }, + "_source": "https://github.com/PolymerElements/iron-form.git", + "_target": "^2.4.0", + "_originalSource": "PolymerElements/iron-form" +} \ No newline at end of file diff --git a/bower_components/iron-form/.github/CODEOWNERS b/bower_components/iron-form/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-form/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-form/.github/ISSUE_TEMPLATE.md b/bower_components/iron-form/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..35461cd1 --- /dev/null +++ b/bower_components/iron-form/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-form/.gitignore b/bower_components/iron-form/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-form/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-form/.travis.yml b/bower_components/iron-form/.travis.yml new file mode 100644 index 00000000..1c219fe1 --- /dev/null +++ b/bower_components/iron-form/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: 'false' +before_script: + - npm install -g polymer-cli + - polymer install --variants + - git checkout package-lock.json + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + QuidjG1cfGHZXuA9/R2OP/41Lxmxu5drwr7IZvDww36vdY/dLg8gbMh1jKsQyDBfHsDbqDn5BKQw42tgeKBAvzgkkIBQsfsbNKiGhQ1No3NqhHjc/YOcF+R9ZksZbyyNVHUcHAH2pG/pTlbwGp7310k7EPrRPj0TWydfXysKw2iXdYetDxy8UiBt4injVIX5GM+BcD9df+2+BMVrQMyY1OmMsOmYeMDiHx7sWvoOUIyDvqk4teuQU+Oz7e8VrQlDeIiTcbHMzgu8FNeEqEMPgnvP4cIgJrP382G/pK2XLIniWo7eBMKmSuQ4KoyLEIv6NzUoOYeo6Fmpk2cWCCdSOfPP+los4g35KSqbs11gF/KIqoc8amuys+8yyEB069EKUsQUgqDYEc0wjN+OO2+WioGTIXC4TBvopIpQmkdcK/SptLqMhAPeLel3c+mBRcSvsXLgQj80fflgePS0vmL6K+njyNbIhduYP7tXc+lBljLnQJMU1Bz/2VDd3+7YakuiRyeogrCsr/yRmhzmdhG+8tklAdmgJULA329rrXlDQcPDg5QXJKt4+WfcAKIRUr30kQu04jWv35+spnvoqCpLNBGxjMSTXpYtNbpTG5kF/X5XZKM2oAV78PBTJ+QC+/GA/bjX47ldG+8Qp2GsfcMlRNbbbEk6tvOxrC5NLEXy8S4= + - secure: >- + OXzgSxgdxCcsj+iiPQRq0lduCZ9EecRQFFZ4rAN18tS/JamSK+ymUdTv4GGWDrTGR1/RSal8o99vnnkXBUto4IPoN8/pti4+VVFkrrDJt2L3ZTB1QgJ+Gh2/UpNF+NQJhLrPkywYeudM5+VGlLsTvz+TucbgfHjX4v1uy7z7ER1/cpCyOYdaYMa0Y8XgvJkenRwmK1pM+x0jWzZV6edCA3fsoKPoNfqttMKnWjO6iEOkuAYu/OumlBQPFUi6ZcIZhYadyZyVp8TYO3FY4NVYSAYF6/dwBDcuRlut70TkTOUm+4sVVsMaQIPZC0atfNa8zoiX24ugIpZi47dLFpbS4Ue3KyS0fGvMtD7SYxrg8fMUXdGqdPrnb7ar54kYVBYz6Cht9Lv365xqpJDBNTUFulxvSw0wgaZv8zHxf5WF0A2LRLxcUG8CgQBAIkoWrxiCrBC1tUOUFT1eaMsFgK16vo4ZeTFSzOTHpIz/AjCz2Tqh3SaYyJG3niAsWK8Sfj90aXfNuqG0Dw5FbiIXJ71XswbhDe4VTgkTSLdqoAy3HZpdH4Ccq1FS5taS2OuwZy0yVxkWYEfcP7VXCnBcy2CNw8cJcxlmPzRoyjsnyFZdVEtQwJ9LaFZ2+jmy6WuU9YmetTSR3uH90dRabTJikQHQbE8I+SRW6avtKjR11pHeZZc= +node_js: '9' +addons: + firefox: latest + chrome: stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty +cache: + directories: + - node_modules diff --git a/bower_components/iron-form/CONTRIBUTING.md b/bower_components/iron-form/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-form/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-form/README.md b/bower_components/iron-form/README.md new file mode 100644 index 00000000..270cd20b --- /dev/null +++ b/bower_components/iron-form/README.md @@ -0,0 +1,77 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-form.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-form) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-form) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-form)_ + + +## <iron-form> +`` is a wrapper around the HTML `
    ` element, that can +validate and submit both custom and native HTML elements. + +It has two modes: if `allow-redirect` is true, then after the form submission you +will be redirected to the server response. Otherwise, if it is false, it will +use an `iron-ajax` element to submit the form contents to the server. + + Example: + +```html + + + + I like donuts
    + + +
    +``` + +By default, a native ` + * + * function submitForm() { + * document.getElementById('myForm').submit(); + * } + * + * If you are not using the `allow-redirect` mode, then you also have the option of + * customizing the request sent to the server. To do so, you can listen to the `iron-form-presubmit` + * event, and modify the form's [`iron-ajax`](https://elements.polymer-project.org/elements/iron-ajax) + * object. However, If you want to not use `iron-ajax` at all, you can cancel the + * event and do your own custom submission: + * + * Example of modifying the request, but still using the build-in form submission: + * + * form.addEventListener('iron-form-presubmit', function() { + * this.request.method = 'put'; + * this.request.params['extraParam'] = 'someValue'; + * }); + * + * Example of bypassing the build-in form submission: + * + * form.addEventListener('iron-form-presubmit', function(event) { + * event.preventDefault(); + * var firebase = new Firebase(form.getAttribute('action')); + * firebase.set(form.serializeForm()); + * }); + * + * Note that if you're dynamically creating this element, it's mandatory that you + * first create the contained `
    ` element and all its children, and only then + * attach it to the ``: + * + * var wrapper = document.createElement('iron-form'); + * var form = document.createElement('form'); + * var input = document.createElement('input'); + * form.appendChild(input); + * document.body.appendChild(wrapper); + * wrapper.appendChild(form); + */ +interface IronFormElement extends Polymer.Element { + + /** + * Set this to true if you don't want the form to be submitted through an + * ajax request, and you want the page to redirect to the action URL + * after the form has been submitted. + */ + allowRedirect: boolean|null|undefined; + + /** + * HTTP request headers to send. See PolymerElements/iron-ajax for + * more details. Only works when `allowRedirect` is false. + */ + headers: object|null|undefined; + + /** + * Set the `withCredentials` flag on the request. See + * PolymerElements/iron-ajax for more details. Only works when + * `allowRedirect` is false. + */ + withCredentials: boolean|null|undefined; + attached(): void; + detached(): void; + _init(): void; + + /** + * Saves the values of all form elements that will be used when resetting + * the form. Initially called asynchronously on attach. Any time you + * call this function, the previously saved values for a form element will + * be overwritten. + * + * This function is useful if you are dynamically adding elements to + * the form, or if your elements are asynchronously setting their values. + */ + saveResetValues(): void; + _saveInitialValues(overwriteValues?: boolean): void; + + /** + * Validates all the required elements (custom and native) in the form. + * + * @returns True if all the elements are valid. + */ + validate(): boolean; + + /** + * Submits the form. + */ + submit(event?: Event|null): void; + + /** + * Resets the form to the default values. + */ + reset(event?: Event|null): void; + + /** + * Serializes the form as will be used in submission. Note that `serialize` + * is a Polymer reserved keyword, so calling `someIronForm`.serialize()` + * will give you unexpected results. + * + * @returns An object containing name-value pairs for elements that + * would be submitted. + */ + serializeForm(): {[key: string]: any}; + _handleFormResponse(event: any): void; + _handleFormError(event: any): void; + _makeAjaxRequest(json: any): void; + _getValidatableElements(): any; + _getSubmittableElements(): any; + _serializeElementValues(element: any): any; + _serializeSelectValues(element: any): any; + _serializeInputValues(element: any): any; + _createHiddenElement(name: any, value: any): any; + _addSerializedElement(json: any, name: any, value: any): void; +} + +interface HTMLElementTagNameMap { + "iron-form": IronFormElement; +} diff --git a/bower_components/iron-form/iron-form.html b/bower_components/iron-form/iron-form.html new file mode 100644 index 00000000..2fced8b3 --- /dev/null +++ b/bower_components/iron-form/iron-form.html @@ -0,0 +1,636 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-form/package-lock.json b/bower_components/iron-form/package-lock.json new file mode 100644 index 00000000..341d6e51 --- /dev/null +++ b/bower_components/iron-form/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-form", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "^5.0.0", + "@types/glob": "^5.0.35", + "command-line-args": "^5.0.1", + "command-line-usage": "^5.0.2", + "doctrine": "^2.0.0", + "escodegen": "^1.9.0", + "fs-extra": "^5.0.0", + "glob": "^7.1.2", + "minimatch": "^3.0.4", + "polymer-analyzer": "=3.0.0-pre.14", + "vscode-uri": "^1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.3.tgz", + "integrity": "sha512-igaEysRgtg5tYJVIdQ1T2lJ3G6OmoY7g0YVWKHLFiVs4YUChd9IRSiLoHSLffwut+CpsHHBDj4vRxxNEMstctw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "find-replace": "^2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "^4.2.0" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "^3.0.1", + "globals": "^10.0.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "^4.0.30" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "^0.1.1", + "array-back": "^2.0.0", + "find-replace": "^2.0.1", + "lodash.camelcase": "^4.3.0", + "typical": "^2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "chalk": "^2.3.2", + "table-layout": "^0.4.3", + "typical": "^2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "^2.2.32", + "clone": "^2.1.0", + "parse5": "^4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.8" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "test-value": "^3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "^3.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "^3.0.2" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "^4.2.3", + "@types/winston": "^2.2.0", + "winston": "^2.2.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "^6.25.1", + "@types/babel-traverse": "^6.25.2", + "@types/babel-types": "^6.25.1", + "@types/babylon": "^6.16.2", + "@types/chai-subset": "^1.3.0", + "@types/chalk": "^0.4.30", + "@types/clone": "^0.1.30", + "@types/cssbeautify": "^0.3.1", + "@types/doctrine": "^0.0.1", + "@types/is-windows": "^0.2.0", + "@types/minimatch": "^3.0.1", + "@types/node": "^6.0.0", + "@types/parse5": "^2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "^6.26.0", + "babel-traverse": "^7.0.0-beta.3", + "babel-types": "^7.0.0-beta.3", + "babylon": "^7.0.0-beta.40", + "cancel-token": "^0.1.1", + "chalk": "^1.1.3", + "clone": "^2.0.0", + "cssbeautify": "^0.3.1", + "doctrine": "^2.0.2", + "dom5": "^3.0.0", + "indent": "0.0.2", + "is-windows": "^1.0.2", + "jsonschema": "^1.1.0", + "minimatch": "^3.0.4", + "parse5": "^4.0.0", + "path-is-inside": "^1.0.2", + "polymer-project-config": "^3.6.0", + "resolve": "^1.5.0", + "shady-css-parser": "^0.1.0", + "stable": "^0.1.6", + "strip-indent": "^2.0.0", + "vscode-uri": "^1.0.1", + "whatwg-url": "^6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "^6.0.41", + "jsonschema": "^1.1.1", + "minimatch-all": "^1.1.0", + "plylog": "^0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "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-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.5.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "^1.2.2", + "dom5": "^3.0.0", + "fast-glob": "^2.2.0", + "parse5": "^4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.0", + "webidl-conversions": "^4.0.1" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-form/package.json b/bower_components/iron-form/package.json new file mode 100644 index 00000000..a2620d84 --- /dev/null +++ b/bower_components/iron-form/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-form", + "private": true, + "description": "Wrapper around native form that submits native and custom elements", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-form.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-form/test/basic.html b/bower_components/iron-form/test/basic.html new file mode 100644 index 00000000..859b6c8c --- /dev/null +++ b/bower_components/iron-form/test/basic.html @@ -0,0 +1,1117 @@ + + + + + iron-form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-form/test/index.html b/bower_components/iron-form/test/index.html new file mode 100644 index 00000000..b6c7988e --- /dev/null +++ b/bower_components/iron-form/test/index.html @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/bower_components/iron-form/test/slotted.html b/bower_components/iron-form/test/slotted.html new file mode 100644 index 00000000..516369af --- /dev/null +++ b/bower_components/iron-form/test/slotted.html @@ -0,0 +1,288 @@ + + + + + iron-form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-form/wct.conf.json b/bower_components/iron-form/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/bower_components/iron-form/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/bower_components/iron-icon/.bower.json b/bower_components/iron-icon/.bower.json new file mode 100644 index 00000000..eb470b30 --- /dev/null +++ b/bower_components/iron-icon/.bower.json @@ -0,0 +1,69 @@ +{ + "name": "iron-icon", + "private": true, + "version": "2.1.0", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "An element that supports displaying an icon", + "main": "iron-icon.html", + "author": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "icon" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-icon.git" + }, + "ignore": [], + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", + "iron-iconset": "PolymerElements/iron-iconset#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", + "iron-meta": "polymerelements/iron-meta#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", + "iron-iconset": "polymerelements/iron-iconset#^1.0.0", + "iron-icons": "polymerelements/iron-icons#^1.0.0", + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-icon", + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "c592bd3f0b442e3e4c1fc574f08545d0f9810d15" + }, + "_source": "https://github.com/PolymerElements/iron-icon.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-icon" +} \ No newline at end of file diff --git a/bower_components/iron-icon/.github/CODEOWNERS b/bower_components/iron-icon/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-icon/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md b/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..61da83fb --- /dev/null +++ b/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-icon/.gitignore b/bower_components/iron-icon/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-icon/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-icon/.travis.yml b/bower_components/iron-icon/.travis.yml new file mode 100644 index 00000000..d47c0333 --- /dev/null +++ b/bower_components/iron-icon/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + TTp7q3OKEpaFqnqbYczhMd8iXTa1Ya0jOQVq1OhljpJogLWb78qvHLHgnxgMWkw+/KDyE5KHW1CXhYUQa7C9QF2Zn7uoN27+7+4q7HuK3pTuUtqdfstLVuLHQrfK6VqUT4XjSpeMzNX/HxuD3EMBH0bMBR4CIr76sLJOuIL/XF8= + - secure: >- + damHvQXygRYIJG/8Vmqh7U4zxoi5224JIZiZVQL6I5z//s5zqHq6AqwDyfOoc0zWndJCwE8NvOzKD/lmVYXIsPcY95kkZS45Dbye0krYWUzKnv42rDi/7olXcg647iAEDVhW3BRHmA+opzQtKUpAkXl97DtPVkszLL1ReyNyv3A= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-icon/CONTRIBUTING.md b/bower_components/iron-icon/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-icon/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-icon/README.md b/bower_components/iron-icon/README.md new file mode 100644 index 00000000..c2f956f4 --- /dev/null +++ b/bower_components/iron-icon/README.md @@ -0,0 +1,22 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-icon.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-icon) + +## <iron-icon> + +The `iron-icon` element displays an icon. By default an icon renders as a 24px square. + + +```html + + +``` diff --git a/bower_components/iron-icon/bower.json b/bower_components/iron-icon/bower.json new file mode 100644 index 00000000..98243f5e --- /dev/null +++ b/bower_components/iron-icon/bower.json @@ -0,0 +1,59 @@ +{ + "name": "iron-icon", + "private": true, + "version": "2.0.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "An element that supports displaying an icon", + "main": "iron-icon.html", + "author": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "icon" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-icon.git" + }, + "ignore": [], + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", + "iron-iconset": "PolymerElements/iron-iconset#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", + "iron-meta": "polymerelements/iron-meta#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", + "iron-iconset": "polymerelements/iron-iconset#^1.0.0", + "iron-icons": "polymerelements/iron-icons#^1.0.0", + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-icon/demo/async.html b/bower_components/iron-icon/demo/async.html new file mode 100644 index 00000000..0e7bffc0 --- /dev/null +++ b/bower_components/iron-icon/demo/async.html @@ -0,0 +1,64 @@ + + + + + iron-icon demo + + + + + + + + + +
    +

    + This demo is for an <iron-icon> with an asynchronously loaded + iconset. +

    + +
    Waiting to load iconset...
    + +
    + + + +

    <iron-icon icon="example:location">

    + + +
    +
    + + + diff --git a/bower_components/iron-icon/demo/index.html b/bower_components/iron-icon/demo/index.html new file mode 100644 index 00000000..36f292ec --- /dev/null +++ b/bower_components/iron-icon/demo/index.html @@ -0,0 +1,50 @@ + + + + + iron-icon demo + + + + + + + + + + + +
    +

    + This demo is for a single <iron-icon>. If you're looking for the + whole set of available icons, check out the + <iron-icons> + demo. +

    + +

    iron-icon using a iron-iconset as its icon source.

    + + + + +

    iron-icon using an image url as its icon source.

    + + + +
    + + diff --git a/bower_components/iron-icon/demo/location.png b/bower_components/iron-icon/demo/location.png new file mode 100644 index 00000000..9bb74236 Binary files /dev/null and b/bower_components/iron-icon/demo/location.png differ diff --git a/bower_components/iron-icon/hero.svg b/bower_components/iron-icon/hero.svg new file mode 100755 index 00000000..f0f58536 --- /dev/null +++ b/bower_components/iron-icon/hero.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icon/index.html b/bower_components/iron-icon/index.html new file mode 100644 index 00000000..487bb5c3 --- /dev/null +++ b/bower_components/iron-icon/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icon/iron-icon.d.ts b/bower_components/iron-icon/iron-icon.d.ts new file mode 100644 index 00000000..f326c64a --- /dev/null +++ b/bower_components/iron-icon/iron-icon.d.ts @@ -0,0 +1,107 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-icon.html + */ + +/// +/// +/// + +/** + * The `iron-icon` element displays an icon. By default an icon renders as a 24px square. + * + * Example using src: + * + * + * + * Example setting size to 32px x 32px: + * + * + * + * + * + * The iron elements include several sets of icons. + * To use the default set of icons, import `iron-icons.html` and use the `icon` attribute to specify an icon: + * + * + * + * + * + * To use a different built-in set of icons, import the specific `iron-icons/-icons.html`, and + * specify the icon as `:`. For example, to use a communication icon, you would + * use: + * + * + * + * + * + * You can also create custom icon sets of bitmap or SVG icons. + * + * Example of using an icon named `cherry` from a custom iconset with the ID `fruit`: + * + * + * + * See [iron-iconset](iron-iconset) and [iron-iconset-svg](iron-iconset-svg) for more information about + * how to create a custom iconset. + * + * See the [iron-icons demo](iron-icons?view=demo:demo/index.html) to see the icons available + * in the various iconsets. + * + * To load a subset of icons from one of the default `iron-icons` sets, you can + * use the [poly-icon](https://poly-icon.appspot.com/) tool. It allows you + * to select individual icons, and creates an iconset from them that you can + * use directly in your elements. + * + * ### Styling + * + * The following custom properties are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--iron-icon` | Mixin applied to the icon | {} + * `--iron-icon-width` | Width of the icon | `24px` + * `--iron-icon-height` | Height of the icon | `24px` + * `--iron-icon-fill-color` | Fill color of the svg icon | `currentcolor` + * `--iron-icon-stroke-color` | Stroke color of the svg icon | none + */ +interface IronIconElement extends Polymer.Element { + + /** + * The name of the icon to use. The name should be of the form: + * `iconset_name:icon_name`. + */ + icon: string|null|undefined; + + /** + * The name of the theme to used, if one is specified by the + * iconset. + */ + theme: string|null|undefined; + + /** + * If using iron-icon without an iconset, you can set the src to be + * the URL of an individual icon image file. Note that this will take + * precedence over a given icon attribute. + */ + src: string|null|undefined; + _meta: Polymer.IronMeta; + _DEFAULT_ICONSET: string; + _iconChanged(icon: any): void; + _srcChanged(src: any): void; + _usesIconset(): any; + _updateIcon(): void; +} + +interface HTMLElementTagNameMap { + "iron-icon": IronIconElement; +} diff --git a/bower_components/iron-icon/iron-icon.html b/bower_components/iron-icon/iron-icon.html new file mode 100644 index 00000000..71378a77 --- /dev/null +++ b/bower_components/iron-icon/iron-icon.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + diff --git a/bower_components/iron-icon/package-lock.json b/bower_components/iron-icon/package-lock.json new file mode 100644 index 00000000..8e8e4f36 --- /dev/null +++ b/bower_components/iron-icon/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-icon", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-icon/package.json b/bower_components/iron-icon/package.json new file mode 100644 index 00000000..fa9ba549 --- /dev/null +++ b/bower_components/iron-icon/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-icon", + "private": true, + "description": "An element that supports displaying an icon", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-icon.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-icon/test/index.html b/bower_components/iron-icon/test/index.html new file mode 100644 index 00000000..41143268 --- /dev/null +++ b/bower_components/iron-icon/test/index.html @@ -0,0 +1,27 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-icon/test/iron-icon.html b/bower_components/iron-icon/test/iron-icon.html new file mode 100644 index 00000000..023fa6f2 --- /dev/null +++ b/bower_components/iron-icon/test/iron-icon.html @@ -0,0 +1,245 @@ + + + + + + + iron-icon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/.bower.json b/bower_components/iron-icons/.bower.json new file mode 100644 index 00000000..18e0418c --- /dev/null +++ b/bower_components/iron-icons/.bower.json @@ -0,0 +1,86 @@ +{ + "name": "iron-icons", + "version": "2.1.1", + "description": "A set of icons for use with iron-icon", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "icon" + ], + "main": "iron-icons.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-icons" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-icons", + "dependencies": { + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-iconset-svg": "PolymerElements/iron-iconset-svg#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "web-component-tester": "^6.0.0" + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-icon": "polymerelements/iron-icon#^1.0.0", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.2", + "iron-component-page": "polymerelements/iron-component-page#1.0.0", + "iron-meta": "polymerelements/iron-meta#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + }, + "polymer-1.x_iron-meta-2.x": { + "dependencies": { + "iron-icon": "polymerelements/iron-icon#^1.0.0", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.2", + "iron-component-page": "polymerelements/iron-component-page#1.0.0", + "iron-meta": "polymerelements/iron-meta#^2.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "iron-meta": "^2.0.0" + } + } + }, + "ignore": [ + "util", + "update-icons.sh" + ], + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "bc3d1a82b24449732cf3cb3d663748a9f5636d2d" + }, + "_source": "https://github.com/PolymerElements/iron-icons.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-icons" +} \ No newline at end of file diff --git a/bower_components/iron-icons/.github/CODEOWNERS b/bower_components/iron-icons/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-icons/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md b/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..95ef5d37 --- /dev/null +++ b/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-icons/.gitignore b/bower_components/iron-icons/.gitignore new file mode 100644 index 00000000..1a78003a --- /dev/null +++ b/bower_components/iron-icons/.gitignore @@ -0,0 +1,5 @@ +util/node_modules +material-design-icons +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-icons/.travis.yml b/bower_components/iron-icons/.travis.yml new file mode 100644 index 00000000..b9a33174 --- /dev/null +++ b/bower_components/iron-icons/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + L3XJmmXJlYZYyvlKoZ25HpEC1FcTtWejNk2xRQKAH4cg8+oNMjE80OxkaIVHtZlatpLdIIYk79p+9OtGiskXZ1QsAjHtrxWE5YRSSz3nL/XyZqUu7tjiNtrih6PiEvocmwMCCdRGMSXwVl1YoUUYM0DWxHdykd0EMXYYkYe+yQo= + - secure: >- + PSLkHUoiTj6UxN+7KtZG2miLmeuDuGN4c+ksviIP4/4lh5x7xic7CIeMmf2HLd18MR8CwCHjfMrIrxYF/IusILn6fdQ8rdBw+XhEF7xP+8UqqgF6YjGHs/xPDYYiGtisEc2OOg+vzqXIMhmKTg2vVlhuNq16eggGsRDcsEhEong= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-icons/CONTRIBUTING.md b/bower_components/iron-icons/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-icons/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-icons/README.md b/bower_components/iron-icons/README.md new file mode 100644 index 00000000..6377bcf6 --- /dev/null +++ b/bower_components/iron-icons/README.md @@ -0,0 +1,33 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-icons.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-icons) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-icons)_ + + +## <iron-icons> + +`iron-icons` is a utility import that includes the definition for the `iron-icon` element, `iron-iconset-svg` element, as well as an import for the default icon set. + +The `iron-icons` directory also includes imports for additional icon sets that can be loaded into your project. + +Example loading icon set: + +```html + +``` + +To use an icon from one of these sets, first prefix your `iron-icon` with the icon set name, followed by a colon, ":", and then the icon id. + +Example using the directions-bus icon from the maps icon set: + +```html + +``` + +To load a subset of icons from one of the default `iron-icons` sets, you can +use the [poly-icon](https://poly-icon.appspot.com/) tool. It allows you +to select individual icons, and creates an iconset from them that you can +use directly in your elements. + +See [iron-icon](https://github.com/PolymerElements/iron-icon) for more information about working with icons. + +See [iron-iconset](https://github.com/PolymerElements/iron-iconset) and [iron-iconset-svg](https://github.com/PolymerElements/iron-iconset-svg) for more information about how to create a custom iconset. diff --git a/bower_components/iron-icons/av-icons.d.ts b/bower_components/iron-icons/av-icons.d.ts new file mode 100644 index 00000000..5d185519 --- /dev/null +++ b/bower_components/iron-icons/av-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * av-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/av-icons.html b/bower_components/iron-icons/av-icons.html new file mode 100644 index 00000000..764d6229 --- /dev/null +++ b/bower_components/iron-icons/av-icons.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/bower.json b/bower_components/iron-icons/bower.json new file mode 100644 index 00000000..0d71899f --- /dev/null +++ b/bower_components/iron-icons/bower.json @@ -0,0 +1,77 @@ +{ + "name": "iron-icons", + "version": "2.1.1", + "description": "A set of icons for use with iron-icon", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "icon" + ], + "main": "iron-icons.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-icons" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-icons", + "dependencies": { + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-iconset-svg": "PolymerElements/iron-iconset-svg#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "web-component-tester": "^6.0.0" + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-icon": "polymerelements/iron-icon#^1.0.0", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.2", + "iron-component-page": "polymerelements/iron-component-page#1.0.0", + "iron-meta": "polymerelements/iron-meta#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + }, + "polymer-1.x_iron-meta-2.x": { + "dependencies": { + "iron-icon": "polymerelements/iron-icon#^1.0.0", + "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.2", + "iron-component-page": "polymerelements/iron-component-page#1.0.0", + "iron-meta": "polymerelements/iron-meta#^2.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7", + "iron-meta": "^2.0.0" + } + } + }, + "ignore": [ + "util", + "update-icons.sh" + ] +} diff --git a/bower_components/iron-icons/communication-icons.d.ts b/bower_components/iron-icons/communication-icons.d.ts new file mode 100644 index 00000000..f8a52924 --- /dev/null +++ b/bower_components/iron-icons/communication-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * communication-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/communication-icons.html b/bower_components/iron-icons/communication-icons.html new file mode 100644 index 00000000..a9e1839a --- /dev/null +++ b/bower_components/iron-icons/communication-icons.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/demo/index.html b/bower_components/iron-icons/demo/index.html new file mode 100644 index 00000000..be1a56f5 --- /dev/null +++ b/bower_components/iron-icons/demo/index.html @@ -0,0 +1,119 @@ + + + + + iron-icons demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/device-icons.d.ts b/bower_components/iron-icons/device-icons.d.ts new file mode 100644 index 00000000..4a676ad7 --- /dev/null +++ b/bower_components/iron-icons/device-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * device-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/device-icons.html b/bower_components/iron-icons/device-icons.html new file mode 100644 index 00000000..190f8962 --- /dev/null +++ b/bower_components/iron-icons/device-icons.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/editor-icons.d.ts b/bower_components/iron-icons/editor-icons.d.ts new file mode 100644 index 00000000..6ecc0bc5 --- /dev/null +++ b/bower_components/iron-icons/editor-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * editor-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/editor-icons.html b/bower_components/iron-icons/editor-icons.html new file mode 100644 index 00000000..bc7084db --- /dev/null +++ b/bower_components/iron-icons/editor-icons.html @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/gen-tsd.json b/bower_components/iron-icons/gen-tsd.json new file mode 100644 index 00000000..2f5920a3 --- /dev/null +++ b/bower_components/iron-icons/gen-tsd.json @@ -0,0 +1,8 @@ +{ + "exclude": [ + "index.html", + "test/**", + "demo/**", + "util/**" + ] +} diff --git a/bower_components/iron-icons/hardware-icons.d.ts b/bower_components/iron-icons/hardware-icons.d.ts new file mode 100644 index 00000000..1ffcbe70 --- /dev/null +++ b/bower_components/iron-icons/hardware-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * hardware-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/hardware-icons.html b/bower_components/iron-icons/hardware-icons.html new file mode 100644 index 00000000..3268e5ad --- /dev/null +++ b/bower_components/iron-icons/hardware-icons.html @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/hero.svg b/bower_components/iron-icons/hero.svg new file mode 100755 index 00000000..167321c9 --- /dev/null +++ b/bower_components/iron-icons/hero.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/image-icons.d.ts b/bower_components/iron-icons/image-icons.d.ts new file mode 100644 index 00000000..2d14c763 --- /dev/null +++ b/bower_components/iron-icons/image-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * image-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/image-icons.html b/bower_components/iron-icons/image-icons.html new file mode 100644 index 00000000..bb1a4da3 --- /dev/null +++ b/bower_components/iron-icons/image-icons.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/index.html b/bower_components/iron-icons/index.html new file mode 100644 index 00000000..fa5b89bb --- /dev/null +++ b/bower_components/iron-icons/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/iron-icons.d.ts b/bower_components/iron-icons/iron-icons.d.ts new file mode 100644 index 00000000..4f327505 --- /dev/null +++ b/bower_components/iron-icons/iron-icons.d.ts @@ -0,0 +1,43 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-icons.html + */ + +/// +/// + +/** + * `iron-icons` is a utility import that includes the definition for the `iron-icon` element, `iron-iconset-svg` element, as well as an import for the default icon set. + * + * The `iron-icons` directory also includes imports for additional icon sets that can be loaded into your project. + * + * Example loading icon set: + * + * + * + * To use an icon from one of these sets, first prefix your `iron-icon` with the icon set name, followed by a colon, ":", and then the icon id. + * + * Example using the directions-bus icon from the maps icon set: + * + * + * + * To load a subset of icons from one of the default `iron-icons` sets, you can + * use the [poly-icon](https://poly-icon.appspot.com/) tool. It allows you + * to select individual icons, and creates an iconset from them that you can + * use directly in your elements. + * + * See [iron-icon](#iron-icon) for more information about working with icons. + * + * See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for more information about how to create a custom iconset. + */ +interface IronIconsElement extends Polymer.Element { +} + +interface HTMLElementTagNameMap { + "iron-icons": IronIconsElement; +} diff --git a/bower_components/iron-icons/iron-icons.html b/bower_components/iron-icons/iron-icons.html new file mode 100644 index 00000000..739131cc --- /dev/null +++ b/bower_components/iron-icons/iron-icons.html @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/maps-icons.d.ts b/bower_components/iron-icons/maps-icons.d.ts new file mode 100644 index 00000000..7cd6cf09 --- /dev/null +++ b/bower_components/iron-icons/maps-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * maps-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/maps-icons.html b/bower_components/iron-icons/maps-icons.html new file mode 100644 index 00000000..d6ad092f --- /dev/null +++ b/bower_components/iron-icons/maps-icons.html @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/notification-icons.d.ts b/bower_components/iron-icons/notification-icons.d.ts new file mode 100644 index 00000000..2a380db1 --- /dev/null +++ b/bower_components/iron-icons/notification-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * notification-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/notification-icons.html b/bower_components/iron-icons/notification-icons.html new file mode 100644 index 00000000..272b95b0 --- /dev/null +++ b/bower_components/iron-icons/notification-icons.html @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/package-lock.json b/bower_components/iron-icons/package-lock.json new file mode 100644 index 00000000..b66123d6 --- /dev/null +++ b/bower_components/iron-icons/package-lock.json @@ -0,0 +1,1196 @@ +{ + "name": "@polymer/iron-icons", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.1.tgz", + "integrity": "sha512-N0rNp+F8Cp0iQ40i3Lx3onWnRXMnfMosR9WFE+IHMF4k5Fv2toRYz77EZMEPPZCz1tzFmCUelHxvxpdssT9oCw==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.2", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", + "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.3", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.40", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.40.tgz", + "integrity": "sha512-AVxF2EcxvGD5hhOuLTOLAXBb0VhwWpEX0HyHdAI2zU+AAP4qEwtQj8voz1JR3uclGai0rfcE+dCTHnNMOnimFg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-hICrJJ5zUI7hnEBBluE2169CG3Xnn4D5HPeLkMjbiOyneSLTUX5Wz1d4FSi3xALUtzulIBStSt0S2tLXs8eVrg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.102", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.40", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.9.0", + "resolve": "1.5.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.102", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", + "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.102", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.102", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", + "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-icons/package.json b/bower_components/iron-icons/package.json new file mode 100644 index 00000000..e6360ac2 --- /dev/null +++ b/bower_components/iron-icons/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-icons", + "private": true, + "description": "A set of icons for use with iron-icon", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-icons" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.1", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-icons/places-icons.d.ts b/bower_components/iron-icons/places-icons.d.ts new file mode 100644 index 00000000..6b03265d --- /dev/null +++ b/bower_components/iron-icons/places-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * places-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/places-icons.html b/bower_components/iron-icons/places-icons.html new file mode 100644 index 00000000..fa4827bf --- /dev/null +++ b/bower_components/iron-icons/places-icons.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/social-icons.d.ts b/bower_components/iron-icons/social-icons.d.ts new file mode 100644 index 00000000..c7cbfe0f --- /dev/null +++ b/bower_components/iron-icons/social-icons.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * social-icons.html + */ + +/// +/// + diff --git a/bower_components/iron-icons/social-icons.html b/bower_components/iron-icons/social-icons.html new file mode 100644 index 00000000..a0424735 --- /dev/null +++ b/bower_components/iron-icons/social-icons.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-icons/test/index.html b/bower_components/iron-icons/test/index.html new file mode 100644 index 00000000..d1a1d048 --- /dev/null +++ b/bower_components/iron-icons/test/index.html @@ -0,0 +1,25 @@ + + + + Tests + + + + + + + + diff --git a/bower_components/iron-icons/test/iron-icons.html b/bower_components/iron-icons/test/iron-icons.html new file mode 100644 index 00000000..c4dbcaaa --- /dev/null +++ b/bower_components/iron-icons/test/iron-icons.html @@ -0,0 +1,84 @@ + + + + + + + iron-icons + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-iconset-svg/.bower.json b/bower_components/iron-iconset-svg/.bower.json new file mode 100644 index 00000000..5b09b1f6 --- /dev/null +++ b/bower_components/iron-iconset-svg/.bower.json @@ -0,0 +1,65 @@ +{ + "name": "iron-iconset-svg", + "description": "Manages a set of svg icons", + "version": "2.2.1", + "keywords": [ + "web-components", + "polymer", + "icon" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-iconset-svg.git" + }, + "main": "iron-iconset-svg.html", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-meta": "PolymerElements/iron-meta#1 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-meta": "polymerelements/iron-meta#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icon": "polymerelements/iron-icon#^1.0.0", + "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-iconset-svg", + "_release": "2.2.1", + "_resolution": { + "type": "version", + "tag": "v2.2.1", + "commit": "65b04ec3aaeb46efa11be109aa41ea0c6d327a32" + }, + "_source": "https://github.com/PolymerElements/iron-iconset-svg.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-iconset-svg" +} \ No newline at end of file diff --git a/bower_components/iron-iconset-svg/.github/CODEOWNERS b/bower_components/iron-iconset-svg/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-iconset-svg/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md b/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..9f7691f5 --- /dev/null +++ b/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-iconset-svg/.gitignore b/bower_components/iron-iconset-svg/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-iconset-svg/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-iconset-svg/.travis.yml b/bower_components/iron-iconset-svg/.travis.yml new file mode 100644 index 00000000..5f6187be --- /dev/null +++ b/bower_components/iron-iconset-svg/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + FVt0rYGSWqJW3i57y9CQHuDaa97UDwZuGc5ts+TDpbuR3DVP8LxB9MT1ApA2bqhg101hPzhWJWIK3Siotkb7eAlsiWgVhdNr8t5eZBPOOnjLiU6PNCF6ZGCZRJHQ6q4xQ2DycGug8OfwMw63yewLEYmVBppeAlStnPUfDWURlJ8= + - secure: >- + X7cWxU13zLWoahM/BNBPSvgnI396zMmLzVHDHX6zAQL7gFL+PS4Dz6WjooO3Jx79ks2E8REUzWB8IFY3FohVAncXA///PAaqNLX0k2et4aOTOs5tcsCWL4nj8tKA6vjZIZ61rCjWTyNRR+o2QPsY9QQgi3Y+6bzLguWoPuycRbE= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-iconset-svg/CONTRIBUTING.md b/bower_components/iron-iconset-svg/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-iconset-svg/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-iconset-svg/README.md b/bower_components/iron-iconset-svg/README.md new file mode 100644 index 00000000..bf8c40a5 --- /dev/null +++ b/bower_components/iron-iconset-svg/README.md @@ -0,0 +1,40 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-iconset-svg.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-iconset-svg) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-iconset-svg)_ + + +## <iron-iconset-svg> + +The `iron-iconset-svg` element allows users to define their own icon sets +that contain svg icons. The svg icon elements should be children of the +`iron-iconset-svg` element. Multiple icons should be given distinct id's. + +Using svg elements to create icons has a few advantages over traditional +bitmap graphics like jpg or png. Icons that use svg are vector based so +they are resolution independent and should look good on any device. They +are stylable via css. Icons can be themed, colorized, and even animated. + +Example: + +```html + + + + + + + + + + +``` + +This will automatically register the icon set "my-svg-icons" to the iconset +database. To use these icons from within another element, make a +`iron-iconset` element and call the `byId` method +to retrieve a given iconset. To apply a particular icon inside an +element use the `applyIcon` method. For example: + +```javascript +iconset.applyIcon(iconNode, 'car'); +``` diff --git a/bower_components/iron-iconset-svg/bower.json b/bower_components/iron-iconset-svg/bower.json new file mode 100644 index 00000000..fb61b8ea --- /dev/null +++ b/bower_components/iron-iconset-svg/bower.json @@ -0,0 +1,55 @@ +{ + "name": "iron-iconset-svg", + "description": "Manages a set of svg icons", + "version": "2.2.1", + "keywords": [ + "web-components", + "polymer", + "icon" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-iconset-svg.git" + }, + "main": "iron-iconset-svg.html", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-meta": "PolymerElements/iron-meta#1 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-meta": "polymerelements/iron-meta#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icon": "polymerelements/iron-icon#^1.0.0", + "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-iconset-svg/demo/index.html b/bower_components/iron-iconset-svg/demo/index.html new file mode 100644 index 00000000..4ae9289a --- /dev/null +++ b/bower_components/iron-iconset-svg/demo/index.html @@ -0,0 +1,83 @@ + + + + + + iron-iconset-svg + + + + + + + + + + + + + +
    +

    + Import a document with an <iron-iconset-svg> to use the + icons it contains with <iron-icon> elements in your page. +

    + + + + +

    + Use an inline <iron-iconset-svg> if you need to both + define and use your icons in the same document. +

    + + + +
    + + diff --git a/bower_components/iron-iconset-svg/demo/svg-sample-icons.html b/bower_components/iron-iconset-svg/demo/svg-sample-icons.html new file mode 100644 index 00000000..3dd1d525 --- /dev/null +++ b/bower_components/iron-iconset-svg/demo/svg-sample-icons.html @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-iconset-svg/index.html b/bower_components/iron-iconset-svg/index.html new file mode 100644 index 00000000..487bb5c3 --- /dev/null +++ b/bower_components/iron-iconset-svg/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-iconset-svg/iron-iconset-svg.d.ts b/bower_components/iron-iconset-svg/iron-iconset-svg.d.ts new file mode 100644 index 00000000..e2ed09b2 --- /dev/null +++ b/bower_components/iron-iconset-svg/iron-iconset-svg.d.ts @@ -0,0 +1,142 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-iconset-svg.html + */ + +/// +/// + +/** + * The `iron-iconset-svg` element allows users to define their own icon sets + * that contain svg icons. The svg icon elements should be children of the + * `iron-iconset-svg` element. Multiple icons should be given distinct id's. + * + * Using svg elements to create icons has a few advantages over traditional + * bitmap graphics like jpg or png. Icons that use svg are vector based so + * they are resolution independent and should look good on any device. They + * are stylable via css. Icons can be themed, colorized, and even animated. + * + * Example: + * + * + * + * + * + * + * + * + * + * + * + * + * This will automatically register the icon set "my-svg-icons" to the iconset + * database. To use these icons from within another element, make a + * `iron-iconset` element and call the `byId` method + * to retrieve a given iconset. To apply a particular icon inside an + * element use the `applyIcon` method. For example: + * + * iconset.applyIcon(iconNode, 'car'); + */ +interface IronIconsetSvgElement extends Polymer.Element { + + /** + * The name of the iconset. + */ + name: string|null|undefined; + + /** + * The size of an individual icon. Note that icons must be square. + */ + size: number|null|undefined; + + /** + * Set to true to enable mirroring of icons where specified when they are + * stamped. Icons that should be mirrored should be decorated with a + * `mirror-in-rtl` attribute. + * + * NOTE: For performance reasons, direction will be resolved once per + * document per iconset, so moving icons in and out of RTL subtrees will + * not cause their mirrored state to change. + */ + rtlMirroring: boolean|null|undefined; + + /** + * Set to true to measure RTL based on the dir attribute on the body or + * html elements (measured on document.body or document.documentElement as + * available). + */ + useGlobalRtlAttribute: boolean|null|undefined; + created(): void; + attached(): void; + + /** + * Construct an array of all icon names in this iconset. + * + * @returns Array of icon names. + */ + getIconNames(): any[]; + + /** + * Applies an icon to the given element. + * + * An svg icon is prepended to the element's shadowRoot if it exists, + * otherwise to the element itself. + * + * If RTL mirroring is enabled, and the icon is marked to be mirrored in + * RTL, the element will be tested (once and only once ever for each + * iconset) to determine the direction of the subtree the element is in. + * This direction will apply to all future icon applications, although only + * icons marked to be mirrored will be affected. + * + * @param element Element to which the icon is applied. + * @param iconName Name of the icon to apply. + * @returns The svg element which renders the icon. + */ + applyIcon(element: Element|null, iconName: string): Element|null; + + /** + * Remove an icon from the given element by undoing the changes effected + * by `applyIcon`. + * + * @param element The element from which the icon is removed. + */ + removeIcon(element: Element|null): void; + + /** + * Measures and memoizes the direction of the element. Note that this + * measurement is only done once and the result is memoized for future + * invocations. + */ + _targetIsRTL(target: any): any; + + /** + * When name is changed, register iconset metadata + */ + _nameChanged(): void; + + /** + * Create a map of child SVG elements by id. + * + * @returns Map of id's to SVG elements. + */ + _createIconMap(): object; + + /** + * Produce installable clone of the SVG element matching `id` in this + * iconset, or `undefined` if there is no matching element. + * + * @returns Returns an installable clone of the SVG element + * matching `id`. + */ + _cloneIcon(id: any, mirrorAllowed: any): Element|null; + _prepareSvgClone(sourceSvg: Element|null, size: number, mirrorAllowed: Boolean|null): Element|null; +} + +interface HTMLElementTagNameMap { + "iron-iconset-svg": IronIconsetSvgElement; +} diff --git a/bower_components/iron-iconset-svg/iron-iconset-svg.html b/bower_components/iron-iconset-svg/iron-iconset-svg.html new file mode 100644 index 00000000..152afcb5 --- /dev/null +++ b/bower_components/iron-iconset-svg/iron-iconset-svg.html @@ -0,0 +1,258 @@ + + + + + + diff --git a/bower_components/iron-iconset-svg/package-lock.json b/bower_components/iron-iconset-svg/package-lock.json new file mode 100644 index 00000000..4736abc0 --- /dev/null +++ b/bower_components/iron-iconset-svg/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-iconset-svg", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.3" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.3.tgz", + "integrity": "sha512-igaEysRgtg5tYJVIdQ1T2lJ3G6OmoY7g0YVWKHLFiVs4YUChd9IRSiLoHSLffwut+CpsHHBDj4vRxxNEMstctw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-iconset-svg/package.json b/bower_components/iron-iconset-svg/package.json new file mode 100644 index 00000000..2c775d09 --- /dev/null +++ b/bower_components/iron-iconset-svg/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-iconset-svg", + "private": true, + "description": "Manages a set of svg icons", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-iconset-svg.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-iconset-svg/test/index.html b/bower_components/iron-iconset-svg/test/index.html new file mode 100644 index 00000000..bedeaac6 --- /dev/null +++ b/bower_components/iron-iconset-svg/test/index.html @@ -0,0 +1,27 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-iconset-svg/test/iron-iconset-svg.html b/bower_components/iron-iconset-svg/test/iron-iconset-svg.html new file mode 100644 index 00000000..281670d5 --- /dev/null +++ b/bower_components/iron-iconset-svg/test/iron-iconset-svg.html @@ -0,0 +1,291 @@ + + + + + + + iron-iconset-svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-image/.bower.json b/bower_components/iron-image/.bower.json new file mode 100644 index 00000000..9ec8cdb4 --- /dev/null +++ b/bower_components/iron-image/.bower.json @@ -0,0 +1,61 @@ +{ + "name": "iron-image", + "version": "2.2.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "An image-displaying element with lots of convenient features", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "media" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-image.git" + }, + "main": "iron-image.html", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-image", + "_release": "2.2.1", + "_resolution": { + "type": "version", + "tag": "v2.2.1", + "commit": "52dcc352acd98cb41f588aeca176819c2732a7bf" + }, + "_source": "https://github.com/PolymerElements/iron-image.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-image" +} \ No newline at end of file diff --git a/bower_components/iron-image/.github/CODEOWNERS b/bower_components/iron-image/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-image/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-image/.github/ISSUE_TEMPLATE.md b/bower_components/iron-image/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..6493da8c --- /dev/null +++ b/bower_components/iron-image/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,31 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 10 +- [ ] Safari 9 +- [ ] Edge +- [ ] IE 11 diff --git a/bower_components/iron-image/.gitignore b/bower_components/iron-image/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-image/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-image/.travis.yml b/bower_components/iron-image/.travis.yml new file mode 100644 index 00000000..172f7068 --- /dev/null +++ b/bower_components/iron-image/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + JOd5P49LsE77iYvmnXcjrv4UOPBz5iXed34LnK4FB8+hJ79wFan/HuymA8mof1FDnyBYFqV9Zgmeo2BAmFxomtADwLL6fcX34fh5r0JPuM6pv1ovoaE/yNBrt3o7RfhQ9/VkezjGBFkrXF8ciw2e+OHu6aEcAvdqG8O0UqWHVn4= + - secure: >- + HV8pPsLmz3GsoAyAnJosqMPVL/2QA/0G71b9KTrXGvnydRwPfaxPmgklrVs0S8LlS4t1OzJcL1M8p/k2ulWL/OsmG+KVB2LRB51JsrhfDEb+XF9VpXFXv5TSx2Bv9RE4gBlY2YaVnpq5OsL9oQDLmwMvsEcPZPF/nRfnbG6zD6g= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-image/CONTRIBUTING.md b/bower_components/iron-image/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-image/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-image/README.md b/bower_components/iron-image/README.md new file mode 100644 index 00000000..9d2c7c48 --- /dev/null +++ b/bower_components/iron-image/README.md @@ -0,0 +1,70 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-image.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-image) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-image)_ + + +## <iron-image> + +`iron-image` is an element for displaying an image that provides useful sizing and +preloading options not found on the standard `` tag. + +The `sizing` option allows the image to be either cropped (`cover`) or +letterboxed (`contain`) to fill a fixed user-size placed on the element. + +The `preload` option prevents the browser from rendering the image until the +image is fully loaded. In the interim, either the element's CSS `background-color` +can be be used as the placeholder, or the `placeholder` property can be +set to a URL (preferably a data-URI, for instant rendering) for an +placeholder image. + +The `fade` option (only valid when `preload` is set) will cause the placeholder +image/color to be faded out once the image is rendered. + +Examples: + + Basically identical to `` tag: + +```html + +``` + + Will letterbox the image to fit: + +```html + +``` + + Will crop the image to fit: + +```html + +``` + + Will show light-gray background until the image loads: + +```html + +``` + + Will show a base-64 encoded placeholder image until the image loads: + +```html + +``` + + Will fade the light-gray background out once the image is loaded: + +```html + +``` + +| Custom property | Description | Default | +| --- | --- | --- | +| `--iron-image-placeholder` | Mixin applied to #placeholder | `{}` | +| `--iron-image-width` | Sets the width of the wrapped image | `auto` | +| `--iron-image-height` | Sets the height of the wrapped image | `auto` | diff --git a/bower_components/iron-image/bower.json b/bower_components/iron-image/bower.json new file mode 100644 index 00000000..67bbd8b3 --- /dev/null +++ b/bower_components/iron-image/bower.json @@ -0,0 +1,51 @@ +{ + "name": "iron-image", + "version": "2.2.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "An image-displaying element with lots of convenient features", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "media" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-image.git" + }, + "main": "iron-image.html", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-image/demo/index.html b/bower_components/iron-image/demo/index.html new file mode 100644 index 00000000..9637b410 --- /dev/null +++ b/bower_components/iron-image/demo/index.html @@ -0,0 +1,280 @@ + + + + + + iron-image demo + + + + + + + + + + + + + + + + + + + + + +
    + +

    A plain iron-image.

    + + + + +

    + sizing="cover" expands the image to cover all of its + specified size. +

    + + + + +

    + sizing="contain" expands the image to fit within its + specified size. +

    + + + + +

    + Use the --iron-image-width property to set the width of + the image wrapped by the iron-image. +

    + + + + +

    + Use the --iron-image-height property to set the height of + the image wrapped by the iron-image. +

    + + + + +

    + No placeholder is shown by default. +

    + + + + +

    + The preload attribute shows a placeholder element in front + of the image before it has loaded. Use the + --iron-image-placeholder CSS mixin to style it. +

    + + + + +

    + Use the placeholder attribute to specify a background image + for the placeholder element. +

    + + + + +
    + + + diff --git a/bower_components/iron-image/demo/loading.png b/bower_components/iron-image/demo/loading.png new file mode 100644 index 00000000..a87e1719 Binary files /dev/null and b/bower_components/iron-image/demo/loading.png differ diff --git a/bower_components/iron-image/demo/polymer.svg b/bower_components/iron-image/demo/polymer.svg new file mode 100644 index 00000000..f7a815dd --- /dev/null +++ b/bower_components/iron-image/demo/polymer.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-image/index.html b/bower_components/iron-image/index.html new file mode 100644 index 00000000..bb7da82e --- /dev/null +++ b/bower_components/iron-image/index.html @@ -0,0 +1,24 @@ + + + + + + iron-image + + + + + + + + + + diff --git a/bower_components/iron-image/iron-image.d.ts b/bower_components/iron-image/iron-image.d.ts new file mode 100644 index 00000000..29cbf12b --- /dev/null +++ b/bower_components/iron-image/iron-image.d.ts @@ -0,0 +1,170 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-image.html + */ + +/// + +/** + * `iron-image` is an element for displaying an image that provides useful sizing and + * preloading options not found on the standard `` tag. + * + * The `sizing` option allows the image to be either cropped (`cover`) or + * letterboxed (`contain`) to fill a fixed user-size placed on the element. + * + * The `preload` option prevents the browser from rendering the image until the + * image is fully loaded. In the interim, either the element's CSS `background-color` + * can be be used as the placeholder, or the `placeholder` property can be + * set to a URL (preferably a data-URI, for instant rendering) for an + * placeholder image. + * + * The `fade` option (only valid when `preload` is set) will cause the placeholder + * image/color to be faded out once the image is rendered. + * + * Examples: + * + * Basically identical to `` tag: + * + * + * + * Will letterbox the image to fit: + * + * + * + * Will crop the image to fit: + * + * + * + * Will show light-gray background until the image loads: + * + * + * + * Will show a base-64 encoded placeholder image until the image loads: + * + * + * + * Will fade the light-gray background out once the image is loaded: + * + * + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--iron-image-placeholder` | Mixin applied to #placeholder | `{}` + * `--iron-image-width` | Sets the width of the wrapped image | `auto` + * `--iron-image-height` | Sets the height of the wrapped image | `auto` + */ +interface IronImageElement extends Polymer.Element { + + /** + * The URL of an image. + */ + src: string|null|undefined; + + /** + * A short text alternative for the image. + */ + alt: string|null|undefined; + + /** + * CORS enabled images support: + * https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image + */ + crossorigin: string|null|undefined; + + /** + * When true, the image is prevented from loading and any placeholder is + * shown. This may be useful when a binding to the src property is known to + * be invalid, to prevent 404 requests. + */ + preventLoad: boolean|null|undefined; + + /** + * Sets a sizing option for the image. Valid values are `contain` (full + * aspect ratio of the image is contained within the element and + * letterboxed) or `cover` (image is cropped in order to fully cover the + * bounds of the element), or `null` (default: image takes natural size). + */ + sizing: string|null|undefined; + + /** + * When a sizing option is used (`cover` or `contain`), this determines + * how the image is aligned within the element bounds. + */ + position: string|null|undefined; + + /** + * When `true`, any change to the `src` property will cause the + * `placeholder` image to be shown until the new image has loaded. + */ + preload: boolean|null|undefined; + + /** + * This image will be used as a background/placeholder until the src image + * has loaded. Use of a data-URI for placeholder is encouraged for instant + * rendering. + */ + placeholder: string|null|undefined; + + /** + * When `preload` is true, setting `fade` to true will cause the image to + * fade into place. + */ + fade: boolean|null|undefined; + + /** + * Read-only value that is true when the image is loaded. + */ + readonly loaded: boolean|null|undefined; + + /** + * Read-only value that tracks the loading state of the image when the + * `preload` option is used. + */ + readonly loading: boolean|null|undefined; + + /** + * Read-only value that indicates that the last set `src` failed to load. + */ + readonly error: boolean|null|undefined; + + /** + * Can be used to set the width of image (e.g. via binding); size may also + * be set via CSS. + */ + width: number|null|undefined; + + /** + * Can be used to set the height of image (e.g. via binding); size may also + * be set via CSS. + */ + height: number|null|undefined; + created(): void; + _imgOnLoad(): void; + _imgOnError(): void; + _computePlaceholderHidden(): any; + _computePlaceholderClassName(): any; + _computeImgDivHidden(): any; + _computeImgDivARIAHidden(): any; + _computeImgDivARIALabel(): any; + _computeImgHidden(): any; + _widthChanged(): void; + _heightChanged(): void; + _loadStateObserver(src: any, preventLoad: any): void; + _placeholderChanged(): void; + _transformChanged(): void; + _resolveSrc(testSrc: any): any; +} + +interface HTMLElementTagNameMap { + "iron-image": IronImageElement; +} diff --git a/bower_components/iron-image/iron-image.html b/bower_components/iron-image/iron-image.html new file mode 100644 index 00000000..dec9841c --- /dev/null +++ b/bower_components/iron-image/iron-image.html @@ -0,0 +1,380 @@ + + + + + + + + + + + diff --git a/bower_components/iron-image/package-lock.json b/bower_components/iron-image/package-lock.json new file mode 100644 index 00000000..7894dca6 --- /dev/null +++ b/bower_components/iron-image/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-image", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.3" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.3.tgz", + "integrity": "sha512-igaEysRgtg5tYJVIdQ1T2lJ3G6OmoY7g0YVWKHLFiVs4YUChd9IRSiLoHSLffwut+CpsHHBDj4vRxxNEMstctw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-image/package.json b/bower_components/iron-image/package.json new file mode 100644 index 00000000..c6e86424 --- /dev/null +++ b/bower_components/iron-image/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-image", + "private": true, + "description": "An image-displaying element with lots of convenient features", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-image.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-image/test/index.html b/bower_components/iron-image/test/index.html new file mode 100644 index 00000000..079cae85 --- /dev/null +++ b/bower_components/iron-image/test/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/bower_components/iron-image/test/iron-image.html b/bower_components/iron-image/test/iron-image.html new file mode 100644 index 00000000..98bac407 --- /dev/null +++ b/bower_components/iron-image/test/iron-image.html @@ -0,0 +1,512 @@ + + + + + iron-image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-input/.bower.json b/bower_components/iron-input/.bower.json new file mode 100644 index 00000000..c18915c0 --- /dev/null +++ b/bower_components/iron-input/.bower.json @@ -0,0 +1,69 @@ +{ + "name": "iron-input", + "version": "2.1.3", + "description": "An input element with data binding", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "input" + ], + "main": "iron-input.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-input.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-input", + "ignore": [], + "dependencies": { + "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#1 - 2", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "polymerelements/iron-demo-helpers#1 - 2", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", + "paper-styles": "polymerelements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#^1.0.0", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.3", + "_resolution": { + "type": "version", + "tag": "v2.1.3", + "commit": "72a4a9e898a4b825602eacd78944e8e25ee41f5c" + }, + "_source": "https://github.com/PolymerElements/iron-input.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-input" +} \ No newline at end of file diff --git a/bower_components/iron-input/.github/CODEOWNERS b/bower_components/iron-input/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-input/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-input/.github/ISSUE_TEMPLATE.md b/bower_components/iron-input/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..b01fd73e --- /dev/null +++ b/bower_components/iron-input/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-input/.gitignore b/bower_components/iron-input/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-input/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-input/.travis.yml b/bower_components/iron-input/.travis.yml new file mode 100644 index 00000000..23948e96 --- /dev/null +++ b/bower_components/iron-input/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + NQunbnhwQFU/uRU1Dz8VIYXpG9cq4wEldllph4To1XJqEa21pG1Q9+a/M4+aOkW6iIPRgfI/bQ6mPWaRnE/KGrsusARqgYDytq42dJpSoLOiLYbVdRKIHI3t9cr1MiZKUxwz/vpOsKcMK8dW5RmR6zJ8k5roijNAmjFRlzfGOKY= + - secure: >- + Ge6m7GkHZdhv6Ru7uNEVS9jUQ15CsCa9ZBcBQncA/w8zEmDfM2tzcTUJ54piZ03mo9qnWOcV4IcJj78nXsyKcYZHiGpe63w5R5NWhO3uZ72C48SMPbWQxL0Kyt6PN4u7i5MNCMJ3+a+ttyet8H9qTzxAwOLVSFCUr3On1/B1APU= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-input/CONTRIBUTING.md b/bower_components/iron-input/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-input/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-input/README.md b/bower_components/iron-input/README.md new file mode 100644 index 00000000..32a84ebe --- /dev/null +++ b/bower_components/iron-input/README.md @@ -0,0 +1,80 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-input.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-input) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-input)_ + + +## <iron-input> + +`` adds two-way binding and custom validators using `Polymer.IronValidatorBehavior` +to ``. + +### Changes in 2.0 +Since type-extensions are not available in 2.0, ` + + + ``` + +Other changes: +- `prevent-invalid-input` and `allowed-pattern` had to be always used together; deleted `prevent-invalid-input`, so that only +`allowed-pattern` is needed +- added an `auto-validate` property +- Note: imperatively setting the `value` attribute on the native `` is not supported -- the native `input` does not fire an event in this case, so this update cannot be observed, and `bind-value` cannot be updated. + +### Two-way binding + +By default you can only get notified of changes to an `input`'s `value` due to user input: + +```html + +``` + +`iron-input` adds the `bind-value` property that mirrors the `value` property, and can be used +for two-way data binding. `bind-value` will notify if it is changed either by user input or by script. + +```html + + + +``` + +### Custom validators + +You can use custom validators that implement `Polymer.IronValidatorBehavior` with ``. + +```html + + + +``` + +### Stopping invalid input + +It may be desirable to only allow users to enter certain characters. You can use the +`prevent-invalid-input` and `allowed-pattern` attributes together to accomplish this. This feature +is separate from validation, and `allowed-pattern` does not affect how the input is validated. + +```html + + + + +``` + + diff --git a/bower_components/iron-input/bower.json b/bower_components/iron-input/bower.json new file mode 100644 index 00000000..57976900 --- /dev/null +++ b/bower_components/iron-input/bower.json @@ -0,0 +1,60 @@ +{ + "name": "iron-input", + "version": "2.1.3", + "description": "An input element with data binding", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "input" + ], + "main": "iron-input.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-input.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-input", + "ignore": [], + "dependencies": { + "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#1 - 2", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "polymerelements/iron-demo-helpers#1 - 2", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", + "paper-styles": "polymerelements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#^1.0.0", + "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-input/demo/cats-only.html b/bower_components/iron-input/demo/cats-only.html new file mode 100644 index 00000000..ad32866e --- /dev/null +++ b/bower_components/iron-input/demo/cats-only.html @@ -0,0 +1,24 @@ + + + + + + diff --git a/bower_components/iron-input/demo/index.html b/bower_components/iron-input/demo/index.html new file mode 100644 index 00000000..5d2a2711 --- /dev/null +++ b/bower_components/iron-input/demo/index.html @@ -0,0 +1,99 @@ + + + + + + + + + + iron-input demo + + + + + + + + + + + + + + +
    +

    Basic inputs

    + + + + +

    Updating the iron-input's value

    + + + + +

    Preventing invalid characters: only allow !@#0123456789

    + + + + +

    Auto-validation and preventing invalid characters

    + + + + +

    Validation with a custom validator

    + + + +
    + + diff --git a/bower_components/iron-input/hero.svg b/bower_components/iron-input/hero.svg new file mode 100755 index 00000000..146ffeac --- /dev/null +++ b/bower_components/iron-input/hero.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-input/index.html b/bower_components/iron-input/index.html new file mode 100644 index 00000000..ca0dac06 --- /dev/null +++ b/bower_components/iron-input/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-input + + + + + + + + + + + + + diff --git a/bower_components/iron-input/iron-input.d.ts b/bower_components/iron-input/iron-input.d.ts new file mode 100644 index 00000000..cf1139f5 --- /dev/null +++ b/bower_components/iron-input/iron-input.d.ts @@ -0,0 +1,164 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-input.html + */ + +/// +/// +/// + +/** + * `` is a wrapper to a native `` element, that adds two-way binding + * and prevention of invalid input. To use it, you must distribute a native `` + * yourself. You can continue to use the native `input` as you would normally: + * + * + * + * + * + * + * + * + * + * ### Two-way binding + * + * By default you can only get notified of changes to a native ``'s `value` + * due to user input: + * + * + * + * This means that if you imperatively set the value (i.e. `someNativeInput.value = 'foo'`), + * no events will be fired and this change cannot be observed. + * + * `iron-input` adds the `bind-value` property that mirrors the native `input`'s '`value` property; this + * property can be used for two-way data binding. + * `bind-value` will notify if it is changed either by user input or by script. + * + * + * + * + * + * Note: this means that if you want to imperatively set the native `input`'s, you _must_ + * set `bind-value` instead, so that the wrapper `iron-input` can be notified. + * + * ### Validation + * + * `iron-input` uses the native `input`'s validation. For simplicity, `iron-input` + * has a `validate()` method (which internally just checks the distributed `input`'s + * validity), which sets an `invalid` attribute that can also be used for styling. + * + * To validate automatically as you type, you can use the `auto-validate` attribute. + * + * `iron-input` also fires an `iron-input-validate` event after `validate()` is + * called. You can use it to implement a custom validator: + * + * var CatsOnlyValidator = { + * validate: function(ironInput) { + * var valid = !ironInput.bindValue || ironInput.bindValue === 'cat'; + * ironInput.invalid = !valid; + * return valid; + * } + * } + * ironInput.addEventListener('iron-input-validate', function() { + * CatsOnly.validate(input2); + * }); + * + * You can also use an element implementing an [`IronValidatorBehavior`](/element/PolymerElements/iron-validatable-behavior). + * This example can also be found in the demo for this element: + * + * + * + * + * + * ### Preventing invalid input + * + * It may be desirable to only allow users to enter certain characters. You can use the + * `allowed-pattern` attribute to accomplish this. This feature + * is separate from validation, and `allowed-pattern` does not affect how the input is validated. + * + * // Only allow typing digits, but a valid input has exactly 5 digits. + * + * + * + */ +interface IronInputElement extends Polymer.Element, Polymer.IronValidatableBehavior { + + /** + * Use this property instead of `value` for two-way data binding, or to + * set a default value for the input. **Do not** use the distributed + * input's `value` property to set a default value. + */ + bindValue: string|null|undefined; + + /** + * Computed property that echoes `bindValue` (mostly used for Polymer 1.0 + * backcompatibility, if you were one-way binding to the Polymer 1.0 + * `input is="iron-input"` value attribute). + */ + readonly value: string|null|undefined; + + /** + * Regex-like list of characters allowed as input; all characters not in the + * list will be rejected. The recommended format should be a list of allowed + * characters, for example, `[a-zA-Z0-9.+-!;:]`. + * + * This pattern represents the allowed characters for the field; as the user + * inputs text, each individual character will be checked against the + * pattern (rather than checking the entire value as a whole). If a + * character is not a match, it will be rejected. + * + * Pasted input will have each character checked individually; if any + * character doesn't match `allowedPattern`, the entire pasted string will + * be rejected. + * + * Note: if you were using `iron-input` in 1.0, you were also required to + * set `prevent-invalid-input`. This is no longer needed as of Polymer 2.0, + * and will be set automatically for you if an `allowedPattern` is provided. + */ + allowedPattern: string|null|undefined; + + /** + * Set to true to auto-validate the input value as you type. + */ + autoValidate: boolean|null|undefined; + + /** + * The native input element. + */ + _inputElement: object|null|undefined; + + /** + * Returns the distributed input element. + * + */ + readonly inputElement: any; + readonly _patternRegExp: any; + + /** + * Returns true if `value` is valid. The validator provided in `validator` + * will be used first, then any constraints. + * + * @returns True if the value is valid. + */ + validate(): boolean; + created(): void; + attached(): void; + detached(): void; + _initSlottedInput(): void; + _bindValueChanged(bindValue: any, inputElement: any): void; + _onInput(): void; + _isPrintable(event: any): any; + _onKeypress(event: any): void; + _checkPatternValidity(): any; + _announceInvalidCharacter(message: any): void; + _computeValue(bindValue: any): any; +} + +interface HTMLElementTagNameMap { + "iron-input": IronInputElement; +} diff --git a/bower_components/iron-input/iron-input.html b/bower_components/iron-input/iron-input.html new file mode 100644 index 00000000..63ab90be --- /dev/null +++ b/bower_components/iron-input/iron-input.html @@ -0,0 +1,366 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-input/package-lock.json b/bower_components/iron-input/package-lock.json new file mode 100644 index 00000000..726a87fc --- /dev/null +++ b/bower_components/iron-input/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-input", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-input/package.json b/bower_components/iron-input/package.json new file mode 100644 index 00000000..a35aa5d3 --- /dev/null +++ b/bower_components/iron-input/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-input", + "private": true, + "description": "An input element with data binding", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-input.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-input/test/disabled-input.html b/bower_components/iron-input/test/disabled-input.html new file mode 100644 index 00000000..f661b43c --- /dev/null +++ b/bower_components/iron-input/test/disabled-input.html @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/bower_components/iron-input/test/index.html b/bower_components/iron-input/test/index.html new file mode 100644 index 00000000..5df64f6b --- /dev/null +++ b/bower_components/iron-input/test/index.html @@ -0,0 +1,24 @@ + + + + iron-input tests + + + + + + + diff --git a/bower_components/iron-input/test/iron-input.html b/bower_components/iron-input/test/iron-input.html new file mode 100644 index 00000000..d1fd8d95 --- /dev/null +++ b/bower_components/iron-input/test/iron-input.html @@ -0,0 +1,397 @@ + + + + + + iron-input tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-input/test/letters-only.html b/bower_components/iron-input/test/letters-only.html new file mode 100644 index 00000000..e5ff9d91 --- /dev/null +++ b/bower_components/iron-input/test/letters-only.html @@ -0,0 +1,26 @@ + + + + + + diff --git a/bower_components/iron-lazy-pages/.bower.json b/bower_components/iron-lazy-pages/.bower.json new file mode 100644 index 00000000..bf7a23ad --- /dev/null +++ b/bower_components/iron-lazy-pages/.bower.json @@ -0,0 +1,64 @@ +{ + "name": "iron-lazy-pages", + "version": "2.1.1", + "authors": [ + "Tim van der Lippe " + ], + "description": "Organizes a set of pages and shows one at a time, lazy-loading all element definitions.", + "keywords": [ + "web-component", + "polymer", + "container", + "lazy-loading" + ], + "main": "iron-lazy-pages.html", + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "http://timvdlippe.github.io/iron-lazy-pages/", + "ignore": [ + "/.*", + "/test/" + ], + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "iron-selector": "PolymerElements/iron-selector#^2.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^2.0.0", + "web-component-tester": "^6.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^2.0.0", + "test-fixture": "PolymerElements/test-fixture#3.0.0-rc.1", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-selector": "PolymerElements/iron-selector#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "4fc2cae37783ae1922edd75e4a84a4f4bda35a70" + }, + "_source": "https://github.com/TimvdLippe/iron-lazy-pages.git", + "_target": "^2.1.1", + "_originalSource": "iron-lazy-pages", + "_direct": true +} \ No newline at end of file diff --git a/bower_components/iron-lazy-pages/LICENSE.md b/bower_components/iron-lazy-pages/LICENSE.md new file mode 100644 index 00000000..500e60a5 --- /dev/null +++ b/bower_components/iron-lazy-pages/LICENSE.md @@ -0,0 +1,12 @@ +Copyright (c) 2016, Tim van der Lippe +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/bower_components/iron-lazy-pages/README.md b/bower_components/iron-lazy-pages/README.md new file mode 100644 index 00000000..dfbc722d --- /dev/null +++ b/bower_components/iron-lazy-pages/README.md @@ -0,0 +1,98 @@ +# iron-lazy-pages + +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/timvdlippe/iron-lazy-pages) +[![Build Status](https://travis-ci.org/TimvdLippe/iron-lazy-pages.svg?branch=master)](https://travis-ci.org/TimvdLippe/iron-lazy-pages) + +[``](https://github.com/PolymerElements/iron-pages) with lazy-loading functionality. + +## Lazy-loading pages + +Big applications have a lot of pages. On first load, loading all page elements +is undesirable. Most of the pages are unused for the current user. To solve +these performance issues, lazy-loading provides an easy-to-use solution. + +Lazy-loading means that all elements of your page are loaded when the user +opens the respective page. E.g. when your user visits `domain.com/about`, all +elements on the about page are fetched and loaded. + +Example: + + +```html + + + +
    + Inline element baz. +
    +
    +``` + +In the above example, whenever the user routes to `domain.com/foo`, the elements defined +in `foo/foo.html` are fetched from the server and loaded by Polymer. + +Consequently whenever the selected value changes from `foo` to `bar`, the page `foo` +will be hidden. + +Fetching is only performed once, e.g. switching from `foo` to `bar` to `foo` will fetch +`foo` once and show `foo` twice. + +## `` support + +You can also add `` as a route to enable restamping: + +```html + + + + +``` diff --git a/bower_components/iron-lazy-pages/bower.json b/bower_components/iron-lazy-pages/bower.json new file mode 100644 index 00000000..ec993265 --- /dev/null +++ b/bower_components/iron-lazy-pages/bower.json @@ -0,0 +1,54 @@ +{ + "name": "iron-lazy-pages", + "version": "2.1.0", + "authors": [ + "Tim van der Lippe " + ], + "description": "Organizes a set of pages and shows one at a time, lazy-loading all element definitions.", + "keywords": [ + "web-component", + "polymer", + "container", + "lazy-loading" + ], + "main": "iron-lazy-pages.html", + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "http://timvdlippe.github.io/iron-lazy-pages/", + "ignore": [ + "/.*", + "/test/" + ], + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0", + "iron-selector": "PolymerElements/iron-selector#^2.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^2.0.0", + "web-component-tester": "^6.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^2.0.0", + "test-fixture": "PolymerElements/test-fixture#3.0.0-rc.1", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-selector": "PolymerElements/iron-selector#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "paper-tabs": "PolymerElements/paper-tabs#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-spinner": "PolymerElements/paper-spinner#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + } +} diff --git a/bower_components/iron-lazy-pages/demo/foo.html b/bower_components/iron-lazy-pages/demo/foo.html new file mode 100644 index 00000000..89b54cf1 --- /dev/null +++ b/bower_components/iron-lazy-pages/demo/foo.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/bower_components/iron-lazy-pages/demo/index.html b/bower_components/iron-lazy-pages/demo/index.html new file mode 100644 index 00000000..d12ea60d --- /dev/null +++ b/bower_components/iron-lazy-pages/demo/index.html @@ -0,0 +1,178 @@ + + + + + + + iron-lazy-pages Demo + + + + + + + + + + + + + +

    <iron-lazy-pages>

    +

    Basic usage

    + + + + + + + + + +

    Distribute templates to light DOM

    + + + + +

    Selective restamp usage

    + + + + + diff --git a/bower_components/iron-lazy-pages/demo/src/my-app.html b/bower_components/iron-lazy-pages/demo/src/my-app.html new file mode 100644 index 00000000..3eafdb15 --- /dev/null +++ b/bower_components/iron-lazy-pages/demo/src/my-app.html @@ -0,0 +1,18 @@ + + + + + + + diff --git a/bower_components/iron-lazy-pages/demo/src/my-demo.html b/bower_components/iron-lazy-pages/demo/src/my-demo.html new file mode 100644 index 00000000..05b1b044 --- /dev/null +++ b/bower_components/iron-lazy-pages/demo/src/my-demo.html @@ -0,0 +1,10 @@ + + + + diff --git a/bower_components/iron-lazy-pages/demo/x-bar.html b/bower_components/iron-lazy-pages/demo/x-bar.html new file mode 100644 index 00000000..e4bd11b4 --- /dev/null +++ b/bower_components/iron-lazy-pages/demo/x-bar.html @@ -0,0 +1,19 @@ + + + + + + diff --git a/bower_components/iron-lazy-pages/demo/x-foo.html b/bower_components/iron-lazy-pages/demo/x-foo.html new file mode 100644 index 00000000..6e76ab7e --- /dev/null +++ b/bower_components/iron-lazy-pages/demo/x-foo.html @@ -0,0 +1,19 @@ + + + + + + diff --git a/bower_components/iron-lazy-pages/index.html b/bower_components/iron-lazy-pages/index.html new file mode 100644 index 00000000..88b39616 --- /dev/null +++ b/bower_components/iron-lazy-pages/index.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-lazy-pages/iron-lazy-pages-behavior.html b/bower_components/iron-lazy-pages/iron-lazy-pages-behavior.html new file mode 100644 index 00000000..ec6495e1 --- /dev/null +++ b/bower_components/iron-lazy-pages/iron-lazy-pages-behavior.html @@ -0,0 +1,159 @@ + + + + + diff --git a/bower_components/iron-lazy-pages/iron-lazy-pages.html b/bower_components/iron-lazy-pages/iron-lazy-pages.html new file mode 100644 index 00000000..e76d163c --- /dev/null +++ b/bower_components/iron-lazy-pages/iron-lazy-pages.html @@ -0,0 +1,90 @@ + + + + + + + + + diff --git a/bower_components/iron-lazy-pages/polymer.json b/bower_components/iron-lazy-pages/polymer.json new file mode 100644 index 00000000..6f86db07 --- /dev/null +++ b/bower_components/iron-lazy-pages/polymer.json @@ -0,0 +1,5 @@ +{ + "lint": { + "rules": ["polymer-2-hybrid"] + } +} diff --git a/bower_components/iron-location/.bower.json b/bower_components/iron-location/.bower.json new file mode 100644 index 00000000..257a96c2 --- /dev/null +++ b/bower_components/iron-location/.bower.json @@ -0,0 +1,71 @@ +{ + "name": "iron-location", + "description": "Bidirectional data binding into the page's URL.", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "routing" + ], + "main": [ + "iron-location.html", + "iron-query-params.html" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-location.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-location", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", + "paper-input": "polymerelements/paper-input#^1.0.0", + "paper-slider": "polymerelements/paper-slider#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", + "test-fixture": "polymerelements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.3" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "version": "2.2.1", + "_release": "2.2.1", + "_resolution": { + "type": "version", + "tag": "v2.2.1", + "commit": "a0619aa3628371004cecb20758dad282ac8aff8b" + }, + "_source": "https://github.com/PolymerElements/iron-location.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-location" +} \ No newline at end of file diff --git a/bower_components/iron-location/.github/CODEOWNERS b/bower_components/iron-location/.github/CODEOWNERS new file mode 100644 index 00000000..9ef9eb64 --- /dev/null +++ b/bower_components/iron-location/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @e111077 +/.travis.yml @azakus diff --git a/bower_components/iron-location/.github/ISSUE_TEMPLATE.md b/bower_components/iron-location/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..e3b4e289 --- /dev/null +++ b/bower_components/iron-location/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-location/.gitignore b/bower_components/iron-location/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-location/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-location/.travis.yml b/bower_components/iron-location/.travis.yml new file mode 100644 index 00000000..6db554ea --- /dev/null +++ b/bower_components/iron-location/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +sudo: required +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +env: + global: + - secure: >- + LSHof0ip5tJswHk4wAIXXsf8Z0WL44Y1pB1XmqFtIsjQLl+2K5bdhRq6Hd6RUZYcpTL29cMStCLQJEG1hxnMks37omHuVFWRtk0NaYlGnJY4i/m/ukUBmM7Yr7LROWRnBgU75PVUvc4YMbCjvlQ9KKjdgBbQBFH2KjhKr9GUN+ihB1yaKRMADvFtC6JWisG4RPv1pRxF6UgvGkOsaCdVb9H9AbKA0psAI1cpg8IMGgUBslbwhYw+viMEQdZ5lW++T3Tb9cwzCVaTqBgvkQCXW4I6T4En9yvUWbV0Ry8uChchvs6BJfwpgN/nksYnLCbCLmN+Rw5eU0+XyWZDLiki/HpsNQblqVEW7vHo1hmtpK24GUv2g8kuE1OjjW7K/l+Q20D8FJFIcPdFjmZ/XgLWxdtXbgNC8n4Z1XBEqKuV1BJ29ojvZk5a5/gFBf9PWdMNTVwSepk7+LoEVQW17vzSHT/HDF7WYEs14uZ0x9I0AV2+339RG7iCcVFMZKYgIif0DmZVysnm0Z9j+wRRk227JpiF9MHeVkFUaXl3+3XIQMz04t+H1wOXiDRlJLJG9IUrzFs+KYuCA+OxNc0XrxjA6Zkl75AQAjAY5vMEWYD+N2OGjkfwD7dB4JtltmZ4llMhEZUt/RPLeZJvL4Sus8hfA6SNG9/tdVgef0mQ91acxZg= + - secure: >- + h0j4eT4lJqbDkEVz4OjkPuAHxxT0Cy7bWbT71oDllhDAvl9zXxIn5BHSnCaUfO0xUhXVpwNuVmDzOE6yQETJ3MamoqL2Hrbg0VCr4hux9/2ipa4tlCTjQ2Y/YaIoID7CpCchdoOQAjrxeg0ZhpMnwxV18NHTqlxNrsdoSDDSmCdffWQwgjVI07O4h1ISIWx6oY0i1Z+9nJI001iZIw5vGopK8zACa5hfSu9my8Nog5gYOBOEoYmT8lNBaKkNuZacGAkHmXPmeeWiflM49sRO5MfyCgVvNtn6yohXs5D1QD2KUZs4mTzVBebT3vPuV7I9NFd+ZY9GT9YeH9BLuxKpYhGlnjL2HhGAvGjIcKX8315EOCpVvgwX3VE1f9PJe3K9q6LP/sFUqf8cUrbj9FhiAVp79IPJkvLUc+1hUG3iQ8X83mjQxcrCt6I50BINOLgjsfzCmnvv12g3FuRry2EBRxEultvPLRCNc2bJCPqol6kiWzs8ySOPXCYOcXqW5/6Z4DYLMTYevapkJZhErcTBuIH7rXEX4tGsdBjtGjTepcW7k2dsCElrul79czZA3AwdLEK/fuygxXR8eMCeS8Tdh4+Ba4M9TfXtAjjnR30NayTOCwyWW9IvTJeWeXKd6SilJcGVO7r546ayGWJ2G+Fltyi7RGixMplRMm8y6YfeM9k= +dist: trusty diff --git a/bower_components/iron-location/CONTRIBUTING.md b/bower_components/iron-location/CONTRIBUTING.md new file mode 100644 index 00000000..cfda1a55 --- /dev/null +++ b/bower_components/iron-location/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/lebawa/edit?html,output](https://jsbin.com/lebawa/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-location/README.md b/bower_components/iron-location/README.md new file mode 100644 index 00000000..ec532cf1 --- /dev/null +++ b/bower_components/iron-location/README.md @@ -0,0 +1,61 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-location.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-location) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-location) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-location)_ + +## Changes in 2.0 +* URL Polyfill no longer a dependency. Small workaround implemented. + +## <iron-location> + +The `iron-location` element manages binding to and from the current URL. + +iron-location is the first, and lowest level element in the Polymer team's +routing system. This is a beta release of iron-location as we continue work +on higher level elements, and as such iron-location may undergo breaking +changes. + +#### Properties + +When the URL is: `/search?query=583#details` iron-location's properties will be: + +* path: `'/search'` +* query: `'query=583'` +* hash: `'details'` + +These bindings are bidirectional. Modifying them will in turn modify the URL. + +iron-location is only active while it is attached to the document. + +#### Links + +While iron-location is active in the document it will intercept clicks on links +within your site, updating the URL pushing the updated URL out through the +databinding system. iron-location only intercepts clicks with the intent to +open in the same window, so middle mouse clicks and ctrl/cmd clicks work fine. + +You can customize this behavior with the `urlSpaceRegex`. + +#### Dwell Time + +iron-location protects against accidental history spamming by only adding +entries to the user's history if the URL stays unchanged for `dwellTime` +milliseconds. + + + + diff --git a/bower_components/iron-location/bower.json b/bower_components/iron-location/bower.json new file mode 100644 index 00000000..48b9ff14 --- /dev/null +++ b/bower_components/iron-location/bower.json @@ -0,0 +1,61 @@ +{ + "name": "iron-location", + "description": "Bidirectional data binding into the page's URL.", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "routing" + ], + "main": [ + "iron-location.html", + "iron-query-params.html" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-location.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-location", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", + "paper-input": "polymerelements/paper-input#^1.0.0", + "paper-slider": "polymerelements/paper-slider#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", + "test-fixture": "polymerelements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.3" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-location/demo/index.html b/bower_components/iron-location/demo/index.html new file mode 100644 index 00000000..2a94af06 --- /dev/null +++ b/bower_components/iron-location/demo/index.html @@ -0,0 +1,125 @@ + + + + + + iron-location + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-location/demo/iron-query-params.html b/bower_components/iron-location/demo/iron-query-params.html new file mode 100644 index 00000000..43dc376f --- /dev/null +++ b/bower_components/iron-location/demo/iron-query-params.html @@ -0,0 +1,124 @@ + + + + + + iron-query-params + + + + + + + + + + + + + + + diff --git a/bower_components/iron-location/index.html b/bower_components/iron-location/index.html new file mode 100644 index 00000000..8ded2107 --- /dev/null +++ b/bower_components/iron-location/index.html @@ -0,0 +1,27 @@ + + + + + + iron-location + + + + + + + + + + + + + diff --git a/bower_components/iron-location/iron-location.d.ts b/bower_components/iron-location/iron-location.d.ts new file mode 100644 index 00000000..0d55d71a --- /dev/null +++ b/bower_components/iron-location/iron-location.d.ts @@ -0,0 +1,135 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-location.html + */ + +/// + +/** + * The `iron-location` element manages binding to and from the current URL. + * + * iron-location is the first, and lowest level element in the Polymer team's + * routing system. This is a beta release of iron-location as we continue work + * on higher level elements, and as such iron-location may undergo breaking + * changes. + * + * #### Properties + * + * When the URL is: `/search?query=583#details` iron-location's properties will be: + * + * - path: `'/search'` + * - query: `'query=583'` + * - hash: `'details'` + * + * These bindings are bidirectional. Modifying them will in turn modify the URL. + * + * iron-location is only active while it is attached to the document. + * + * #### Links + * + * While iron-location is active in the document it will intercept clicks on links + * within your site, updating the URL pushing the updated URL out through the + * databinding system. iron-location only intercepts clicks with the intent to + * open in the same window, so middle mouse clicks and ctrl/cmd clicks work fine. + * + * You can customize this behavior with the `urlSpaceRegex`. + * + * #### Dwell Time + * + * iron-location protects against accidental history spamming by only adding + * entries to the user's history if the URL stays unchanged for `dwellTime` + * milliseconds. + */ +interface IronLocationElement extends Polymer.Element { + + /** + * The pathname component of the URL. + */ + path: string|null|undefined; + + /** + * The query string portion of the URL. + */ + query: string|null|undefined; + + /** + * The hash component of the URL. + */ + hash: string|null|undefined; + + /** + * If the user was on a URL for less than `dwellTime` milliseconds, it + * won't be added to the browser's history, but instead will be replaced + * by the next entry. + * + * This is to prevent large numbers of entries from clogging up the user's + * browser history. Disable by setting to a negative number. + */ + dwellTime: number|null|undefined; + + /** + * A regexp that defines the set of URLs that should be considered part + * of this web app. + * + * Clicking on a link that matches this regex won't result in a full page + * navigation, but will instead just update the URL state in place. + * + * This regexp is given everything after the origin in an absolute + * URL. So to match just URLs that start with /search/ do: + * url-space-regex="^/search/" + */ + urlSpaceRegex: string|RegExp|null; + + /** + * A flag that specifies whether the spaces in query that would normally be + * encoded as %20 should be encoded as +. + * + * Given an example text "hello world", it is encoded in query as + * - "hello%20world" without the parameter + * - "hello+world" with the parameter + */ + encodeSpaceAsPlusInQuery: boolean|null|undefined; + + /** + * urlSpaceRegex, but coerced into a regexp. + */ + readonly _urlSpaceRegExp: RegExp|null; + _lastChangedAt: number|null|undefined; + _initialized: boolean|null|undefined; + hostAttributes: object|null; + created(): void; + attached(): void; + detached(): void; + _hashChanged(): void; + _urlChanged(): void; + _getUrl(): any; + _updateUrl(): void; + + /** + * A necessary evil so that links work as expected. Does its best to + * bail out early if possible. + * + * @param event . + */ + _globalOnClick(event: MouseEvent|null): void; + + /** + * Returns the absolute URL of the link (if any) that this click event + * is clicking on, if we can and should override the resulting full + * page navigation. Returns null otherwise. + * + * @param event . + * @returns . + */ + _getSameOriginLinkHref(event: MouseEvent|null): string|null; + _makeRegExp(urlSpaceRegex: any): any; +} + +interface HTMLElementTagNameMap { + "iron-location": IronLocationElement; +} diff --git a/bower_components/iron-location/iron-location.html b/bower_components/iron-location/iron-location.html new file mode 100644 index 00000000..5b42ae7f --- /dev/null +++ b/bower_components/iron-location/iron-location.html @@ -0,0 +1,433 @@ + + + + + + diff --git a/bower_components/iron-location/iron-query-params.d.ts b/bower_components/iron-location/iron-query-params.d.ts new file mode 100644 index 00000000..dcffb3e9 --- /dev/null +++ b/bower_components/iron-location/iron-query-params.d.ts @@ -0,0 +1,26 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-query-params.html + */ + +/// + +interface IronQueryParamsElement extends Polymer.Element { + paramsString: string|null|undefined; + paramsObject: object|null|undefined; + _dontReact: boolean|null|undefined; + hostAttributes: object|null; + paramsStringChanged(): void; + paramsObjectChanged(): void; + _encodeParams(params: any): any; + _decodeParams(paramString: any): any; +} + +interface HTMLElementTagNameMap { + "iron-query-params": IronQueryParamsElement; +} diff --git a/bower_components/iron-location/iron-query-params.html b/bower_components/iron-location/iron-query-params.html new file mode 100644 index 00000000..08e56451 --- /dev/null +++ b/bower_components/iron-location/iron-query-params.html @@ -0,0 +1,89 @@ + + + + diff --git a/bower_components/iron-location/package-lock.json b/bower_components/iron-location/package-lock.json new file mode 100644 index 00000000..4a671d0d --- /dev/null +++ b/bower_components/iron-location/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-location", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-location/package.json b/bower_components/iron-location/package.json new file mode 100644 index 00000000..f65abb00 --- /dev/null +++ b/bower_components/iron-location/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-location", + "private": true, + "description": "Bidirectional data binding into the page's URL.", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-location.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-location/test/index.html b/bower_components/iron-location/test/index.html new file mode 100644 index 00000000..0a147e58 --- /dev/null +++ b/bower_components/iron-location/test/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-location/test/initialization-cases.html b/bower_components/iron-location/test/initialization-cases.html new file mode 100644 index 00000000..d91bc9df --- /dev/null +++ b/bower_components/iron-location/test/initialization-cases.html @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-location/test/initialization-iframe.html b/bower_components/iron-location/test/initialization-iframe.html new file mode 100644 index 00000000..5d2a5295 --- /dev/null +++ b/bower_components/iron-location/test/initialization-iframe.html @@ -0,0 +1,58 @@ + + + + + + + Base source for injecting into an iframe for tests + + + + + + + diff --git a/bower_components/iron-location/test/initialization-tests.html b/bower_components/iron-location/test/initialization-tests.html new file mode 100644 index 00000000..90921738 --- /dev/null +++ b/bower_components/iron-location/test/initialization-tests.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-location/test/integration.html b/bower_components/iron-location/test/integration.html new file mode 100644 index 00000000..20a2f908 --- /dev/null +++ b/bower_components/iron-location/test/integration.html @@ -0,0 +1,146 @@ + + + + + + iron-location + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-location/test/iron-location.html b/bower_components/iron-location/test/iron-location.html new file mode 100644 index 00000000..a45a4e4b --- /dev/null +++ b/bower_components/iron-location/test/iron-location.html @@ -0,0 +1,563 @@ + + + + + + iron-location + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-location/test/iron-query-params.html b/bower_components/iron-location/test/iron-query-params.html new file mode 100644 index 00000000..a570fce7 --- /dev/null +++ b/bower_components/iron-location/test/iron-query-params.html @@ -0,0 +1,113 @@ + + + + + + iron-location + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-location/test/redirection.html b/bower_components/iron-location/test/redirection.html new file mode 100644 index 00000000..c7a0b8f9 --- /dev/null +++ b/bower_components/iron-location/test/redirection.html @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + diff --git a/bower_components/iron-location/test/replace-state-patch.html b/bower_components/iron-location/test/replace-state-patch.html new file mode 100644 index 00000000..09c1385c --- /dev/null +++ b/bower_components/iron-location/test/replace-state-patch.html @@ -0,0 +1,84 @@ + \ No newline at end of file diff --git a/bower_components/iron-media-query/.bower.json b/bower_components/iron-media-query/.bower.json new file mode 100644 index 00000000..775b877a --- /dev/null +++ b/bower_components/iron-media-query/.bower.json @@ -0,0 +1,57 @@ +{ + "name": "iron-media-query", + "version": "2.1.0", + "description": "Lets you bind to a CSS media query", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "media" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-media-query" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-media-query", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "main": "iron-media-query.html", + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "3da4d24e5292d7521081686115e17d1114d284ed" + }, + "_source": "https://github.com/PolymerElements/iron-media-query.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-media-query" +} \ No newline at end of file diff --git a/bower_components/iron-media-query/.github/CODEOWNERS b/bower_components/iron-media-query/.github/CODEOWNERS new file mode 100644 index 00000000..a70941e3 --- /dev/null +++ b/bower_components/iron-media-query/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @keanulee +/.travis.yml @azakus diff --git a/bower_components/iron-media-query/.github/ISSUE_TEMPLATE.md b/bower_components/iron-media-query/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0d32a726 --- /dev/null +++ b/bower_components/iron-media-query/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-media-query/.gitignore b/bower_components/iron-media-query/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-media-query/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-media-query/.travis.yml b/bower_components/iron-media-query/.travis.yml new file mode 100644 index 00000000..68ef7a12 --- /dev/null +++ b/bower_components/iron-media-query/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + efS1E9VC7v1KEZ9x/52vlWim9IA86zgJAgVEYNG78TDE86avKlAevDo+ULnrUWmJqp4pQibqZs1o+DbkGKaovfMpzKCFo2/SU1PjK1P/t4liz9Ia6cxi1fwbjZcqbe4DKfDJZwIFOtO8Vp26jlVdx8eaNqp7zm/S9TtmEvV8cfs= + - secure: >- + DG4SkCilGKfokTPV+/uzpJ1QNMNYAK1ZWh+1Z/Z8DGwjGoCgh9ACkBxdXvi42HDYMvdd+mixDkZ2n7+rU++G8vHn9jVHPQhu5h9OjM4rmXF1TtStA0poCmjPz5ZpoFzae4Kcjaj5YrVjdAAAS/4grYMvDY9d95OtQtOZCB1bxeQ= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-media-query/CONTRIBUTING.md b/bower_components/iron-media-query/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-media-query/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-media-query/README.md b/bower_components/iron-media-query/README.md new file mode 100644 index 00000000..70acd691 --- /dev/null +++ b/bower_components/iron-media-query/README.md @@ -0,0 +1,32 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-media-query.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-media-query) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-media-query)_ + + +##<iron-media-query> + +`iron-media-query` can be used to data bind to a CSS media query. +The `query` property is a bare CSS media query. +The `query-matches` property is a boolean representing whether the page matches that media query. + +Example: + +```html + +``` + + diff --git a/bower_components/iron-media-query/bower.json b/bower_components/iron-media-query/bower.json new file mode 100644 index 00000000..9ea1d8dc --- /dev/null +++ b/bower_components/iron-media-query/bower.json @@ -0,0 +1,48 @@ +{ + "name": "iron-media-query", + "version": "2.0.0", + "description": "Lets you bind to a CSS media query", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "media" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-media-query" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-media-query", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "main": "iron-media-query.html", + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-media-query/demo/index.html b/bower_components/iron-media-query/demo/index.html new file mode 100644 index 00000000..47b9aa47 --- /dev/null +++ b/bower_components/iron-media-query/demo/index.html @@ -0,0 +1,95 @@ + + + + + + iron-media-query demo + + + + + + + + + + + +
    +

    <iron-media-query>

    + + + + +
    + + + diff --git a/bower_components/iron-media-query/hero.svg b/bower_components/iron-media-query/hero.svg new file mode 100755 index 00000000..9b5e2a61 --- /dev/null +++ b/bower_components/iron-media-query/hero.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-media-query/index.html b/bower_components/iron-media-query/index.html new file mode 100644 index 00000000..0806857c --- /dev/null +++ b/bower_components/iron-media-query/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-media-query + + + + + + + + + + + + + diff --git a/bower_components/iron-media-query/iron-media-query.d.ts b/bower_components/iron-media-query/iron-media-query.d.ts new file mode 100644 index 00000000..6ad4b4d6 --- /dev/null +++ b/bower_components/iron-media-query/iron-media-query.d.ts @@ -0,0 +1,51 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-media-query.html + */ + +/// + +/** + * `iron-media-query` can be used to data bind to a CSS media query. + * The `query` property is a bare CSS media query. + * The `query-matches` property is a boolean representing whether the page matches that media query. + * + * Example: + * + * + */ +interface IronMediaQueryElement extends Polymer.Element { + + /** + * The Boolean return value of the media query. + */ + readonly queryMatches: boolean|null|undefined; + + /** + * The CSS media query to evaluate. + */ + query: string|null|undefined; + + /** + * If true, the query attribute is assumed to be a complete media query + * string rather than a single media feature. + */ + full: boolean|null|undefined; + _boundMQHandler: (p0: MediaQueryList|null) => any; + _mq: MediaQueryList|null; + attached(): void; + detached(): void; + _add(): void; + _remove(): void; + queryChanged(): void; + queryHandler(mq: any): void; +} + +interface HTMLElementTagNameMap { + "iron-media-query": IronMediaQueryElement; +} diff --git a/bower_components/iron-media-query/iron-media-query.html b/bower_components/iron-media-query/iron-media-query.html new file mode 100644 index 00000000..1d446fd8 --- /dev/null +++ b/bower_components/iron-media-query/iron-media-query.html @@ -0,0 +1,122 @@ + + + + + + + diff --git a/bower_components/iron-media-query/package-lock.json b/bower_components/iron-media-query/package-lock.json new file mode 100644 index 00000000..31622366 --- /dev/null +++ b/bower_components/iron-media-query/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-media-query", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-media-query/package.json b/bower_components/iron-media-query/package.json new file mode 100644 index 00000000..cd8893e4 --- /dev/null +++ b/bower_components/iron-media-query/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-media-query", + "private": true, + "description": "Lets you bind to a CSS media query", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-media-query" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-media-query/test/basic.html b/bower_components/iron-media-query/test/basic.html new file mode 100644 index 00000000..f6482382 --- /dev/null +++ b/bower_components/iron-media-query/test/basic.html @@ -0,0 +1,119 @@ + + + + + + + iron-media-query-basic + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-media-query/test/index.html b/bower_components/iron-media-query/test/index.html new file mode 100644 index 00000000..10b94050 --- /dev/null +++ b/bower_components/iron-media-query/test/index.html @@ -0,0 +1,27 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/.bower.json b/bower_components/iron-menu-behavior/.bower.json new file mode 100644 index 00000000..cf0f4de4 --- /dev/null +++ b/bower_components/iron-menu-behavior/.bower.json @@ -0,0 +1,69 @@ +{ + "name": "iron-menu-behavior", + "version": "2.1.1", + "description": "Provides accessible menu behavior", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "behavior", + "menu" + ], + "main": [ + "iron-menu-behavior.html", + "iron-menubar-behavior.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-menu-behavior" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-menu-behavior", + "ignore": [], + "dependencies": { + "iron-selector": "PolymerElements/iron-selector#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-selector": "PolymerElements/iron-selector#^1.0.0", + "polymer": "Polymer/polymer#^1.9", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "3f4817b8929fdc044432c2be6b713613267932d4" + }, + "_source": "https://github.com/PolymerElements/iron-menu-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-menu-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-menu-behavior/.github/CODEOWNERS b/bower_components/iron-menu-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-menu-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-menu-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-menu-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..da2172d0 --- /dev/null +++ b/bower_components/iron-menu-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-menu-behavior/.gitignore b/bower_components/iron-menu-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-menu-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-menu-behavior/.travis.yml b/bower_components/iron-menu-behavior/.travis.yml new file mode 100644 index 00000000..b6149672 --- /dev/null +++ b/bower_components/iron-menu-behavior/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + CbYi/0VAtpLB+NDHdD/I9q2ldILrmyc3wxKdO5vEtMvRKYgsddQ/hXGovV3c6Hy9sAXD5sKtNi60BBG5E2XuydshjYAZiytfeNjFIvDu5627Xljjt90e/r1hg3tNHRRQihH73nPECfp/X+g+yBNCX3f0+2ExAh0DMs1DXt7Dl7Q= + - secure: >- + kLFlOTh9IjctY7DIJ3KEw5OPrqHNTzoArdabfAtisBMWahuJptKFmYCp/t+zPSL27IVqJakaqPrwGrBUi+4h3wVWredNhfl2lCpMfQfBMcHC5kBVkf2xjJyDa5Y3bP7jPq6YnWYAqEl6pBWYiHU6yWBc6BEdJ6FsTWFbLFTnY7w= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-menu-behavior/CONTRIBUTING.md b/bower_components/iron-menu-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-menu-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-menu-behavior/README.md b/bower_components/iron-menu-behavior/README.md new file mode 100644 index 00000000..8e639283 --- /dev/null +++ b/bower_components/iron-menu-behavior/README.md @@ -0,0 +1,18 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-menu-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-menu-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-menu-behavior)_ + + +## Polymer.IronMenuBehavior + +`Polymer.IronMenuBehavior` implements accessible menu behavior. + +## Polymer.IronMenubarBehavior + +`Polymer.IronMenubarBehavior` implements accessible menubar behavior. + +### Notable breaking changes between 1.x and 2.x (hybrid): + +IronSelectableBehavior and IronMultiSelectableBehavior, which are used by +IronMenuBehavior and IronMenubarBehavior, introduce multiple breaking changes. +Please see the README for those behaviors for more detail. diff --git a/bower_components/iron-menu-behavior/bower.json b/bower_components/iron-menu-behavior/bower.json new file mode 100644 index 00000000..971cdae1 --- /dev/null +++ b/bower_components/iron-menu-behavior/bower.json @@ -0,0 +1,60 @@ +{ + "name": "iron-menu-behavior", + "version": "2.1.1", + "description": "Provides accessible menu behavior", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "behavior", + "menu" + ], + "main": [ + "iron-menu-behavior.html", + "iron-menubar-behavior.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-menu-behavior" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-menu-behavior", + "ignore": [], + "dependencies": { + "iron-selector": "PolymerElements/iron-selector#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-selector": "PolymerElements/iron-selector#^1.0.0", + "polymer": "Polymer/polymer#^1.9", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-menu-behavior/demo/index.html b/bower_components/iron-menu-behavior/demo/index.html new file mode 100644 index 00000000..7fe7ca4d --- /dev/null +++ b/bower_components/iron-menu-behavior/demo/index.html @@ -0,0 +1,128 @@ + + + + + + + + + + iron-menu-behavior demo + + + + + + + + + + + + + + +
    +
    +

    Simple menu

    + +
    + +
    +

    Multi-select menu

    + +
    + +
    +
    +

    Simple menubar

    +
    + + Item 0 + Item 1 + Item 2 + Item 3 + +
    +
    +
    +

    Multi-select menubar

    +
    + + Item 0 + Item 1 + Item 2 + Item 3 + +
    +
    +
    + +
    + + diff --git a/bower_components/iron-menu-behavior/demo/simple-menu.html b/bower_components/iron-menu-behavior/demo/simple-menu.html new file mode 100644 index 00000000..97e0165d --- /dev/null +++ b/bower_components/iron-menu-behavior/demo/simple-menu.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/demo/simple-menubar.html b/bower_components/iron-menu-behavior/demo/simple-menubar.html new file mode 100644 index 00000000..bfca5a17 --- /dev/null +++ b/bower_components/iron-menu-behavior/demo/simple-menubar.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/index.html b/bower_components/iron-menu-behavior/index.html new file mode 100644 index 00000000..2c643c4a --- /dev/null +++ b/bower_components/iron-menu-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-menu-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/iron-menu-behavior.d.ts b/bower_components/iron-menu-behavior/iron-menu-behavior.d.ts new file mode 100644 index 00000000..676a9b09 --- /dev/null +++ b/bower_components/iron-menu-behavior/iron-menu-behavior.d.ts @@ -0,0 +1,169 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-menu-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * `Polymer.IronMenuBehavior` implements accessible menu behavior. + */ + interface IronMenuBehavior extends Polymer.IronMultiSelectableBehavior, Polymer.IronA11yKeysBehavior { + keyBindings: object; + + /** + * Returns the currently focused item. + */ + readonly focusedItem: object|null; + + /** + * The attribute to use on menu items to look up the item title. Typing the + * first letter of an item when the menu is open focuses that item. If + * unset, `textContent` will be used. + */ + attrForItemTitle: string|null|undefined; + disabled: boolean; + hostAttributes: object|null; + attached(): void; + + /** + * Selects the given value. If the `multi` property is true, then the selected + * state of the `value` will be toggled; otherwise the `value` will be + * selected. + * + * @param value the value to select. + */ + select(value: string|number): void; + + /** + * Mutates items in the menu based on provided selection details, so that + * all items correctly reflect selection state. + * + * @param item An item in the menu. + * @param isSelected True if the item should be shown in a + * selected state, otherwise false. + */ + _applySelection(item: Element|null, isSelected: boolean): void; + + /** + * override _activateHandler + */ + _activateHandler(event: any): void; + + /** + * Resets all tabindex attributes to the appropriate value based on the + * current selection state. The appropriate value is `0` (focusable) for + * the default selected item, and `-1` (not keyboard focusable) for all + * other items. + */ + _resetTabindices(): void; + + /** + * Sets appropriate ARIA based on whether or not the menu is meant to be + * multi-selectable. + * + * @param multi True if the menu should be multi-selectable. + */ + _updateMultiselectable(multi: boolean): void; + + /** + * Given a KeyboardEvent, this method will focus the appropriate item in the + * menu (if there is a relevant item, and it is possible to focus it). + * + * @param event A KeyboardEvent. + */ + _focusWithKeyboardEvent(event: KeyboardEvent|null): void; + _clearSearchText(): void; + + /** + * Focuses the previous item (relative to the currently focused item) in the + * menu, disabled items will be skipped. + * Loop until length + 1 to handle case of single item in menu. + */ + _focusPrevious(): void; + + /** + * Focuses the next item (relative to the currently focused item) in the + * menu, disabled items will be skipped. + * Loop until length + 1 to handle case of single item in menu. + */ + _focusNext(): void; + + /** + * Discretely updates tabindex values among menu items as the focused item + * changes. + * + * @param focusedItem The element that is currently focused. + * @param old The last element that was considered focused, if + * applicable. + */ + _focusedItemChanged(focusedItem: Element|null, old: Element|null): void; + + /** + * A handler that responds to mutation changes related to the list of items + * in the menu. + * + * @param event An event containing mutation records as its + * detail. + */ + _onIronItemsChanged(event: CustomEvent|null): void; + + /** + * Handler that is called when a shift+tab keypress is detected by the menu. + * + * @param event A key combination event. + */ + _onShiftTabDown(event: CustomEvent|null): void; + + /** + * Handler that is called when the menu receives focus. + * + * @param event A focus event. + */ + _onFocus(event: FocusEvent|null): void; + + /** + * Handler that is called when the up key is pressed. + * + * @param event A key combination event. + */ + _onUpKey(event: CustomEvent|null): void; + + /** + * Handler that is called when the down key is pressed. + * + * @param event A key combination event. + */ + _onDownKey(event: CustomEvent|null): void; + + /** + * Handler that is called when the esc key is pressed. + * + * @param event A key combination event. + */ + _onEscKey(event: CustomEvent|null): void; + + /** + * Handler that is called when a keydown event is detected. + * + * @param event A keyboard event. + */ + _onKeydown(event: KeyboardEvent|null): void; + + /** + * Updates this element's tab index when it's enabled/disabled. + */ + _disabledChanged(disabled: boolean): void; + } + + const IronMenuBehavior: object; +} diff --git a/bower_components/iron-menu-behavior/iron-menu-behavior.html b/bower_components/iron-menu-behavior/iron-menu-behavior.html new file mode 100644 index 00000000..bfa04044 --- /dev/null +++ b/bower_components/iron-menu-behavior/iron-menu-behavior.html @@ -0,0 +1,439 @@ + + + + + + + diff --git a/bower_components/iron-menu-behavior/iron-menubar-behavior.d.ts b/bower_components/iron-menu-behavior/iron-menubar-behavior.d.ts new file mode 100644 index 00000000..83d9a097 --- /dev/null +++ b/bower_components/iron-menu-behavior/iron-menubar-behavior.d.ts @@ -0,0 +1,31 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-menubar-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * `Polymer.IronMenubarBehavior` implements accessible menubar behavior. + */ + interface IronMenubarBehavior extends Polymer.IronMenuBehavior { + keyBindings: object; + hostAttributes: object|null; + readonly _isRTL: any; + _onUpKey(event: any): void; + _onDownKey(event: any): void; + _onKeydown(event: any): void; + _onLeftKey(event: any): void; + _onRightKey(event: any): void; + } + + const IronMenubarBehavior: object; +} diff --git a/bower_components/iron-menu-behavior/iron-menubar-behavior.html b/bower_components/iron-menu-behavior/iron-menubar-behavior.html new file mode 100644 index 00000000..dd3e7991 --- /dev/null +++ b/bower_components/iron-menu-behavior/iron-menubar-behavior.html @@ -0,0 +1,75 @@ + + + + + + diff --git a/bower_components/iron-menu-behavior/package-lock.json b/bower_components/iron-menu-behavior/package-lock.json new file mode 100644 index 00000000..791516ed --- /dev/null +++ b/bower_components/iron-menu-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-menu-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-menu-behavior/package.json b/bower_components/iron-menu-behavior/package.json new file mode 100644 index 00000000..c0402332 --- /dev/null +++ b/bower_components/iron-menu-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-menu-behavior", + "private": true, + "description": "Provides accessible menu behavior", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-menu-behavior" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-menu-behavior/test/index.html b/bower_components/iron-menu-behavior/test/index.html new file mode 100644 index 00000000..a9090751 --- /dev/null +++ b/bower_components/iron-menu-behavior/test/index.html @@ -0,0 +1,33 @@ + + + iron-menu-behavior tests + + + + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/test/iron-menu-behavior.html b/bower_components/iron-menu-behavior/test/iron-menu-behavior.html new file mode 100644 index 00000000..ec1a4acd --- /dev/null +++ b/bower_components/iron-menu-behavior/test/iron-menu-behavior.html @@ -0,0 +1,754 @@ + + + + + + iron-menu-behavior tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html b/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html new file mode 100644 index 00000000..71f02c05 --- /dev/null +++ b/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html @@ -0,0 +1,207 @@ + + + + + + iron-menubar-behavior tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/test/test-menu.html b/bower_components/iron-menu-behavior/test/test-menu.html new file mode 100644 index 00000000..b7336554 --- /dev/null +++ b/bower_components/iron-menu-behavior/test/test-menu.html @@ -0,0 +1,41 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/test/test-menubar.html b/bower_components/iron-menu-behavior/test/test-menubar.html new file mode 100644 index 00000000..e54d9647 --- /dev/null +++ b/bower_components/iron-menu-behavior/test/test-menubar.html @@ -0,0 +1,41 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-menu-behavior/test/test-nested-menu.html b/bower_components/iron-menu-behavior/test/test-nested-menu.html new file mode 100644 index 00000000..8c85109c --- /dev/null +++ b/bower_components/iron-menu-behavior/test/test-nested-menu.html @@ -0,0 +1,42 @@ + + + + + + + + + + diff --git a/bower_components/iron-meta/.bower.json b/bower_components/iron-meta/.bower.json new file mode 100644 index 00000000..e5b40aa5 --- /dev/null +++ b/bower_components/iron-meta/.bower.json @@ -0,0 +1,58 @@ +{ + "name": "iron-meta", + "version": "2.1.1", + "keywords": [ + "web-components", + "polymer" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Useful for sharing information across a DOM tree", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-meta.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "test-fixture": "polymerelements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "main": "iron-meta.html", + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-meta", + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "d9cd307d9faf2acc9e8f79a31d852c7851c35620" + }, + "_source": "https://github.com/PolymerElements/iron-meta.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-meta" +} \ No newline at end of file diff --git a/bower_components/iron-meta/.github/CODEOWNERS b/bower_components/iron-meta/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-meta/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md b/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..2e817113 --- /dev/null +++ b/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-meta/.gitignore b/bower_components/iron-meta/.gitignore new file mode 100644 index 00000000..7bf6eb18 --- /dev/null +++ b/bower_components/iron-meta/.gitignore @@ -0,0 +1,2 @@ +bower_components +node_modules diff --git a/bower_components/iron-meta/.travis.yml b/bower_components/iron-meta/.travis.yml new file mode 100644 index 00000000..3a78c402 --- /dev/null +++ b/bower_components/iron-meta/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + mjikUCoN+UpTbFHwbGXUoKp4vtZ2qNN1JYW79WcOik7fCFmvdFzfYQPDa6y9aJvU3kgkDndGdR/ynLG4kejZjmqTS5fYtdHEwpPVPapbVYnquJvCJKbMN4S2QpGCoq51pjKQ8U3Ys6G5HkmdcDfw3SKk1uMgVzKV7fEI+6WnZ/M= + - secure: >- + LHDnBtwK7yO2X4GNmIaAl7t85WWc1U189OiPqemD27+jTcKml0by1n9Mu/yrg94jYgeXab9mHgU3uMtIdQstNNwTDu8CgmmIP4H2EWopHrTi3KM7Z7aeofPgMJsVFXwg+WhNlcCfhEsygHZWTxjJXM4fcGOrFPDa4+BTgRa2hEE= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-meta/CONTRIBUTING.md b/bower_components/iron-meta/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-meta/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-meta/README.md b/bower_components/iron-meta/README.md new file mode 100644 index 00000000..1eecb040 --- /dev/null +++ b/bower_components/iron-meta/README.md @@ -0,0 +1,10 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-meta.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-meta) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-meta) + +## <iron-meta> + +`iron-meta` is a generic element you can use for sharing information across the DOM tree. +It uses [monostate pattern](http://c2.com/cgi/wiki?MonostatePattern) such that any +instance of iron-meta has access to the shared +information. You can use `iron-meta` to share whatever you want (or create an extension +[like x-meta] for enhancements). diff --git a/bower_components/iron-meta/bower.json b/bower_components/iron-meta/bower.json new file mode 100644 index 00000000..9a11cc78 --- /dev/null +++ b/bower_components/iron-meta/bower.json @@ -0,0 +1,48 @@ +{ + "name": "iron-meta", + "version": "2.1.1", + "keywords": [ + "web-components", + "polymer" + ], + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Useful for sharing information across a DOM tree", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-meta.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "test-fixture": "polymerelements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "main": "iron-meta.html", + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-meta/demo/index.html b/bower_components/iron-meta/demo/index.html new file mode 100644 index 00000000..dcd0d43f --- /dev/null +++ b/bower_components/iron-meta/demo/index.html @@ -0,0 +1,75 @@ + + + + + + + + + iron-meta + + + + + + + +
    +

    <iron-meta>

    +

    Key Query

    + + + + The value stored at key="info" is . +
    + +
    +

    Type Query

    + + + + + + + The value(s) stored at type="type1" are:
    .

    The value(s) stored at type="type2" are:
    . +
    + + + + + diff --git a/bower_components/iron-meta/gen-tsd.json b/bower_components/iron-meta/gen-tsd.json new file mode 100644 index 00000000..195c463f --- /dev/null +++ b/bower_components/iron-meta/gen-tsd.json @@ -0,0 +1,7 @@ +{ + "addReferences": { + "iron-meta.d.ts": [ + "iron-meta-extra.d.ts" + ] + } +} diff --git a/bower_components/iron-meta/hero.svg b/bower_components/iron-meta/hero.svg new file mode 100755 index 00000000..ea8548dc --- /dev/null +++ b/bower_components/iron-meta/hero.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-meta/index.html b/bower_components/iron-meta/index.html new file mode 100644 index 00000000..dce83623 --- /dev/null +++ b/bower_components/iron-meta/index.html @@ -0,0 +1,27 @@ + + + + + + + + iron-meta + + + + + + + + + + + diff --git a/bower_components/iron-meta/iron-meta-extra.d.ts b/bower_components/iron-meta/iron-meta-extra.d.ts new file mode 100644 index 00000000..278a7c8f --- /dev/null +++ b/bower_components/iron-meta/iron-meta-extra.d.ts @@ -0,0 +1,18 @@ +declare namespace Polymer { + + class IronMeta { + constructor(options?: { + type: string|null|undefined, + key: string|null|undefined, + value: any, + }); + + static types: {[type: string]: {[key: string]: any}}; + + value: any; + + readonly list: any[]|undefined; + + byKey(key: string): any; + } +} diff --git a/bower_components/iron-meta/iron-meta.d.ts b/bower_components/iron-meta/iron-meta.d.ts new file mode 100644 index 00000000..b4bc5bdd --- /dev/null +++ b/bower_components/iron-meta/iron-meta.d.ts @@ -0,0 +1,85 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-meta.html + */ + +/// +/// + +/** + * `iron-meta` is a generic element you can use for sharing information across the DOM tree. + * It uses [monostate pattern](http://c2.com/cgi/wiki?MonostatePattern) such that any + * instance of iron-meta has access to the shared + * information. You can use `iron-meta` to share whatever you want (or create an extension + * [like x-meta] for enhancements). + * + * The `iron-meta` instances containing your actual data can be loaded in an import, + * or constructed in any way you see fit. The only requirement is that you create them + * before you try to access them. + * + * Examples: + * + * If I create an instance like this: + * + * + * + * Note that value="foo/bar" is the metadata I've defined. I could define more + * attributes or use child nodes to define additional metadata. + * + * Now I can access that element (and it's metadata) from any iron-meta instance + * via the byKey method, e.g. + * + * meta.byKey('info'); + * + * Pure imperative form would be like: + * + * document.createElement('iron-meta').byKey('info'); + * + * Or, in a Polymer element, you can include a meta in your template: + * + * + * ... + * this.$.meta.byKey('info'); + */ +interface IronMetaElement extends Polymer.Element { + + /** + * The type of meta-data. All meta-data of the same type is stored + * together. + */ + type: string; + + /** + * The key used to store `value` under the `type` namespace. + */ + key: string|null; + + /** + * The meta-data to store or retrieve. + */ + value: any; + + /** + * If true, `value` is set to the iron-meta instance itself. + */ + self: boolean|null|undefined; + hostAttributes: object|null; + readonly list: any; + _selfChanged(self: any): void; + + /** + * Retrieves meta data value by key. + * + * @param key The key of the meta-data to be returned. + */ + byKey(key: string): any; +} + +interface HTMLElementTagNameMap { + "iron-meta": IronMetaElement; +} diff --git a/bower_components/iron-meta/iron-meta.html b/bower_components/iron-meta/iron-meta.html new file mode 100644 index 00000000..51f2f168 --- /dev/null +++ b/bower_components/iron-meta/iron-meta.html @@ -0,0 +1,207 @@ + + + + + + + diff --git a/bower_components/iron-meta/package-lock.json b/bower_components/iron-meta/package-lock.json new file mode 100644 index 00000000..a0eb2a2e --- /dev/null +++ b/bower_components/iron-meta/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-meta", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-meta/package.json b/bower_components/iron-meta/package.json new file mode 100644 index 00000000..981c4ba1 --- /dev/null +++ b/bower_components/iron-meta/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-meta", + "private": true, + "description": "Useful for sharing information across a DOM tree", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-meta.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-meta/test/basic.html b/bower_components/iron-meta/test/basic.html new file mode 100644 index 00000000..9a437c3d --- /dev/null +++ b/bower_components/iron-meta/test/basic.html @@ -0,0 +1,49 @@ + + + + + + + iron-meta-basic + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-meta/test/index.html b/bower_components/iron-meta/test/index.html new file mode 100644 index 00000000..c517baae --- /dev/null +++ b/bower_components/iron-meta/test/index.html @@ -0,0 +1,29 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-meta/test/iron-meta.html b/bower_components/iron-meta/test/iron-meta.html new file mode 100644 index 00000000..0a0b89cf --- /dev/null +++ b/bower_components/iron-meta/test/iron-meta.html @@ -0,0 +1,215 @@ + + + + + + + iron-meta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/.bower.json b/bower_components/iron-overlay-behavior/.bower.json new file mode 100644 index 00000000..89e3bd01 --- /dev/null +++ b/bower_components/iron-overlay-behavior/.bower.json @@ -0,0 +1,70 @@ +{ + "name": "iron-overlay-behavior", + "version": "2.3.4", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Provides a behavior for making an element an overlay", + "private": true, + "main": "iron-overlay-behavior.html", + "keywords": [ + "web-components", + "polymer", + "behavior", + "overlay" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-overlay-behavior.git" + }, + "dependencies": { + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", + "iron-fit-behavior": "PolymerElements/iron-fit-behavior#1 - 2", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", + "iron-fit-behavior": "PolymerElements/iron-fit-behavior#^1.0.0", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-overlay-behavior", + "_release": "2.3.4", + "_resolution": { + "type": "version", + "tag": "v2.3.4", + "commit": "a2158a41a035616764f9ac4780410ba1c22886de" + }, + "_source": "https://github.com/PolymerElements/iron-overlay-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-overlay-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-overlay-behavior/.github/CODEOWNERS b/bower_components/iron-overlay-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-overlay-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..9925d374 --- /dev/null +++ b/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-overlay-behavior/.gitignore b/bower_components/iron-overlay-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-overlay-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-overlay-behavior/.travis.yml b/bower_components/iron-overlay-behavior/.travis.yml new file mode 100644 index 00000000..2e6aa26c --- /dev/null +++ b/bower_components/iron-overlay-behavior/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Project has not been formatted. Please run "npm run + format" or update the formatconfig.json.' && false) +env: + global: + - secure: >- + ZE4MrCc8vi6hb2WDctjBf9Y7wmYm0tbknPCX0TR+ks0eEXt2ZkWOvMGCw6sKvL1SsrUzhSOQiAc3IFCZBZ6vA1DUCo6S+4O8IvH+VawsK34arI7PIN7UhTDRmudzDwYKJHToRGVFffM1Y5vmNOBNj7hyiQp/UP0hz8vWLpQKyNw= + - secure: >- + IDwaZdFRon3lTOOZsoGXFUTJayvthgm5JTigYlOtVq6CVlJQBShveehe08fHAhb0XkpFyTFxBsricOUc2DOlyK9ds+DE9rRlIml+BuCrmvfCFvxX4loRg5tibKrRT9mrHNhJRwZiL4WbsGTskMpWGorgkO9qMJSJ9sAabjCJrmM= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-overlay-behavior/CONTRIBUTING.md b/bower_components/iron-overlay-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-overlay-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-overlay-behavior/README.md b/bower_components/iron-overlay-behavior/README.md new file mode 100644 index 00000000..979118cc --- /dev/null +++ b/bower_components/iron-overlay-behavior/README.md @@ -0,0 +1,67 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-overlay-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-overlay-behavior) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-overlay-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-overlay-behavior)_ + + +## Polymer.IronOverlayBehavior + +Use `Polymer.IronOverlayBehavior` to implement an element that can be hidden or shown, and displays +on top of other content. It includes an optional backdrop, and can be used to implement a variety +of UI controls including dialogs and drop downs. Multiple overlays may be displayed at once. + +See the [demo source code](https://github.com/PolymerElements/iron-overlay-behavior/blob/master/demo/simple-overlay.html) +for an example. + +### Changes in 2.0 +- Focus wrapping is not guaranteed to work for elements with `tabindex > 0`, see more details [here](https://github.com/PolymerElements/iron-overlay-behavior/pull/241). +Consider overriding [`_focusableNodes`](http://jsbin.com/siwutox/1/edit) or using the [Blocking Elements polyfill](https://github.com/PolymerLabs/blockingElements). + +### Closing and canceling + +An overlay may be hidden by closing or canceling. The difference between close and cancel is user +intent. Closing generally implies that the user acknowledged the content on the overlay. By default, +it will cancel whenever the user taps outside it or presses the escape key. This behavior is +configurable with the `no-cancel-on-esc-key` and the `no-cancel-on-outside-click` properties. +`close()` should be called explicitly by the implementer when the user interacts with a control +in the overlay element. When the dialog is canceled, the overlay fires an 'iron-overlay-canceled' +event. Call `preventDefault` on this event to prevent the overlay from closing. + +### Positioning + +By default the element is sized and positioned to fit and centered inside the window. You can +position and size it manually using CSS. See `Polymer.IronFitBehavior`. + +### Backdrop + +Set the `with-backdrop` attribute to display a backdrop behind the overlay. The backdrop is +appended to `` and is of type ``. See its doc page for styling +options. + +In addition, `with-backdrop` will wrap the focus within the content in the light DOM. +Override the [`_focusableNodes` getter](#Polymer.IronOverlayBehavior:property-_focusableNodes) +to achieve a different behavior. + +### Limitations + +The element is styled to appear on top of other content by setting its `z-index` property. You +must ensure no element has a stacking context with a higher `z-index` than its parent stacking +context. You should place this element as a child of `` whenever possible. + +## <iron-overlay-backdrop> + +`iron-overlay-backdrop` is a backdrop used by `Polymer.IronOverlayBehavior`. It should be a +singleton. + +### Styling + +The following custom properties and mixins are available for styling. + +| Custom property | Description | Default | +| --- | --- | --- | +| `--iron-overlay-backdrop-background-color` | Backdrop background color | #000 | +| `--iron-overlay-backdrop-opacity` | Backdrop opacity | 0.6 | +| `--iron-overlay-backdrop` | Mixin applied to `iron-overlay-backdrop`. | {} | +| `--iron-overlay-backdrop-opened` | Mixin applied to `iron-overlay-backdrop` when it is displayed | {} | + + diff --git a/bower_components/iron-overlay-behavior/bower.json b/bower_components/iron-overlay-behavior/bower.json new file mode 100644 index 00000000..26b654fc --- /dev/null +++ b/bower_components/iron-overlay-behavior/bower.json @@ -0,0 +1,60 @@ +{ + "name": "iron-overlay-behavior", + "version": "2.3.4", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Provides a behavior for making an element an overlay", + "private": true, + "main": "iron-overlay-behavior.html", + "keywords": [ + "web-components", + "polymer", + "behavior", + "overlay" + ], + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-overlay-behavior.git" + }, + "dependencies": { + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", + "iron-fit-behavior": "PolymerElements/iron-fit-behavior#1 - 2", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", + "iron-fit-behavior": "PolymerElements/iron-fit-behavior#^1.0.0", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-overlay-behavior/demo/index.html b/bower_components/iron-overlay-behavior/demo/index.html new file mode 100644 index 00000000..61be62d0 --- /dev/null +++ b/bower_components/iron-overlay-behavior/demo/index.html @@ -0,0 +1,325 @@ + + + + + + + simple-overlay demo + + + + + + + + + + + + + + + + + + + + +

    An element with IronOverlayBehavior can be opened, closed, toggled.

    + + + + +

    Use with-backdrop to add a backdrop to your overlay. Tabbing will be trapped within the overlay.

    + + + + +

    Use restore-focus-on-close to return the focus to the element that opened the overlay when it gets closed.

    + + + + +

    The child with autofocus gets focused when opening the overlay.

    + + + + +

    Multiple overlays can be opened.

    + + + + +

    Use always-on-top to keep the overlay on top of others.

    + + + + +

    An element with IronOverlayBehavior can be scrollable or contain scrollable content.

    + + + + +

    Use allow-click-through to allow click events to be handled by overlays below the top overlay.

    + + + + +

    Use scroll-action to lock, refit or cancel an overlay on scroll.

    + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-overlay-behavior/demo/simple-overlay.html b/bower_components/iron-overlay-behavior/demo/simple-overlay.html new file mode 100644 index 00000000..b1449f8c --- /dev/null +++ b/bower_components/iron-overlay-behavior/demo/simple-overlay.html @@ -0,0 +1,40 @@ + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/index.html b/bower_components/iron-overlay-behavior/index.html new file mode 100644 index 00000000..d69e3044 --- /dev/null +++ b/bower_components/iron-overlay-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-overlay-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/iron-focusables-helper.d.ts b/bower_components/iron-overlay-behavior/iron-focusables-helper.d.ts new file mode 100644 index 00000000..d1a1d411 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-focusables-helper.d.ts @@ -0,0 +1,12 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-focusables-helper.html + */ + +/// + diff --git a/bower_components/iron-overlay-behavior/iron-focusables-helper.html b/bower_components/iron-overlay-behavior/iron-focusables-helper.html new file mode 100644 index 00000000..ea4cd060 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-focusables-helper.html @@ -0,0 +1,219 @@ + + + + + diff --git a/bower_components/iron-overlay-behavior/iron-overlay-backdrop.d.ts b/bower_components/iron-overlay-behavior/iron-overlay-backdrop.d.ts new file mode 100644 index 00000000..4a3dc895 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-overlay-backdrop.d.ts @@ -0,0 +1,61 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-overlay-backdrop.html + */ + +/// + +/** + * `iron-overlay-backdrop` is a backdrop used by `Polymer.IronOverlayBehavior`. It should be a + * singleton. + * + * ### Styling + * + * The following custom properties and mixins are available for styling. + * + * Custom property | Description | Default + * -------------------------------------------|------------------------|--------- + * `--iron-overlay-backdrop-background-color` | Backdrop background color | #000 + * `--iron-overlay-backdrop-opacity` | Backdrop opacity | 0.6 + * `--iron-overlay-backdrop` | Mixin applied to `iron-overlay-backdrop`. | {} + * `--iron-overlay-backdrop-opened` | Mixin applied to `iron-overlay-backdrop` when it is displayed | {} + */ +interface IronOverlayBackdropElement extends Polymer.Element { + + /** + * Returns true if the backdrop is opened. + */ + opened: boolean|null|undefined; + created(): void; + attached(): void; + + /** + * Appends the backdrop to document body if needed. + */ + prepare(): void; + + /** + * Shows the backdrop. + */ + open(): void; + + /** + * Hides the backdrop. + */ + close(): void; + + /** + * Removes the backdrop from document body if needed. + */ + complete(): void; + _onTransitionend(event: any): void; +} + +interface HTMLElementTagNameMap { + "iron-overlay-backdrop": IronOverlayBackdropElement; +} diff --git a/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html b/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html new file mode 100644 index 00000000..b3a7a9ff --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/iron-overlay-behavior.d.ts b/bower_components/iron-overlay-behavior/iron-overlay-behavior.d.ts new file mode 100644 index 00000000..6cd0bc81 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-overlay-behavior.d.ts @@ -0,0 +1,276 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-overlay-behavior.html + */ + +/// +/// +/// +/// +/// +/// + +declare namespace Polymer { + + interface IronOverlayBehaviorImpl { + + /** + * True if the overlay is currently displayed. + */ + opened: boolean|null|undefined; + + /** + * True if the overlay was canceled when it was last closed. + */ + readonly canceled: boolean|null|undefined; + + /** + * Set to true to display a backdrop behind the overlay. It traps the focus + * within the light DOM of the overlay. + */ + withBackdrop: boolean|null|undefined; + + /** + * Set to true to disable auto-focusing the overlay or child nodes with + * the `autofocus` attribute` when the overlay is opened. + */ + noAutoFocus: boolean|null|undefined; + + /** + * Set to true to disable canceling the overlay with the ESC key. + */ + noCancelOnEscKey: boolean|null|undefined; + + /** + * Set to true to disable canceling the overlay by clicking outside it. + */ + noCancelOnOutsideClick: boolean|null|undefined; + + /** + * Contains the reason(s) this overlay was last closed (see + * `iron-overlay-closed`). `IronOverlayBehavior` provides the `canceled` + * reason; implementers of the behavior can provide other reasons in + * addition to `canceled`. + */ + closingReason: object|null|undefined; + + /** + * Set to true to enable restoring of focus when overlay is closed. + */ + restoreFocusOnClose: boolean|null|undefined; + + /** + * Set to true to allow clicks to go through overlays. + * When the user clicks outside this overlay, the click may + * close the overlay below. + */ + allowClickThrough: boolean|null|undefined; + + /** + * Set to true to keep overlay always on top. + */ + alwaysOnTop: boolean|null|undefined; + + /** + * Determines which action to perform when scroll outside an opened overlay + * happens. Possible values: lock - blocks scrolling from happening, refit - + * computes the new position on the overlay cancel - causes the overlay to + * close + */ + scrollAction: string|null|undefined; + + /** + * The node being focused. + */ + _focusedChild: Node|null; + + /** + * The backdrop element. + */ + readonly backdropElement: Element; + + /** + * Returns the node to give focus to. + */ + readonly _focusNode: Node; + + /** + * Array of nodes that can receive focus (overlay included), ordered by + * `tabindex`. This is used to retrieve which is the first and last focusable + * nodes in order to wrap the focus for overlays `with-backdrop`. + * + * If you know what is your content (specifically the first and last focusable + * children), you can override this method to return only `[firstFocusable, + * lastFocusable];` + */ + readonly _focusableNodes: Node[]; + ready(): void; + attached(): void; + detached(): void; + + /** + * Toggle the opened state of the overlay. + */ + toggle(): void; + + /** + * Open the overlay. + */ + open(): void; + + /** + * Close the overlay. + */ + close(): void; + + /** + * Cancels the overlay. + * + * @param event The original event + */ + cancel(event?: Event|null): void; + + /** + * Invalidates the cached tabbable nodes. To be called when any of the + * focusable content changes (e.g. a button is disabled). + */ + invalidateTabbables(): void; + _ensureSetup(): void; + + /** + * Called when `opened` changes. + */ + _openedChanged(opened?: boolean): void; + _canceledChanged(): void; + _withBackdropChanged(): void; + + /** + * tasks which must occur before opening; e.g. making the element visible. + */ + _prepareRenderOpened(): void; + + /** + * Tasks which cause the overlay to actually open; typically play an + * animation. + */ + _renderOpened(): void; + + /** + * Tasks which cause the overlay to actually close; typically play an + * animation. + */ + _renderClosed(): void; + + /** + * Tasks to be performed at the end of open action. Will fire + * `iron-overlay-opened`. + */ + _finishRenderOpened(): void; + + /** + * Tasks to be performed at the end of close action. Will fire + * `iron-overlay-closed`. + */ + _finishRenderClosed(): void; + _preparePositioning(): void; + _finishPositioning(): void; + + /** + * Applies focus according to the opened state. + */ + _applyFocus(): void; + + /** + * Cancels (closes) the overlay. Call when click happens outside the overlay. + */ + _onCaptureClick(event: Event): void; + + /** + * Keeps track of the focused child. If withBackdrop, traps focus within + * overlay. + */ + _onCaptureFocus(event: Event): void; + + /** + * Handles the ESC key event and cancels (closes) the overlay. + */ + _onCaptureEsc(event: Event): void; + + /** + * Handles TAB key events to track focus changes. + * Will wrap focus for overlays withBackdrop. + */ + _onCaptureTab(event: Event): void; + + /** + * Refits if the overlay is opened and not animating. + */ + _onIronResize(): void; + + /** + * Will call notifyResize if overlay is opened. + * Can be overridden in order to avoid multiple observers on the same node. + */ + _onNodesChange(): void; + } + + const IronOverlayBehaviorImpl: object; + + /** + * Use `Polymer.IronOverlayBehavior` to implement an element that can be hidden or + * shown, and displays on top of other content. It includes an optional backdrop, + * and can be used to implement a variety of UI controls including dialogs and drop + * downs. Multiple overlays may be displayed at once. + * + * See the [demo source + * code](https://github.com/PolymerElements/iron-overlay-behavior/blob/master/demo/simple-overlay.html) + * for an example. + * + * ### Closing and canceling + * + * An overlay may be hidden by closing or canceling. The difference between close + * and cancel is user intent. Closing generally implies that the user acknowledged + * the content on the overlay. By default, it will cancel whenever the user taps + * outside it or presses the escape key. This behavior is configurable with the + * `no-cancel-on-esc-key` and the `no-cancel-on-outside-click` properties. + * `close()` should be called explicitly by the implementer when the user interacts + * with a control in the overlay element. When the dialog is canceled, the overlay + * fires an 'iron-overlay-canceled' event. Call `preventDefault` on this event to + * prevent the overlay from closing. + * + * ### Positioning + * + * By default the element is sized and positioned to fit and centered inside the + * window. You can position and size it manually using CSS. See + * `Polymer.IronFitBehavior`. + * + * ### Backdrop + * + * Set the `with-backdrop` attribute to display a backdrop behind the overlay. The + * backdrop is appended to `` and is of type ``. See + * its doc page for styling options. + * + * In addition, `with-backdrop` will wrap the focus within the content in the light + * DOM. Override the [`_focusableNodes` + * getter](#Polymer.IronOverlayBehavior:property-_focusableNodes) to achieve a + * different behavior. + * + * ### Limitations + * + * The element is styled to appear on top of other content by setting its `z-index` + * property. You must ensure no element has a stacking context with a higher + * `z-index` than its parent stacking context. You should place this element as a + * child of `` whenever possible. + * + * + */ + interface IronOverlayBehavior extends Polymer.IronFitBehavior, Polymer.IronResizableBehavior, Polymer.IronOverlayBehaviorImpl { + } + + const IronOverlayBehavior: object; +} diff --git a/bower_components/iron-overlay-behavior/iron-overlay-behavior.html b/bower_components/iron-overlay-behavior/iron-overlay-behavior.html new file mode 100644 index 00000000..8dacd2b1 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-overlay-behavior.html @@ -0,0 +1,806 @@ + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/iron-overlay-manager.d.ts b/bower_components/iron-overlay-behavior/iron-overlay-manager.d.ts new file mode 100644 index 00000000..1d140b20 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-overlay-manager.d.ts @@ -0,0 +1,14 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-overlay-manager.html + */ + +/// +/// +/// + diff --git a/bower_components/iron-overlay-behavior/iron-overlay-manager.html b/bower_components/iron-overlay-behavior/iron-overlay-manager.html new file mode 100644 index 00000000..352aa9a5 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-overlay-manager.html @@ -0,0 +1,389 @@ + + + + + + + diff --git a/bower_components/iron-overlay-behavior/iron-scroll-manager.d.ts b/bower_components/iron-overlay-behavior/iron-scroll-manager.d.ts new file mode 100644 index 00000000..96bbf050 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-scroll-manager.d.ts @@ -0,0 +1,49 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-scroll-manager.html + */ + +/// + +declare namespace Polymer { + + /** + * The IronScrollManager is intended to provide a central source + * of authority and control over which elements in a document are currently + * allowed to scroll. + */ + namespace IronScrollManager { + + + /** + * Returns true if the provided element is "scroll locked", which is to + * say that it cannot be scrolled via pointer or keyboard interactions. + */ + function elementIsScrollLocked(element: HTMLElement): any; + + + /** + * Push an element onto the current scroll lock stack. The most recently + * pushed element and its children will be considered scrollable. All + * other elements will not be scrollable. + * + * Scroll locking is implemented as a stack so that cases such as + * dropdowns within dropdowns are handled well. + */ + function pushScrollLock(element: HTMLElement): void; + + + /** + * Remove an element from the scroll lock stack. The element being + * removed does not need to be the most recently pushed element. However, + * the scroll lock constraints only change when the most recently pushed + * element is removed. + */ + function removeScrollLock(element: HTMLElement): void; + } +} diff --git a/bower_components/iron-overlay-behavior/iron-scroll-manager.html b/bower_components/iron-overlay-behavior/iron-scroll-manager.html new file mode 100644 index 00000000..549b8693 --- /dev/null +++ b/bower_components/iron-overlay-behavior/iron-scroll-manager.html @@ -0,0 +1,391 @@ + + + + + diff --git a/bower_components/iron-overlay-behavior/package-lock.json b/bower_components/iron-overlay-behavior/package-lock.json new file mode 100644 index 00000000..a5360c6a --- /dev/null +++ b/bower_components/iron-overlay-behavior/package-lock.json @@ -0,0 +1,2162 @@ +{ + "name": "@polymer/iron-overlay-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-overlay-behavior/package.json b/bower_components/iron-overlay-behavior/package.json new file mode 100644 index 00000000..7a09c380 --- /dev/null +++ b/bower_components/iron-overlay-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-overlay-behavior", + "private": true, + "description": "Provides a behavior for making an element an overlay", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-overlay-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-overlay-behavior/test/index.html b/bower_components/iron-overlay-behavior/test/index.html new file mode 100644 index 00000000..312ef146 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/index.html @@ -0,0 +1,37 @@ + + + iron-overlay-behavior tests + + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html b/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html new file mode 100644 index 00000000..d053e10b --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html @@ -0,0 +1,192 @@ + + + + + + + iron-focusables-helper tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html b/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html new file mode 100644 index 00000000..5f0a11ef --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html @@ -0,0 +1,90 @@ + + + + + + + iron-overlay-backdrop tests + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/iron-overlay-behavior-scroll-actions.html b/bower_components/iron-overlay-behavior/test/iron-overlay-behavior-scroll-actions.html new file mode 100644 index 00000000..2eca7534 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/iron-overlay-behavior-scroll-actions.html @@ -0,0 +1,413 @@ + + + + + + + iron-overlay-behavior tests + + + + + + + + + + + + + + + + + +
    + This element makes the page scrollable. +
    + + + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html b/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html new file mode 100644 index 00000000..086febeb --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html @@ -0,0 +1,1595 @@ + + + + + + + iron-overlay-behavior tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-overlay-behavior/test/iron-scroll-manager.html b/bower_components/iron-overlay-behavior/test/iron-scroll-manager.html new file mode 100644 index 00000000..9816e08f --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/iron-scroll-manager.html @@ -0,0 +1,186 @@ + + + + + + + iron-dropdown-scroll-manager tests + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html b/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html new file mode 100644 index 00000000..2b0d5aa3 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html @@ -0,0 +1,36 @@ + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/test-buttons.html b/bower_components/iron-overlay-behavior/test/test-buttons.html new file mode 100644 index 00000000..ed099ae7 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/test-buttons.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/test-menu-button.html b/bower_components/iron-overlay-behavior/test/test-menu-button.html new file mode 100644 index 00000000..63b99955 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/test-menu-button.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/test-overlay.html b/bower_components/iron-overlay-behavior/test/test-overlay.html new file mode 100644 index 00000000..295db003 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/test-overlay.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/test-overlay2.html b/bower_components/iron-overlay-behavior/test/test-overlay2.html new file mode 100644 index 00000000..d0efea4d --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/test-overlay2.html @@ -0,0 +1,47 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/test-scrollable.html b/bower_components/iron-overlay-behavior/test/test-scrollable.html new file mode 100644 index 00000000..90a51ad1 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/test-scrollable.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + diff --git a/bower_components/iron-overlay-behavior/test/x-scrollable-element.html b/bower_components/iron-overlay-behavior/test/x-scrollable-element.html new file mode 100644 index 00000000..1ad78cc5 --- /dev/null +++ b/bower_components/iron-overlay-behavior/test/x-scrollable-element.html @@ -0,0 +1,51 @@ + + + + + + + + diff --git a/bower_components/iron-pages/.bower.json b/bower_components/iron-pages/.bower.json new file mode 100644 index 00000000..c0305191 --- /dev/null +++ b/bower_components/iron-pages/.bower.json @@ -0,0 +1,65 @@ +{ + "name": "iron-pages", + "version": "2.1.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Organizes a set of pages and shows one at a time", + "main": "iron-pages.html", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-pages.git" + }, + "keywords": [ + "web-components", + "polymer", + "container" + ], + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "iron-selector": "PolymerElements/iron-selector#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-resizable-behavior": "polymerelements/iron-resizable-behavior#^1.0.0", + "iron-selector": "polymerelements/iron-selector#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.2", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-pages", + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "a008884eb2c7f333ca3286a4e768357ef4602c97" + }, + "_source": "https://github.com/PolymerElements/iron-pages.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-pages" +} \ No newline at end of file diff --git a/bower_components/iron-pages/.github/CODEOWNERS b/bower_components/iron-pages/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-pages/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-pages/.github/ISSUE_TEMPLATE.md b/bower_components/iron-pages/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..8049a6c4 --- /dev/null +++ b/bower_components/iron-pages/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-pages/.gitignore b/bower_components/iron-pages/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-pages/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-pages/.travis.yml b/bower_components/iron-pages/.travis.yml new file mode 100644 index 00000000..beccbf98 --- /dev/null +++ b/bower_components/iron-pages/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + Nv52xUhhZNbvdXIs+8JV61yREtAZN5i2ZHO6uZVonGR/Y/U8SA3AcDjrPLd6VgFmasM58EpPGQGToK46r9C+h/jLWc7d/+7xn/9sphg6qQhQ5FkS/LYaTMmzCmonu79h/TqpuuYQWJqjEBM3LpoYJSMum/V34paPBU9AEK0Pd5A= + - secure: >- + fE00ZxqCvRMPXvSIghE/0wYbFORFGO4IFzaZbOxanAe7PBKDmdPBkzodo9BEgOw1cB2zw2uXMEYGf3jEZH+vens5ycngF8X/iQRCcPGpHjKIbkBtHvYQoi4ZwQf48GPtdBkMZLg7LcA4N2ScypU33X0q30hQ6BgzTduumuHlKCo= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-pages/CONTRIBUTING.md b/bower_components/iron-pages/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-pages/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-pages/README.md b/bower_components/iron-pages/README.md new file mode 100644 index 00000000..04554739 --- /dev/null +++ b/bower_components/iron-pages/README.md @@ -0,0 +1,33 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-pages.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-pages) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-pages) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-pages)_ + + +## <iron-pages> + +`iron-pages` is used to select one of its children to show. One use is to cycle through a list of +children "pages". + +Example: + +```html + +
    One
    +
    Two
    +
    Three
    +
    + + +``` + +### Notable breaking changes between 1.x and 2.x (hybrid): + +IronSelectableBehavior and IronMultiSelectableBehavior, which are used by +iron-pages, introduce multiple breaking changes. Please see the README for those +behaviors for more detail. diff --git a/bower_components/iron-pages/bower.json b/bower_components/iron-pages/bower.json new file mode 100644 index 00000000..8c788c65 --- /dev/null +++ b/bower_components/iron-pages/bower.json @@ -0,0 +1,55 @@ +{ + "name": "iron-pages", + "version": "2.1.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Organizes a set of pages and shows one at a time", + "main": "iron-pages.html", + "private": true, + "authors": [ + "The Polymer Authors" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-pages.git" + }, + "keywords": [ + "web-components", + "polymer", + "container" + ], + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "iron-selector": "PolymerElements/iron-selector#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-resizable-behavior": "polymerelements/iron-resizable-behavior#^1.0.0", + "iron-selector": "polymerelements/iron-selector#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.2", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-pages/demo/index.html b/bower_components/iron-pages/demo/index.html new file mode 100644 index 00000000..e68c2de1 --- /dev/null +++ b/bower_components/iron-pages/demo/index.html @@ -0,0 +1,150 @@ + + + + + + + iron-pages demo + + + + + + + + + + + + + + + + + +
    +

    iron-pages shows only one of its children at a time.

    + + + +
    + +
    +

    + <iron-pages> inherits functionality (for example, + attr-for-selected) from + IronSelectableBehavior. +

    + + + +
    + + diff --git a/bower_components/iron-pages/hero.svg b/bower_components/iron-pages/hero.svg new file mode 100755 index 00000000..fa127837 --- /dev/null +++ b/bower_components/iron-pages/hero.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-pages/index.html b/bower_components/iron-pages/index.html new file mode 100644 index 00000000..67ae0889 --- /dev/null +++ b/bower_components/iron-pages/index.html @@ -0,0 +1,25 @@ + + + + + + iron-pages + + + + + + + + + + + diff --git a/bower_components/iron-pages/iron-pages.d.ts b/bower_components/iron-pages/iron-pages.d.ts new file mode 100644 index 00000000..ea3c2d3f --- /dev/null +++ b/bower_components/iron-pages/iron-pages.d.ts @@ -0,0 +1,45 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-pages.html + */ + +/// +/// +/// + +/** + * `iron-pages` is used to select one of its children to show. One use is to cycle through a list of + * children "pages". + * + * Example: + * + * + *
    One
    + *
    Two
    + *
    Three
    + *
    + * + * + */ +interface IronPagesElement extends Polymer.Element, Polymer.IronResizableBehavior, Polymer.IronSelectableBehavior { + + /** + * handler immediately changes it back + */ + activateEvent: string|null|undefined; + _selectedPageChanged(selected: any, old: any): void; +} + +interface HTMLElementTagNameMap { + "iron-pages": IronPagesElement; +} diff --git a/bower_components/iron-pages/iron-pages.html b/bower_components/iron-pages/iron-pages.html new file mode 100644 index 00000000..3fa49ab6 --- /dev/null +++ b/bower_components/iron-pages/iron-pages.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + diff --git a/bower_components/iron-pages/package-lock.json b/bower_components/iron-pages/package-lock.json new file mode 100644 index 00000000..4f25e762 --- /dev/null +++ b/bower_components/iron-pages/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-pages", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-pages/package.json b/bower_components/iron-pages/package.json new file mode 100644 index 00000000..fa208e7b --- /dev/null +++ b/bower_components/iron-pages/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-pages", + "private": true, + "description": "Organizes a set of pages and shows one at a time", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-pages.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-pages/test/attr-for-selected.html b/bower_components/iron-pages/test/attr-for-selected.html new file mode 100644 index 00000000..047e8ab2 --- /dev/null +++ b/bower_components/iron-pages/test/attr-for-selected.html @@ -0,0 +1,97 @@ + + + + + + + iron-pages-attr-for-selected + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-pages/test/basic.html b/bower_components/iron-pages/test/basic.html new file mode 100644 index 00000000..1ffeb3a3 --- /dev/null +++ b/bower_components/iron-pages/test/basic.html @@ -0,0 +1,111 @@ + + + + + + + iron-pages-basic + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-pages/test/index.html b/bower_components/iron-pages/test/index.html new file mode 100644 index 00000000..bb8ff177 --- /dev/null +++ b/bower_components/iron-pages/test/index.html @@ -0,0 +1,34 @@ + + + + + + + + Tests + + + + + + + + + diff --git a/bower_components/iron-pages/test/nested-pages.html b/bower_components/iron-pages/test/nested-pages.html new file mode 100644 index 00000000..8532092b --- /dev/null +++ b/bower_components/iron-pages/test/nested-pages.html @@ -0,0 +1,37 @@ + + + + + + + diff --git a/bower_components/iron-pages/test/nested.html b/bower_components/iron-pages/test/nested.html new file mode 100644 index 00000000..cf2dcfb5 --- /dev/null +++ b/bower_components/iron-pages/test/nested.html @@ -0,0 +1,76 @@ + + + + + + + iron-pages-nested + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-range-behavior/.bower.json b/bower_components/iron-range-behavior/.bower.json new file mode 100644 index 00000000..bc8fbd07 --- /dev/null +++ b/bower_components/iron-range-behavior/.bower.json @@ -0,0 +1,55 @@ +{ + "name": "iron-range-behavior", + "version": "2.1.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Provides a behavior for something with a minimum and maximum value", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "behavior" + ], + "main": "iron-range-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-range-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-range-behavior", + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "dcc636b9fd86c8eeeb1cbd4cade2f6d34ebcb168" + }, + "_source": "https://github.com/PolymerElements/iron-range-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-range-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-range-behavior/.github/CODEOWNERS b/bower_components/iron-range-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-range-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..02739273 --- /dev/null +++ b/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-range-behavior/.gitignore b/bower_components/iron-range-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-range-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-range-behavior/.travis.yml b/bower_components/iron-range-behavior/.travis.yml new file mode 100644 index 00000000..6aa2f911 --- /dev/null +++ b/bower_components/iron-range-behavior/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + ioGoTHzroJHO2O9B8y/xB7dsnWY+dArvRF+Dem/0Z8yTJZ/QFCeqFctQXNdj7HIm/y7ZxetVFBnxr+0HbF62qdmVkvfBzD/TaQPeXOHSyrSbR2aAQLeSwRbcUyOmmtk/q0frf1o81i3inoLjrGKieCZq7U8VF/6YyfRDhouU5/Q= + - secure: >- + LxoITNXWo1Vh2dOlg0I/KI/wuEaiMpNPRcg8MN6TOwy6UIKPwlpA69YZ4eLNDnuCjndQHL7Cl/TA5njubss4UeXG+L3oQMGNBEcRSHGZGxEyTZpofJp5FFK3Ja9CpaBMB7IsWAwuGPJZXM/6aoyAVipJ1et2Gbbasd5EbQYjRwc= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-range-behavior/CONTRIBUTING.md b/bower_components/iron-range-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-range-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-range-behavior/README.md b/bower_components/iron-range-behavior/README.md new file mode 100644 index 00000000..c87d0e36 --- /dev/null +++ b/bower_components/iron-range-behavior/README.md @@ -0,0 +1,8 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-range-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-range-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-range-behavior)_ + + +## Polymer.IronRangeBehavior + +`iron-range-behavior` provides the behavior for something with a minimum to maximum range. diff --git a/bower_components/iron-range-behavior/bower.json b/bower_components/iron-range-behavior/bower.json new file mode 100644 index 00000000..c0979afa --- /dev/null +++ b/bower_components/iron-range-behavior/bower.json @@ -0,0 +1,45 @@ +{ + "name": "iron-range-behavior", + "version": "2.1.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Provides a behavior for something with a minimum and maximum value", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "behavior" + ], + "main": "iron-range-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-range-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-range-behavior/demo/index.html b/bower_components/iron-range-behavior/demo/index.html new file mode 100644 index 00000000..6e8548c8 --- /dev/null +++ b/bower_components/iron-range-behavior/demo/index.html @@ -0,0 +1,78 @@ + + + + + iron-range-behavior demo + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-range-behavior/index.html b/bower_components/iron-range-behavior/index.html new file mode 100644 index 00000000..cc777887 --- /dev/null +++ b/bower_components/iron-range-behavior/index.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-range-behavior/iron-range-behavior.d.ts b/bower_components/iron-range-behavior/iron-range-behavior.d.ts new file mode 100644 index 00000000..d8ed16ce --- /dev/null +++ b/bower_components/iron-range-behavior/iron-range-behavior.d.ts @@ -0,0 +1,53 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-range-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * `iron-range-behavior` provides the behavior for something with a minimum to + * maximum range. + */ + interface IronRangeBehavior { + + /** + * The number that represents the current value. + */ + value: number|null|undefined; + + /** + * The number that indicates the minimum value of the range. + */ + min: number|null|undefined; + + /** + * The number that indicates the maximum value of the range. + */ + max: number|null|undefined; + + /** + * Specifies the value granularity of the range's value. + */ + step: number|null|undefined; + + /** + * Returns the ratio of the value. + */ + readonly ratio: number|null|undefined; + _calcRatio(value: any): any; + _clampValue(value: any): any; + _calcStep(value: any): any; + _validateValue(): any; + _update(): void; + } + + const IronRangeBehavior: object; +} diff --git a/bower_components/iron-range-behavior/iron-range-behavior.html b/bower_components/iron-range-behavior/iron-range-behavior.html new file mode 100644 index 00000000..92f4e559 --- /dev/null +++ b/bower_components/iron-range-behavior/iron-range-behavior.html @@ -0,0 +1,97 @@ + + + + + diff --git a/bower_components/iron-range-behavior/package-lock.json b/bower_components/iron-range-behavior/package-lock.json new file mode 100644 index 00000000..836f3e43 --- /dev/null +++ b/bower_components/iron-range-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-range-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "8.10.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.7.tgz", + "integrity": "sha512-5QC0YAHH7aXzrrbgQ+faSeBKbJwTaUyYuaywYzDTr1Myz5C0knx5FHOV5QyhBeE1x8n2xfkBUGE/C0X1paLp+Q==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "8.10.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-range-behavior/package.json b/bower_components/iron-range-behavior/package.json new file mode 100644 index 00000000..7afb52a5 --- /dev/null +++ b/bower_components/iron-range-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-range-behavior", + "private": true, + "description": "Provides a behavior for something with a minimum and maximum value", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-range-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-range-behavior/test/basic.html b/bower_components/iron-range-behavior/test/basic.html new file mode 100644 index 00000000..21e77284 --- /dev/null +++ b/bower_components/iron-range-behavior/test/basic.html @@ -0,0 +1,178 @@ + + + + + + iron-range-behavior + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-range-behavior/test/index.html b/bower_components/iron-range-behavior/test/index.html new file mode 100644 index 00000000..6267e0e5 --- /dev/null +++ b/bower_components/iron-range-behavior/test/index.html @@ -0,0 +1,22 @@ + + + + Tests + + + + + + + diff --git a/bower_components/iron-range-behavior/test/x-progressbar.html b/bower_components/iron-range-behavior/test/x-progressbar.html new file mode 100644 index 00000000..2f0db85f --- /dev/null +++ b/bower_components/iron-range-behavior/test/x-progressbar.html @@ -0,0 +1,19 @@ + + + + + diff --git a/bower_components/iron-resizable-behavior/.bower.json b/bower_components/iron-resizable-behavior/.bower.json new file mode 100644 index 00000000..0b2a011b --- /dev/null +++ b/bower_components/iron-resizable-behavior/.bower.json @@ -0,0 +1,58 @@ +{ + "name": "iron-resizable-behavior", + "version": "2.1.0", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Coordinates the flow of resizeable elements", + "private": true, + "main": "iron-resizable-behavior.html", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/iron-resizable-behavior", + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "806e0807bd4253f446f8be624acf853069e36919" + }, + "_source": "https://github.com/PolymerElements/iron-resizable-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-resizable-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-resizable-behavior/.github/CODEOWNERS b/bower_components/iron-resizable-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/iron-resizable-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..b890b594 --- /dev/null +++ b/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-resizable-behavior/.gitignore b/bower_components/iron-resizable-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-resizable-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-resizable-behavior/.travis.yml b/bower_components/iron-resizable-behavior/.travis.yml new file mode 100644 index 00000000..c7d472cd --- /dev/null +++ b/bower_components/iron-resizable-behavior/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + Bsp8pa19FCij3Eee0P5eOE8ZrbylrYL99R9EIxH6rcDH+rxMhK0BIfSiXTPSFRk2iqJp++RIZN8kUu5GddetiXreRZDtnhXBA2QoYteIAS8Hzy9u2EggqI0UdGqbCiFHDVD/rEQyhSPiIfWHGCg/Moeo9J2k/eC2w6I8I9C15Zw= + - secure: >- + j9xIW/banUkkNaLrWVGcTsasAp64zEmZJQO+eY8ExINx3uLbDh5h6Foc7xWhJ4Yu7aey3+nH5BWKYimtPTYoXUD2nIWU31yBNbqU/+G6vIppDbgPHMRcVnRiO7YZ0yW1JunvKs+1lOPhOw4ibztJjGkQ2ZK9q6ZSJvQKRbo6Au0= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-resizable-behavior/CONTRIBUTING.md b/bower_components/iron-resizable-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-resizable-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-resizable-behavior/README.md b/bower_components/iron-resizable-behavior/README.md new file mode 100644 index 00000000..7ff2e12a --- /dev/null +++ b/bower_components/iron-resizable-behavior/README.md @@ -0,0 +1,22 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-resizable-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-resizable-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-resizable-behavior)_ + + +## Polymer.IronResizableBehavior + +`IronResizableBehavior` is a behavior that can be used in Polymer elements to +coordinate the flow of resize events between "resizers" (elements that control the +size or hidden state of their children) and "resizables" (elements that need to be +notified when they are resized or un-hidden by their parents in order to take +action on their new measurements). + +Elements that perform measurement should add the `IronResizableBehavior` behavior to +their element definition and listen for the `iron-resize` event on themselves. +This event will be fired when they become showing after having been hidden, +when they are resized explicitly by another resizable, or when the window has been +resized. + +Note, the `iron-resize` event is non-bubbling. + + diff --git a/bower_components/iron-resizable-behavior/bower.json b/bower_components/iron-resizable-behavior/bower.json new file mode 100644 index 00000000..845aeb98 --- /dev/null +++ b/bower_components/iron-resizable-behavior/bower.json @@ -0,0 +1,48 @@ +{ + "name": "iron-resizable-behavior", + "version": "2.0.1", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "Coordinates the flow of resizeable elements", + "private": true, + "main": "iron-resizable-behavior.html", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-resizable-behavior/demo/index.html b/bower_components/iron-resizable-behavior/demo/index.html new file mode 100644 index 00000000..2896c50d --- /dev/null +++ b/bower_components/iron-resizable-behavior/demo/index.html @@ -0,0 +1,29 @@ + + + + + + + iron-resizable-behavior demo + + + + + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/demo/src/x-app.html b/bower_components/iron-resizable-behavior/demo/src/x-app.html new file mode 100644 index 00000000..c4bfa67f --- /dev/null +++ b/bower_components/iron-resizable-behavior/demo/src/x-app.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/index.html b/bower_components/iron-resizable-behavior/index.html new file mode 100644 index 00000000..b9b88095 --- /dev/null +++ b/bower_components/iron-resizable-behavior/index.html @@ -0,0 +1,25 @@ + + + + + + + iron-resizable-behavior + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/iron-resizable-behavior.d.ts b/bower_components/iron-resizable-behavior/iron-resizable-behavior.d.ts new file mode 100644 index 00000000..3c2128fb --- /dev/null +++ b/bower_components/iron-resizable-behavior/iron-resizable-behavior.d.ts @@ -0,0 +1,83 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-resizable-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * `IronResizableBehavior` is a behavior that can be used in Polymer elements to + * coordinate the flow of resize events between "resizers" (elements that control the + * size or hidden state of their children) and "resizables" (elements that need to be + * notified when they are resized or un-hidden by their parents in order to take + * action on their new measurements). + * + * Elements that perform measurement should add the `IronResizableBehavior` behavior to + * their element definition and listen for the `iron-resize` event on themselves. + * This event will be fired when they become showing after having been hidden, + * when they are resized explicitly by another resizable, or when the window has been + * resized. + * + * Note, the `iron-resize` event is non-bubbling. + */ + interface IronResizableBehavior { + + /** + * The closest ancestor element that implements `IronResizableBehavior`. + */ + _parentResizable: object|null|undefined; + + /** + * True if this element is currently notifying its descendant elements of + * resize. + */ + _notifyingDescendant: boolean|null|undefined; + created(): void; + attached(): void; + detached(): void; + + /** + * Can be called to manually notify a resizable and its descendant + * resizables of a resize change. + */ + notifyResize(): void; + + /** + * Used to assign the closest resizable ancestor to this resizable + * if the ancestor detects a request for notifications. + */ + assignParentResizable(parentResizable: any): void; + + /** + * Used to remove a resizable descendant from the list of descendants + * that should be notified of a resize change. + */ + stopResizeNotificationsFor(target: any): void; + + /** + * This method can be overridden to filter nested elements that should or + * should not be notified by the current element. Return true if an element + * should be notified, or false if it should not be notified. + * + * @param element A candidate descendant element that + * implements `IronResizableBehavior`. + * @returns True if the `element` should be notified of resize. + */ + resizerShouldNotify(element: HTMLElement|null): boolean; + _onDescendantIronResize(event: any): void; + _fireResize(): void; + _onIronRequestResizeNotifications(event: any): void; + _parentResizableChanged(parentResizable: any): void; + _notifyDescendant(descendant: any): void; + _requestResizeNotifications(): void; + } + + const IronResizableBehavior: object; +} diff --git a/bower_components/iron-resizable-behavior/iron-resizable-behavior.html b/bower_components/iron-resizable-behavior/iron-resizable-behavior.html new file mode 100644 index 00000000..d77dde9c --- /dev/null +++ b/bower_components/iron-resizable-behavior/iron-resizable-behavior.html @@ -0,0 +1,214 @@ + + + + + diff --git a/bower_components/iron-resizable-behavior/package-lock.json b/bower_components/iron-resizable-behavior/package-lock.json new file mode 100644 index 00000000..e74ef225 --- /dev/null +++ b/bower_components/iron-resizable-behavior/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-resizable-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-resizable-behavior/package.json b/bower_components/iron-resizable-behavior/package.json new file mode 100644 index 00000000..5cbb08c4 --- /dev/null +++ b/bower_components/iron-resizable-behavior/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-resizable-behavior", + "private": true, + "description": "Coordinates the flow of resizeable elements", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-resizable-behavior/test/basic.html b/bower_components/iron-resizable-behavior/test/basic.html new file mode 100644 index 00000000..989f282c --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/basic.html @@ -0,0 +1,221 @@ + + + + + + + iron-resizable-behavior tests + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/test/imports.html b/bower_components/iron-resizable-behavior/test/imports.html new file mode 100644 index 00000000..8b30f620 --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/imports.html @@ -0,0 +1,44 @@ + + + + + + + + iron-resizable-behavior tests + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/test/index.html b/bower_components/iron-resizable-behavior/test/index.html new file mode 100644 index 00000000..578b0302 --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/index.html @@ -0,0 +1,31 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html b/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html new file mode 100644 index 00000000..1e8866a6 --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html @@ -0,0 +1,86 @@ + + + + + + + iron-resizable-behavior tests + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/test/test-elements.html b/bower_components/iron-resizable-behavior/test/test-elements.html new file mode 100644 index 00000000..d77b7656 --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/test-elements.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-resizable-behavior/test/x-resizable.html b/bower_components/iron-resizable-behavior/test/x-resizable.html new file mode 100644 index 00000000..0d6d6d1d --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/x-resizable.html @@ -0,0 +1,24 @@ + + + + diff --git a/bower_components/iron-resizable-behavior/test/x-resizer-parent.html b/bower_components/iron-resizable-behavior/test/x-resizer-parent.html new file mode 100644 index 00000000..9643bae5 --- /dev/null +++ b/bower_components/iron-resizable-behavior/test/x-resizer-parent.html @@ -0,0 +1,24 @@ + + + + diff --git a/bower_components/iron-scroll-target-behavior/.bower.json b/bower_components/iron-scroll-target-behavior/.bower.json new file mode 100644 index 00000000..7c97984e --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/.bower.json @@ -0,0 +1,59 @@ +{ + "name": "iron-scroll-target-behavior", + "version": "2.1.1", + "description": "Allows to define a scroller target", + "private": true, + "license": "http://polymer.github.io/LICENSE.txt", + "main": "iron-scroll-target-behavior.html", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "scroll" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" + }, + "homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "b552a9bd77854a92bb05ed49463c9960092d1b41" + }, + "_source": "https://github.com/PolymerElements/iron-scroll-target-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-scroll-target-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-scroll-target-behavior/.github/CODEOWNERS b/bower_components/iron-scroll-target-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..a70941e3 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @keanulee +/.travis.yml @azakus diff --git a/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..c430c402 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-scroll-target-behavior/.gitignore b/bower_components/iron-scroll-target-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-scroll-target-behavior/.travis.yml b/bower_components/iron-scroll-target-behavior/.travis.yml new file mode 100644 index 00000000..b08d7354 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +node_js: stable +addons: + firefox: latest + sauce_connect: true + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +env: + global: + - secure: >- + XVL/8kp3Mec8cVExKXhFaWVK/LRdxcXlqG/C9nwo+BZoVww+4yyI849mRxYui2s/Y9eOk8ymIMi/LK/p9XEkGjupag5dPDZ1m2LfwQ6RItBAftF4sMZQbJ6CoNuTTYoc1sSANMZD3NjbMXGTdShncUoYGvuF9EART6BYcmCulxFit4P9W9iY10TyEkzNpi/CHtudhbMrw0kquie7jYzeROS1Ko1z+RlqMEHc1+aVYVWKrAwONzMI8XpNYO+F2RE/5zdzxMC3gB6+KMaX6k0s971vpdMydjbkoLTOvYrL8/ah+v134hkBM90F1ilkbIm115zJCdMwHLO23WsOyOjFSQXwH/ZvzAAyGxAxAbG+dQw7xYwXVGL4S0bOuL721+frv0CtvwNGyhg7opGNiJzEMKZyRnZH0jIvznzxGJt0Z7g4YcM/E/lmFUmeIXUkmyjQ7Hi7HQiWOCBGpdQIbsLKQgOOeWM8t3bJGmO1f6Qel8fwtoO03MgAbq8H1gqchDaa/r4UHNvx8z3VYXlIUpjdbqZTuA4Jws5rOYcN0QO/LLthgs+Rc7lTDtbCS9yY54kg/OLtfyX7kKFh2apXBG5kMBf0pxfPF2CvnBzxUGff5PhcfIA0XBMjrpq2D5+40gNBwqaJrDY1Hlxj3YuDQIRkCTMimilOiu7R7rGokMdC5G0= + - secure: >- + gT1TAwHroUpQiQC5m+Le7TAybLn6ULv9coCsXxVEinvddcwXGksJoSSh7zMrKn0uiEj+9LGhb+clUZ2fILUWYfkiIhsoNuwGF5oqAHvbsl4ACF2dBewy2F9PnBtUM9u78I7iJEDYwJoAiGmAOzSe1MShZVzgua3V8WA+A7jfI9VlczcK8Bbc5zTB+j56//Pfx7rWmaMHfs+iGRobdER7AJkywwFxGpPcWIiwtjbzBrDTOkd98hR5DuHN8R8tb7earrhXk2jax6OUrVizo0owg35LpSSUtehOap5FvnM1BHXGeJa4PIU9leXOOFNiVPyzXstDfmt4C4ZavTlS8ZPus9yLktJnEqiEXCd2wdzOX7IDqnGcVlsQqq5BdQirglv6oMrFKSZyRX3Jcex089x2RmPXB+GYbsI5Dg+P+WgbxdkcFCfxiAYStrkZDyECYuOVkCCquZ/nfilMun+FzaOjQxRF0dAorT3CCCs7pytZc5dRMMYEFjOebidacMOSBzJgHu9VFijxb45SoU6GL9/iBAwksbR/bljpBdQPJZBNwDiQz63cJ7Jug6Y3PaXd2zdL9/Uvu7215mYHQFRDjHBm+0ldCS4L9LGDyEtpipX/uQaUYCtHNWzlhmhwj/5DLCSvzRfGzz8pLix93kssb5Tc7cYD+JBLW+jb8aKewZLhBQc= +dist: trusty +sudo: required diff --git a/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md b/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-scroll-target-behavior/README.md b/bower_components/iron-scroll-target-behavior/README.md new file mode 100644 index 00000000..d7861f80 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/README.md @@ -0,0 +1,28 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-scroll-target-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-scroll-target-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-scroll-target-behavior)_ + + +##Polymer.IronScrollTargetBehavior + +`Polymer.IronScrollTargetBehavior` allows an element to respond to scroll events from a +designated scroll target. + +Elements that consume this behavior can override the `_scrollHandler` +method to add logic on the scroll event. + + diff --git a/bower_components/iron-scroll-target-behavior/bower.json b/bower_components/iron-scroll-target-behavior/bower.json new file mode 100644 index 00000000..de302593 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/bower.json @@ -0,0 +1,50 @@ +{ + "name": "iron-scroll-target-behavior", + "version": "2.1.1", + "description": "Allows to define a scroller target", + "private": true, + "license": "http://polymer.github.io/LICENSE.txt", + "main": "iron-scroll-target-behavior.html", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "scroll" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" + }, + "homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-scroll-target-behavior/demo/document.html b/bower_components/iron-scroll-target-behavior/demo/document.html new file mode 100644 index 00000000..a5f45f79 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/demo/document.html @@ -0,0 +1,39 @@ + + + + + + + iron-scroll-target-behavior using the document scrolling + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html b/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html new file mode 100644 index 00000000..d60a1cf9 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html @@ -0,0 +1,51 @@ + + + + + + + iron-scroll-target-behavior using a scrolling region + + + + + + + + + + + + + +
    + +
    + + + diff --git a/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html b/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html new file mode 100644 index 00000000..ce9e2fae --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html @@ -0,0 +1,86 @@ + + + + + + + + + + + diff --git a/bower_components/iron-scroll-target-behavior/index.html b/bower_components/iron-scroll-target-behavior/index.html new file mode 100644 index 00000000..e48685ab --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/index.html @@ -0,0 +1,28 @@ + + + + + + + iron-scroll-target-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.d.ts b/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.d.ts new file mode 100644 index 00000000..2d676a35 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.d.ts @@ -0,0 +1,127 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-scroll-target-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * `Polymer.IronScrollTargetBehavior` allows an element to respond to scroll + * events from a designated scroll target. + * + * Elements that consume this behavior can override the `_scrollHandler` + * method to add logic on the scroll event. + */ + interface IronScrollTargetBehavior { + + /** + * Specifies the element that will handle the scroll event + * on the behalf of the current element. This is typically a reference to an + * element, but there are a few more posibilities: + * + * ### Elements id + * + * ```html + *
    + * + * + * + *
    + * ``` + * In this case, the `scrollTarget` will point to the outer div element. + * + * ### Document scrolling + * + * For document scrolling, you can use the reserved word `document`: + * + * ```html + * + * + * + * ``` + * + * ### Elements reference + * + * ```js + * appHeader.scrollTarget = document.querySelector('#scrollable-element'); + * ``` + */ + scrollTarget: HTMLElement|null; + + /** + * True if the event listener should be installed. + * + */ + _shouldHaveListener: boolean; + + /** + * The default scroll target. Consumers of this behavior may want to customize + * the default scroll target. + */ + readonly _defaultScrollTarget: any; + + /** + * Shortcut for the document element + */ + readonly _doc: any; + + /** + * Gets the number of pixels that the content of an element is scrolled + * upward. + */ + _scrollTop: any; + + /** + * Gets the number of pixels that the content of an element is scrolled to the + * left. + */ + _scrollLeft: any; + + /** + * Gets the width of the scroll target. + */ + readonly _scrollTargetWidth: any; + + /** + * Gets the height of the scroll target. + */ + readonly _scrollTargetHeight: any; + _scrollTargetChanged(scrollTarget: any, isAttached: any): void; + + /** + * Runs on every scroll event. Consumer of this behavior may override this + * method. + */ + _scrollHandler(): void; + + /** + * Scrolls the content to a particular place. + * + * @param leftOrOptions The left position or scroll options + * @param top The top position + */ + scroll(leftOrOptions: number|{left: number, top: number}, top?: number): void; + + /** + * Returns true if the scroll target is a valid HTMLElement. + */ + _isValidScrollTarget(): boolean; + _toggleScrollListener(yes: any, scrollTarget: any): void; + + /** + * Enables or disables the scroll event listener. + * + * @param yes True to add the event, False to remove it. + */ + toggleScrollListener(yes: boolean): void; + } + + const IronScrollTargetBehavior: object; +} diff --git a/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html b/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html new file mode 100644 index 00000000..2c9c82bf --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html @@ -0,0 +1,278 @@ + + + + + diff --git a/bower_components/iron-scroll-target-behavior/package-lock.json b/bower_components/iron-scroll-target-behavior/package-lock.json new file mode 100644 index 00000000..afc8f4d1 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/iron-scroll-target-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.4" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", + "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-scroll-target-behavior/package.json b/bower_components/iron-scroll-target-behavior/package.json new file mode 100644 index 00000000..2a11ee4a --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/iron-scroll-target-behavior", + "private": true, + "description": "Allows to define a scroller target", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/iron-scroll-target-behavior/test/basic.html b/bower_components/iron-scroll-target-behavior/test/basic.html new file mode 100644 index 00000000..2c60ac3c --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/test/basic.html @@ -0,0 +1,334 @@ + + + + + + iron-scroll-target-behavior test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-scroll-target-behavior/test/index.html b/bower_components/iron-scroll-target-behavior/test/index.html new file mode 100644 index 00000000..3a635272 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/test/index.html @@ -0,0 +1,28 @@ + + + + + + + + Tests + + + + + + + + + diff --git a/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html b/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html new file mode 100644 index 00000000..0bce7967 --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/bower_components/iron-scroll-target-behavior/test/x-scrollable.html b/bower_components/iron-scroll-target-behavior/test/x-scrollable.html new file mode 100644 index 00000000..08a542dc --- /dev/null +++ b/bower_components/iron-scroll-target-behavior/test/x-scrollable.html @@ -0,0 +1,59 @@ + + + + + + + + + + + diff --git a/bower_components/iron-selector/.bower.json b/bower_components/iron-selector/.bower.json new file mode 100644 index 00000000..3f50a384 --- /dev/null +++ b/bower_components/iron-selector/.bower.json @@ -0,0 +1,68 @@ +{ + "name": "iron-selector", + "version": "2.1.0", + "description": "Manages a set of elements that can be selected", + "private": true, + "license": "http://polymer.github.io/LICENSE.txt", + "main": [ + "iron-selector.html", + "iron-multi-selectable.html", + "iron-selectable.html", + "iron-selection.html" + ], + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "selector" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-selector.git" + }, + "homepage": "https://github.com/PolymerElements/iron-selector", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "82e8bf6bd3c3bf5a3605271e8ef1ee2cb68f053c" + }, + "_source": "https://github.com/PolymerElements/iron-selector.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-selector" +} \ No newline at end of file diff --git a/bower_components/iron-selector/.github/CODEOWNERS b/bower_components/iron-selector/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/iron-selector/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/iron-selector/.github/ISSUE_TEMPLATE.md b/bower_components/iron-selector/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..07a3448a --- /dev/null +++ b/bower_components/iron-selector/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-selector/.gitignore b/bower_components/iron-selector/.gitignore new file mode 100644 index 00000000..d9c7db73 --- /dev/null +++ b/bower_components/iron-selector/.gitignore @@ -0,0 +1,4 @@ +bower_components* +bower-*.json +.DS_Store +node_modules diff --git a/bower_components/iron-selector/.travis.yml b/bower_components/iron-selector/.travis.yml new file mode 100644 index 00000000..2d6d175f --- /dev/null +++ b/bower_components/iron-selector/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + SFfLw5U6C/7UFRyt/ho5AXNnf8E1d7bY6V9lPT2UnHjkNl4NldWyJEkBeaFTERChKmrYBNk33g748OGohL8snCRXCPxM9A/OKRWEGSFIvPmgLs8mkpbNodUAcpL6dbDLlZgcVDHXCn1uvVQgOgzg64FWW5ozphxD4u/nl5nA7aY= + - secure: >- + a6YFcuIvE3PJ9C0F7cimJ/R8EGlKy2rlg7Re2ezpL85f4++cYnYBUrNnbwj+BNp5F9IXZxvD6T+kNr+1BJtqILFf54W5baBgB5PVCSt7dry+lrcRUf5yTIRl0yJ+73UJrEWR2UOXaXlGzbQ56k2TWAbnzVbq2jik1vdgSnxbjLE= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-selector/CONTRIBUTING.md b/bower_components/iron-selector/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-selector/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-selector/README.md b/bower_components/iron-selector/README.md new file mode 100755 index 00000000..271a106c --- /dev/null +++ b/bower_components/iron-selector/README.md @@ -0,0 +1,102 @@ +[![Build status](https://travis-ci.org/PolymerElements/iron-selector.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-selector) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-selector) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-selector)_ + + +## <iron-selector> + + `iron-selector` is an element which can be used to manage a list of elements + that can be selected. Tapping on the item will make the item selected. The `selected` indicates + which item is being selected. The default is to use the index of the item. + + Example: + +```html + +
    Item 1
    +
    Item 2
    +
    Item 3
    +
    +``` + + If you want to use the attribute value of an element for `selected` instead of the index, + set `attrForSelected` to the name of the attribute. For example, if you want to select item by + `name`, set `attrForSelected` to `name`. + + Example: + +```html + +
    Foo
    +
    Bar
    +
    Zot
    +
    +``` + + You can specify a default fallback with `fallbackSelection` in case the `selected` attribute does + not match the `attrForSelected` attribute of any elements. + + Example: + +```html + +
    Foo
    +
    Bar
    +
    Default
    +
    +``` + + Note: When the selector is multi, the selection will set to `fallbackSelection` iff + the number of matching elements is zero. + + `iron-selector` is not styled. Use the `iron-selected` CSS class to style the selected element. + + Example: + +```html + + + ... + + +
    Item 1
    +
    Item 2
    +
    Item 3
    +
    +``` + +### Notable breaking changes between 1.x and 2.x (hybrid): + +#### IronSelectableBehavior + +- IronSelectableBehavior no longer updates its list of items synchronously + when it is connected to avoid triggering a situation introduced in the + Custom Elements v1 spec that might cause custom element reactions to be + called later than expected. + + If you are using an element with IronSelectableBehavior and ... + 1. are reading or writing properties of the element that depend on its + items (`items`, `selectedItems`, etc.) + 1. are performing these accesses after the element is created or connected + (attached) either **synchronously** or **after a timeout** + + ... you should wait for the element to dispatch an `iron-items-changed` + event instead. +- `Polymer.dom.flush()` no longer triggers the observer used by + IronSelectableBehavior to watch for changes to its items. You can call + `forceSynchronousItemUpdate` instead or, preferably, listen for the + `iron-items-changed` event. + +#### IronMultiSelectableBehavior + +- All breaking changes to IronSelectableBehavior listed above apply to + IronMultiSelectableBehavior. +- `selectedValues` and `selectedItems` now have empty arrays as default + values. This may cause bindings or observers of these properties to + trigger at start up when they previously had not. diff --git a/bower_components/iron-selector/bower.json b/bower_components/iron-selector/bower.json new file mode 100755 index 00000000..7a233b07 --- /dev/null +++ b/bower_components/iron-selector/bower.json @@ -0,0 +1,59 @@ +{ + "name": "iron-selector", + "version": "2.0.1", + "description": "Manages a set of elements that can be selected", + "private": true, + "license": "http://polymer.github.io/LICENSE.txt", + "main": [ + "iron-selector.html", + "iron-multi-selectable.html", + "iron-selectable.html", + "iron-selection.html" + ], + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "selector" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-selector.git" + }, + "homepage": "https://github.com/PolymerElements/iron-selector", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-selector/demo/index.html b/bower_components/iron-selector/demo/index.html new file mode 100644 index 00000000..b4b84dc2 --- /dev/null +++ b/bower_components/iron-selector/demo/index.html @@ -0,0 +1,104 @@ + + + + + + + iron-selector + + + + + + + + + + + + + + + + + +
    +

    Basic

    + + + + +

    Use multi to enable multiple selection.

    + + + + +

    + Use attr-for-selected to specify the attribute of the + selectable elements containing the selection key. +

    + + + + +

    + Use fallback-selection to provide an option to be selected + when all options are deselected or all selected options are invalid. +

    + + + +
    + + + diff --git a/bower_components/iron-selector/gen-tsd.json b/bower_components/iron-selector/gen-tsd.json new file mode 100644 index 00000000..ff975995 --- /dev/null +++ b/bower_components/iron-selector/gen-tsd.json @@ -0,0 +1,7 @@ +{ + "addReferences": { + "iron-selection.d.ts": [ + "iron-selection-extra.d.ts" + ] + } +} diff --git a/bower_components/iron-selector/index.html b/bower_components/iron-selector/index.html new file mode 100755 index 00000000..741693ce --- /dev/null +++ b/bower_components/iron-selector/index.html @@ -0,0 +1,28 @@ + + + + + + + iron-selector + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/iron-multi-selectable.d.ts b/bower_components/iron-selector/iron-multi-selectable.d.ts new file mode 100644 index 00000000..04f939c0 --- /dev/null +++ b/bower_components/iron-selector/iron-multi-selectable.d.ts @@ -0,0 +1,56 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-multi-selectable.html + */ + +/// +/// + +declare namespace Polymer { + + interface IronMultiSelectableBehavior extends Polymer.IronSelectableBehavior { + + /** + * UNUSED, FOR API COMPATIBILITY + */ + readonly _shouldUpdateSelection: any; + + /** + * If true, multiple selections are allowed. + */ + multi: boolean|null|undefined; + + /** + * Gets or sets the selected elements. This is used instead of `selected` when `multi` + * is true. + */ + selectedValues: any[]|null|undefined; + + /** + * Returns an array of currently selected items. + */ + readonly selectedItems: any[]|null|undefined; + + /** + * Selects the given value. If the `multi` property is true, then the selected state of the + * `value` will be toggled; otherwise the `value` will be selected. + * + * @param value the value to select. + */ + select(value: string|number): void; + _updateAttrForSelected(): void; + _updateSelected(): void; + _selectionChange(): void; + multiChanged(multi: any): void; + _selectMulti(values: any): void; + _toggleSelected(value: any): void; + _valuesToItems(values: any): any; + } + + const IronMultiSelectableBehavior: object; +} diff --git a/bower_components/iron-selector/iron-multi-selectable.html b/bower_components/iron-selector/iron-multi-selectable.html new file mode 100644 index 00000000..96051d8b --- /dev/null +++ b/bower_components/iron-selector/iron-multi-selectable.html @@ -0,0 +1,169 @@ + + + + + + diff --git a/bower_components/iron-selector/iron-selectable.d.ts b/bower_components/iron-selector/iron-selectable.d.ts new file mode 100644 index 00000000..57833d82 --- /dev/null +++ b/bower_components/iron-selector/iron-selectable.d.ts @@ -0,0 +1,155 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-selectable.html + */ + +/// +/// + +declare namespace Polymer { + + interface IronSelectableBehavior { + + /** + * If you want to use an attribute value or property of an element for + * `selected` instead of the index, set this to the name of the attribute + * or property. Hyphenated values are converted to camel case when used to + * look up the property of a selectable element. Camel cased values are + * *not* converted to hyphenated values for attribute lookup. It's + * recommended that you provide the hyphenated form of the name so that + * selection works in both cases. (Use `attr-or-property-name` instead of + * `attrOrPropertyName`.) + */ + attrForSelected: string|null|undefined; + + /** + * Gets or sets the selected element. The default is to use the index of the item. + */ + selected: string|number; + + /** + * Returns the currently selected item. + */ + readonly selectedItem: object|null; + + /** + * The event that fires from items when they are selected. Selectable + * will listen for this event from items and update the selection state. + * Set to empty string to listen to no events. + */ + activateEvent: string|null|undefined; + + /** + * This is a CSS selector string. If this is set, only items that match the CSS selector + * are selectable. + */ + selectable: string|null|undefined; + + /** + * The class to set on elements when selected. + */ + selectedClass: string|null|undefined; + + /** + * The attribute to set on elements when selected. + */ + selectedAttribute: string|null|undefined; + + /** + * Default fallback if the selection based on selected with `attrForSelected` + * is not found. + */ + fallbackSelection: string|null|undefined; + + /** + * The list of items from which a selection can be made. + */ + readonly items: any[]|null|undefined; + + /** + * The set of excluded elements where the key is the `localName` + * of the element that will be ignored from the item list. + */ + _excludedLocalNames: object|null|undefined; + + /** + * UNUSED, FOR API COMPATIBILITY + */ + readonly _shouldUpdateSelection: any; + created(): void; + attached(): void; + detached(): void; + + /** + * Returns the index of the given item. + * + * @returns Returns the index of the item + */ + indexOf(item: object|null): any; + + /** + * Selects the given value. + * + * @param value the value to select. + */ + select(value: string|number): void; + + /** + * Selects the previous item. + */ + selectPrevious(): void; + + /** + * Selects the next item. + */ + selectNext(): void; + + /** + * Selects the item at the given index. + */ + selectIndex(index: any): void; + + /** + * Force a synchronous update of the `items` property. + * + * NOTE: Consider listening for the `iron-items-changed` event to respond to + * updates to the set of selectable items after updates to the DOM list and + * selection state have been made. + * + * WARNING: If you are using this method, you should probably consider an + * alternate approach. Synchronously querying for items is potentially + * slow for many use cases. The `items` property will update asynchronously + * on its own to reflect selectable items in the DOM. + */ + forceSynchronousItemUpdate(): void; + _checkFallback(): void; + _addListener(eventName: any): void; + _removeListener(eventName: any): void; + _activateEventChanged(eventName: any, old: any): void; + _updateItems(): void; + _updateAttrForSelected(): void; + _updateSelected(): void; + _selectSelected(selected: any): void; + _filterItem(node: any): any; + _valueToItem(value: any): any; + _valueToIndex(value: any): any; + _indexToValue(index: any): any; + _valueForItem(item: any): any; + _applySelection(item: any, isSelected: any): void; + _selectionChange(): void; + + /** + * observe items change under the given node. + */ + _observeItems(node: any): any; + _activateHandler(e: any): void; + _itemActivate(value: any, item: any): void; + } + + const IronSelectableBehavior: object; +} diff --git a/bower_components/iron-selector/iron-selectable.html b/bower_components/iron-selector/iron-selectable.html new file mode 100644 index 00000000..30cd1e7b --- /dev/null +++ b/bower_components/iron-selector/iron-selectable.html @@ -0,0 +1,410 @@ + + + + + + diff --git a/bower_components/iron-selector/iron-selection-extra.d.ts b/bower_components/iron-selector/iron-selection-extra.d.ts new file mode 100644 index 00000000..b29b6c5b --- /dev/null +++ b/bower_components/iron-selector/iron-selection-extra.d.ts @@ -0,0 +1,60 @@ +declare namespace Polymer { + + class IronSelection { + constructor(selectCallback: Function); + + /** + * If true, multiple selections are allowed. + */ + multi: boolean; + + /** + * Retrieves the selected item(s). + * + * @returns Returns the selected item(s). If the multi property is true, + * `get` will return an array, otherwise it will return + * the selected item or undefined if there is no selection. + */ + get(): any|any[]|undefined; + + /** + * Clears all the selection except the ones indicated. + * + * @param excludes items to be excluded. + */ + clear(excludes: any[]|null): void; + + /** + * Indicates if a given item is selected. + * + * @param item The item whose selection state should be checked. + * @returns Returns true if `item` is selected. + */ + isSelected(item: any): boolean; + + /** + * Sets the selection state for a given item to either selected or + * deselected. + * + * @param item The item to select. + * @param isSelected True for selected, false for deselected. + */ + setItemSelected(item: any, isSelected: boolean): void; + + /** + * Sets the selection state for a given item. If the `multi` property + * is true, then the selected state of `item` will be toggled; otherwise + * the `item` will be selected. + * + * @param item The item to select. + */ + select(item: any): void; + + /** + * Toggles the selection state for `item`. + * + * @param item The item to toggle. + */ + toggle(item: any): void; + } +} diff --git a/bower_components/iron-selector/iron-selection.d.ts b/bower_components/iron-selector/iron-selection.d.ts new file mode 100644 index 00000000..2209ec68 --- /dev/null +++ b/bower_components/iron-selector/iron-selection.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-selection.html + */ + +/// +/// + diff --git a/bower_components/iron-selector/iron-selection.html b/bower_components/iron-selector/iron-selection.html new file mode 100644 index 00000000..0bca07da --- /dev/null +++ b/bower_components/iron-selector/iron-selection.html @@ -0,0 +1,120 @@ + + + + + + diff --git a/bower_components/iron-selector/iron-selector.d.ts b/bower_components/iron-selector/iron-selector.d.ts new file mode 100644 index 00000000..5c28458d --- /dev/null +++ b/bower_components/iron-selector/iron-selector.d.ts @@ -0,0 +1,19 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-selector.html + */ + +/// +/// + +interface IronSelectorElement extends Polymer.Element, Polymer.IronMultiSelectableBehavior { +} + +interface HTMLElementTagNameMap { + "iron-selector": IronSelectorElement; +} diff --git a/bower_components/iron-selector/iron-selector.html b/bower_components/iron-selector/iron-selector.html new file mode 100644 index 00000000..0ecc9fbc --- /dev/null +++ b/bower_components/iron-selector/iron-selector.html @@ -0,0 +1,87 @@ + + + + + + + diff --git a/bower_components/iron-selector/package-lock.json b/bower_components/iron-selector/package-lock.json new file mode 100644 index 00000000..22a1350a --- /dev/null +++ b/bower_components/iron-selector/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-selector", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-selector/package.json b/bower_components/iron-selector/package.json new file mode 100644 index 00000000..a99bbc4e --- /dev/null +++ b/bower_components/iron-selector/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-selector", + "private": true, + "description": "Manages a set of elements that can be selected", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-selector.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-selector/test/activate-event.html b/bower_components/iron-selector/test/activate-event.html new file mode 100644 index 00000000..71d459dd --- /dev/null +++ b/bower_components/iron-selector/test/activate-event.html @@ -0,0 +1,155 @@ + + + + + + + iron-selector-activate-event + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/attr-for-selected-elements.html b/bower_components/iron-selector/test/attr-for-selected-elements.html new file mode 100644 index 00000000..d9e4c4fc --- /dev/null +++ b/bower_components/iron-selector/test/attr-for-selected-elements.html @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/bower_components/iron-selector/test/attr-for-selected.html b/bower_components/iron-selector/test/attr-for-selected.html new file mode 100644 index 00000000..aab2ae9e --- /dev/null +++ b/bower_components/iron-selector/test/attr-for-selected.html @@ -0,0 +1,258 @@ + + + + + + + iron-selector attr-for-selected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/basic.html b/bower_components/iron-selector/test/basic.html new file mode 100644 index 00000000..ec2c74a2 --- /dev/null +++ b/bower_components/iron-selector/test/basic.html @@ -0,0 +1,285 @@ + + + + + + + iron-selector-basic + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + diff --git a/bower_components/iron-selector/test/content-element.html b/bower_components/iron-selector/test/content-element.html new file mode 100644 index 00000000..f03011fe --- /dev/null +++ b/bower_components/iron-selector/test/content-element.html @@ -0,0 +1,48 @@ + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/content.html b/bower_components/iron-selector/test/content.html new file mode 100644 index 00000000..5c4fe318 --- /dev/null +++ b/bower_components/iron-selector/test/content.html @@ -0,0 +1,223 @@ + + + + + + + iron-selector-content + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/excluded-local-names.html b/bower_components/iron-selector/test/excluded-local-names.html new file mode 100644 index 00000000..4b8d4257 --- /dev/null +++ b/bower_components/iron-selector/test/excluded-local-names.html @@ -0,0 +1,96 @@ + + + + + + + iron-selector-selected-attribute + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/index.html b/bower_components/iron-selector/test/index.html new file mode 100644 index 00000000..fc3300f9 --- /dev/null +++ b/bower_components/iron-selector/test/index.html @@ -0,0 +1,41 @@ + + + + Tests + + + + + + + + + + diff --git a/bower_components/iron-selector/test/multi.html b/bower_components/iron-selector/test/multi.html new file mode 100644 index 00000000..4b7c9b2c --- /dev/null +++ b/bower_components/iron-selector/test/multi.html @@ -0,0 +1,396 @@ + + + + + + + iron-selector-multi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/next-previous.html b/bower_components/iron-selector/test/next-previous.html new file mode 100644 index 00000000..fbb23b38 --- /dev/null +++ b/bower_components/iron-selector/test/next-previous.html @@ -0,0 +1,145 @@ + + + + + + + iron-selector-next-previous + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/numeric-ids.html b/bower_components/iron-selector/test/numeric-ids.html new file mode 100644 index 00000000..98458bf2 --- /dev/null +++ b/bower_components/iron-selector/test/numeric-ids.html @@ -0,0 +1,111 @@ + + + + + + + iron-selector-numeric-ids + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/selected-attribute.html b/bower_components/iron-selector/test/selected-attribute.html new file mode 100644 index 00000000..daf8f846 --- /dev/null +++ b/bower_components/iron-selector/test/selected-attribute.html @@ -0,0 +1,144 @@ + + + + + + + iron-selector-selected-attribute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-selector/test/template-repeat.html b/bower_components/iron-selector/test/template-repeat.html new file mode 100644 index 00000000..7a3ef61e --- /dev/null +++ b/bower_components/iron-selector/test/template-repeat.html @@ -0,0 +1,135 @@ + + + + + + + iron-selector-template-repeat + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-validatable-behavior/.bower.json b/bower_components/iron-validatable-behavior/.bower.json new file mode 100644 index 00000000..7ba23462 --- /dev/null +++ b/bower_components/iron-validatable-behavior/.bower.json @@ -0,0 +1,66 @@ +{ + "name": "iron-validatable-behavior", + "version": "2.1.0", + "description": "Provides a behavior for an element that validates user input", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "main": "iron-validatable-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", + "ignore": [], + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "4b6c1c53e44a3bbb31fcfd14ede2234645518c96" + }, + "_source": "https://github.com/PolymerElements/iron-validatable-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/iron-validatable-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-validatable-behavior/.github/CODEOWNERS b/bower_components/iron-validatable-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-validatable-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..a69a2fdc --- /dev/null +++ b/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-validatable-behavior/.gitignore b/bower_components/iron-validatable-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-validatable-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-validatable-behavior/.travis.yml b/bower_components/iron-validatable-behavior/.travis.yml new file mode 100644 index 00000000..1a087977 --- /dev/null +++ b/bower_components/iron-validatable-behavior/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + kwLs1FMf/hBnbxItbOJzbIdGtPDK2R2dngleJPgXLW9ExzpGHPgOmWsvxWL2BzlxlzZgzwpmUhnnJdxHlo8AZtQl1uq6NWl/e3oj9oeenFugF60eIcd01ak4QmhBsk3/20O426QQsz2WckGZRGcudBz5Zj2it3t5cbH3pAi90jo= + - secure: >- + hGl3bsjz9dbKTA/bAgfdrFMlT6VawxFljIPqX6zJD556jhpYxtkno278eIW8uLlIGC5nXRTWXQzWrRhN8i9osnqw1RFhW8C9lH+TLHEkYMvDnEOp9sZ8Amv6j8FdNibcDP8IPTo2PmIRwBK1nFp0VqhcQu/Eq7WUFolSns9E27k= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-validatable-behavior/CONTRIBUTING.md b/bower_components/iron-validatable-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-validatable-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-validatable-behavior/README.md b/bower_components/iron-validatable-behavior/README.md new file mode 100644 index 00000000..97032e89 --- /dev/null +++ b/bower_components/iron-validatable-behavior/README.md @@ -0,0 +1,46 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-validatable-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-validatable-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-validatable-behavior)_ + + +## Polymer.IronValidatableBehavior + +`Use Polymer.IronValidatableBehavior` to implement an element that validates user input. +Use the related `Polymer.IronValidatorBehavior` to add custom validation logic to an iron-input. + +By default, an `` element validates its fields when the user presses the submit button. +To validate a form imperatively, call the form's `validate()` method, which in turn will +call `validate()` on all its children. By using `Polymer.IronValidatableBehavior`, your +custom element will get a public `validate()`, which +will return the validity of the element, and a corresponding `invalid` attribute, +which can be used for styling. + +To implement the custom validation logic of your element, you must override +the protected `_getValidity()` method of this behaviour, rather than `validate()`. +See [this](https://github.com/PolymerElements/iron-form/blob/master/demo/simple-element.html) +for an example. + +### Changes in 2.0 +- `validate()` no longer requires a `value` parameter to be passed, and will use the element's `value` property if it exists +- `validatorType` and `validatorName` were unused and have been removed + +### Accessibility + +Changing the `invalid` property, either manually or by calling `validate()` will update the +`aria-invalid` attribute. + + diff --git a/bower_components/iron-validatable-behavior/bower.json b/bower_components/iron-validatable-behavior/bower.json new file mode 100644 index 00000000..a2ae6cff --- /dev/null +++ b/bower_components/iron-validatable-behavior/bower.json @@ -0,0 +1,57 @@ +{ + "name": "iron-validatable-behavior", + "version": "2.0.0", + "description": "Provides a behavior for an element that validates user input", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "main": "iron-validatable-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", + "ignore": [], + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-validatable-behavior/demo/cats-only.html b/bower_components/iron-validatable-behavior/demo/cats-only.html new file mode 100644 index 00000000..83ef9ba6 --- /dev/null +++ b/bower_components/iron-validatable-behavior/demo/cats-only.html @@ -0,0 +1,46 @@ + + + + + + diff --git a/bower_components/iron-validatable-behavior/demo/index.html b/bower_components/iron-validatable-behavior/demo/index.html new file mode 100644 index 00000000..3ea883a5 --- /dev/null +++ b/bower_components/iron-validatable-behavior/demo/index.html @@ -0,0 +1,56 @@ + + + + + + + + + + iron-validatable-behavior demo + + + + + + + + + + + + + +
    +

    The cats-only validator only accepts the string "cats" and + its suffixes ("c", "ca", "cat").

    + + + +
    + + diff --git a/bower_components/iron-validatable-behavior/demo/validatable-input.html b/bower_components/iron-validatable-behavior/demo/validatable-input.html new file mode 100644 index 00000000..82803f04 --- /dev/null +++ b/bower_components/iron-validatable-behavior/demo/validatable-input.html @@ -0,0 +1,53 @@ + + + + + + + + + diff --git a/bower_components/iron-validatable-behavior/index.html b/bower_components/iron-validatable-behavior/index.html new file mode 100644 index 00000000..cfaa5b17 --- /dev/null +++ b/bower_components/iron-validatable-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-validatable-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-validatable-behavior/iron-validatable-behavior.d.ts b/bower_components/iron-validatable-behavior/iron-validatable-behavior.d.ts new file mode 100644 index 00000000..e29ab43b --- /dev/null +++ b/bower_components/iron-validatable-behavior/iron-validatable-behavior.d.ts @@ -0,0 +1,78 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-validatable-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * `Use Polymer.IronValidatableBehavior` to implement an element that validates user input. + * Use the related `Polymer.IronValidatorBehavior` to add custom validation logic to an iron-input. + * + * By default, an `` element validates its fields when the user presses the submit button. + * To validate a form imperatively, call the form's `validate()` method, which in turn will + * call `validate()` on all its children. By using `Polymer.IronValidatableBehavior`, your + * custom element will get a public `validate()`, which + * will return the validity of the element, and a corresponding `invalid` attribute, + * which can be used for styling. + * + * To implement the custom validation logic of your element, you must override + * the protected `_getValidity()` method of this behaviour, rather than `validate()`. + * See [this](https://github.com/PolymerElements/iron-form/blob/master/demo/simple-element.html) + * for an example. + * + * ### Accessibility + * + * Changing the `invalid` property, either manually or by calling `validate()` will update the + * `aria-invalid` attribute. + */ + interface IronValidatableBehavior { + + /** + * Name of the validator to use. + */ + validator: string|null|undefined; + + /** + * True if the last call to `validate` is invalid. + */ + invalid: boolean|null|undefined; + + /** + * Recompute this every time it's needed, because we don't know if the + * underlying IronValidatableBehaviorMeta has changed. + */ + readonly _validator: any; + registered(): void; + _invalidChanged(): void; + + /** + * @returns True if the validator `validator` exists. + */ + hasValidator(): boolean; + + /** + * Returns true if the `value` is valid, and updates `invalid`. If you want + * your element to have custom validation logic, do not override this method; + * override `_getValidity(value)` instead. + * + * @param value Deprecated: The value to be validated. By default, + * it is passed to the validator's `validate()` function, if a validator is set. + * If this argument is not specified, then the element's `value` property + * is used, if it exists. + * @returns True if `value` is valid. + */ + validate(value: object|null): boolean; + _getValidity(value: any): any; + } + + const IronValidatableBehavior: object; +} diff --git a/bower_components/iron-validatable-behavior/iron-validatable-behavior.html b/bower_components/iron-validatable-behavior/iron-validatable-behavior.html new file mode 100644 index 00000000..646079ff --- /dev/null +++ b/bower_components/iron-validatable-behavior/iron-validatable-behavior.html @@ -0,0 +1,131 @@ + + + + + + diff --git a/bower_components/iron-validatable-behavior/package-lock.json b/bower_components/iron-validatable-behavior/package-lock.json new file mode 100644 index 00000000..86e77929 --- /dev/null +++ b/bower_components/iron-validatable-behavior/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-validatable-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-validatable-behavior/package.json b/bower_components/iron-validatable-behavior/package.json new file mode 100644 index 00000000..2e01f447 --- /dev/null +++ b/bower_components/iron-validatable-behavior/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-validatable-behavior", + "private": true, + "description": "Provides a behavior for an element that validates user input", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-validatable-behavior/test/cats-only.html b/bower_components/iron-validatable-behavior/test/cats-only.html new file mode 100644 index 00000000..f1669936 --- /dev/null +++ b/bower_components/iron-validatable-behavior/test/cats-only.html @@ -0,0 +1,30 @@ + + + + + + diff --git a/bower_components/iron-validatable-behavior/test/dogs-only.html b/bower_components/iron-validatable-behavior/test/dogs-only.html new file mode 100644 index 00000000..1b462a41 --- /dev/null +++ b/bower_components/iron-validatable-behavior/test/dogs-only.html @@ -0,0 +1,30 @@ + + + + + + diff --git a/bower_components/iron-validatable-behavior/test/index.html b/bower_components/iron-validatable-behavior/test/index.html new file mode 100644 index 00000000..46af3764 --- /dev/null +++ b/bower_components/iron-validatable-behavior/test/index.html @@ -0,0 +1,33 @@ + + + + + iron-validatable-behavior tests + + + + + + + + + + + + + + diff --git a/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html b/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html new file mode 100644 index 00000000..a8040ef4 --- /dev/null +++ b/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html @@ -0,0 +1,88 @@ + + + + + + iron-validatable-behavior tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-validatable-behavior/test/test-validatable.html b/bower_components/iron-validatable-behavior/test/test-validatable.html new file mode 100644 index 00000000..abe613e1 --- /dev/null +++ b/bower_components/iron-validatable-behavior/test/test-validatable.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/bower_components/iron-validator-behavior/.bower.json b/bower_components/iron-validator-behavior/.bower.json new file mode 100644 index 00000000..6c457332 --- /dev/null +++ b/bower_components/iron-validator-behavior/.bower.json @@ -0,0 +1,62 @@ +{ + "name": "iron-validator-behavior", + "version": "2.1.0", + "description": "Implements a input validator", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "main": "iron-validator-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-validator-behavior.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-validator-behavior", + "ignore": [], + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "5c1d4a83ef86881dcd28ff1e61e9a688a99a58b3" + }, + "_source": "https://github.com/PolymerElements/iron-validator-behavior.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/iron-validator-behavior" +} \ No newline at end of file diff --git a/bower_components/iron-validator-behavior/.github/CODEOWNERS b/bower_components/iron-validator-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/iron-validator-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/iron-validator-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/iron-validator-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..9296ddad --- /dev/null +++ b/bower_components/iron-validator-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/iron-validator-behavior/.gitignore b/bower_components/iron-validator-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/iron-validator-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/iron-validator-behavior/.travis.yml b/bower_components/iron-validator-behavior/.travis.yml new file mode 100644 index 00000000..e6281025 --- /dev/null +++ b/bower_components/iron-validator-behavior/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + ow6TG0L/Fw+CJWgKXYMMX3MsvckjPzd3ZQQJRB4/UdHc8agUarGnth8heB2zYfBT+KucV34JaPXzEeAijpQuhZLyvMAS63q+ZzQ2C9Js93+f15PU6v1rBzJR/9HN4hhaCJVrfx1uTPeLHeTpQXYpCC9oCTamiWKj53BO4+3YwlQ= + - secure: >- + HV0yQ1I1KRUIndDpwB5KPYj/U8qzmXSKkbvlSTukmbmLUABjvtyEHqsn+jEOQODcRJwF7EC6TT0S/qEX5jyjB/lhWjNtmYWeWf63O1VdvtMyAsUrwuZDUTaSJaVvCy3tiqAn4LSu1uHDX5qNVJoyLQROaAPBemhsypXnjot0Lp0= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/iron-validator-behavior/CONTRIBUTING.md b/bower_components/iron-validator-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/iron-validator-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/iron-validator-behavior/README.md b/bower_components/iron-validator-behavior/README.md new file mode 100644 index 00000000..ac39f383 --- /dev/null +++ b/bower_components/iron-validator-behavior/README.md @@ -0,0 +1,27 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/iron-validator-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-validator-behavior) + +_[Demo and API docs](https://elements.polymer-project.org/elements/iron-validator-behavior)_ + + +## Polymer.IronValidatorBehavior + +Use `Polymer.IronValidatorBehavior` to implement a custom input/form validator. Element +instances implementing this behavior will be registered for use in elements that implement +`Polymer.IronValidatableBehavior`. + +### Changes in 2.0 +- `validatorType` and `validatorName` were unused and have been removed diff --git a/bower_components/iron-validator-behavior/bower.json b/bower_components/iron-validator-behavior/bower.json new file mode 100644 index 00000000..13b91851 --- /dev/null +++ b/bower_components/iron-validator-behavior/bower.json @@ -0,0 +1,53 @@ +{ + "name": "iron-validator-behavior", + "version": "2.0.1", + "description": "Implements a input validator", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "iron", + "behavior" + ], + "main": "iron-validator-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-validator-behavior.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/iron-validator-behavior", + "ignore": [], + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-meta": "PolymerElements/iron-meta#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/iron-validator-behavior/demo/cats-only.html b/bower_components/iron-validator-behavior/demo/cats-only.html new file mode 100644 index 00000000..9221f65a --- /dev/null +++ b/bower_components/iron-validator-behavior/demo/cats-only.html @@ -0,0 +1,46 @@ + + + + + + diff --git a/bower_components/iron-validator-behavior/demo/index.html b/bower_components/iron-validator-behavior/demo/index.html new file mode 100644 index 00000000..8c9a7adb --- /dev/null +++ b/bower_components/iron-validator-behavior/demo/index.html @@ -0,0 +1,168 @@ + + + + + + + + + + iron-validator-behavior demo + + + + + + + + + + + + +
    +

    The cats-only validator only accepts the string "cats" and + its suffixes ("c", "ca", "cat").

    + + + + +

    Validators can be used with multiple elements

    + + + + +

    Validators can be used with forms

    + + + +
    + diff --git a/bower_components/iron-validator-behavior/index.html b/bower_components/iron-validator-behavior/index.html new file mode 100644 index 00000000..d0f69368 --- /dev/null +++ b/bower_components/iron-validator-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + iron-validator-behavior + + + + + + + + + + + + + diff --git a/bower_components/iron-validator-behavior/iron-validator-behavior.d.ts b/bower_components/iron-validator-behavior/iron-validator-behavior.d.ts new file mode 100644 index 00000000..375dd48e --- /dev/null +++ b/bower_components/iron-validator-behavior/iron-validator-behavior.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * iron-validator-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.IronValidatorBehavior` to implement a custom input/form validator. Element + * instances implementing this behavior will be registered for use in elements that implement + * `Polymer.IronValidatableBehavior`. + */ + interface IronValidatorBehavior { + ready(): void; + + /** + * Implement custom validation logic in this function. + * + * @param values The value to validate. May be any type depending on the validation logic. + * @returns true if `values` is valid. + */ + validate(values: object|null): boolean; + } + + const IronValidatorBehavior: object; +} diff --git a/bower_components/iron-validator-behavior/iron-validator-behavior.html b/bower_components/iron-validator-behavior/iron-validator-behavior.html new file mode 100644 index 00000000..ddfb26f3 --- /dev/null +++ b/bower_components/iron-validator-behavior/iron-validator-behavior.html @@ -0,0 +1,38 @@ + + + + + + diff --git a/bower_components/iron-validator-behavior/package-lock.json b/bower_components/iron-validator-behavior/package-lock.json new file mode 100644 index 00000000..bad4d4cc --- /dev/null +++ b/bower_components/iron-validator-behavior/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/iron-validator-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/iron-validator-behavior/package.json b/bower_components/iron-validator-behavior/package.json new file mode 100644 index 00000000..32064308 --- /dev/null +++ b/bower_components/iron-validator-behavior/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/iron-validator-behavior", + "private": true, + "description": "Implements a input validator", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/iron-validator-behavior.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/iron-validator-behavior/test/index.html b/bower_components/iron-validator-behavior/test/index.html new file mode 100644 index 00000000..f162ec76 --- /dev/null +++ b/bower_components/iron-validator-behavior/test/index.html @@ -0,0 +1,31 @@ + + + paper-validator-behavior tests + + + + + + + + + + + + + + + diff --git a/bower_components/iron-validator-behavior/test/iron-validator-behavior.html b/bower_components/iron-validator-behavior/test/iron-validator-behavior.html new file mode 100644 index 00000000..f419c035 --- /dev/null +++ b/bower_components/iron-validator-behavior/test/iron-validator-behavior.html @@ -0,0 +1,48 @@ + + + + + + iron-validator-behavior basic tests + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/iron-validator-behavior/test/simple-validator.html b/bower_components/iron-validator-behavior/test/simple-validator.html new file mode 100644 index 00000000..b794ed71 --- /dev/null +++ b/bower_components/iron-validator-behavior/test/simple-validator.html @@ -0,0 +1,26 @@ + + + + + + diff --git a/bower_components/jquery/.bower.json b/bower_components/jquery/.bower.json new file mode 100644 index 00000000..706c6735 --- /dev/null +++ b/bower_components/jquery/.bower.json @@ -0,0 +1,25 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ], + "homepage": "https://github.com/jquery/jquery-dist", + "version": "3.3.1", + "_release": "3.3.1", + "_resolution": { + "type": "version", + "tag": "3.3.1", + "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" + }, + "_source": "https://github.com/jquery/jquery-dist.git", + "_target": "^3.2.1", + "_originalSource": "jquery" +} \ No newline at end of file diff --git a/bower_components/jquery/AUTHORS.txt b/bower_components/jquery/AUTHORS.txt new file mode 100644 index 00000000..4bb5da15 --- /dev/null +++ b/bower_components/jquery/AUTHORS.txt @@ -0,0 +1,313 @@ +Authors ordered by first contribution. + +John Resig +Gilles van den Hoven +Michael Geary +Stefan Petre +Yehuda Katz +Corey Jewett +Klaus Hartl +Franck Marcia +Jörn Zaefferer +Paul Bakaus +Brandon Aaron +Mike Alsup +Dave Methvin +Ed Engelhardt +Sean Catchpole +Paul Mclanahan +David Serduke +Richard D. Worth +Scott González +Ariel Flesler +Jon Evans +TJ Holowaychuk +Michael Bensoussan +Robert Katić +Louis-Rémi Babé +Earle Castledine +Damian Janowski +Rich Dougherty +Kim Dalsgaard +Andrea Giammarchi +Mark Gibson +Karl Swedberg +Justin Meyer +Ben Alman +James Padolsey +David Petersen +Batiste Bieler +Alexander Farkas +Rick Waldron +Filipe Fortes +Neeraj Singh +Paul Irish +Iraê Carvalho +Matt Curry +Michael Monteleone +Noah Sloan +Tom Viner +Douglas Neiner +Adam J. Sontag +Dave Reed +Ralph Whitbeck +Carl Fürstenberg +Jacob Wright +J. Ryan Stinnett +unknown +temp01 +Heungsub Lee +Colin Snover +Ryan W Tenney +Pinhook +Ron Otten +Jephte Clain +Anton Matzneller +Alex Sexton +Dan Heberden +Henri Wiechers +Russell Holbrook +Julian Aubourg +Gianni Alessandro Chiappetta +Scott Jehl +James Burke +Jonas Pfenniger +Xavi Ramirez +Jared Grippe +Sylvester Keil +Brandon Sterne +Mathias Bynens +Timmy Willison <4timmywil@gmail.com> +Corey Frang +Digitalxero +Anton Kovalyov +David Murdoch +Josh Varner +Charles McNulty +Jordan Boesch +Jess Thrysoee +Michael Murray +Lee Carpenter +Alexis Abril +Rob Morgan +John Firebaugh +Sam Bisbee +Gilmore Davidson +Brian Brennan +Xavier Montillet +Daniel Pihlstrom +Sahab Yazdani +avaly +Scott Hughes +Mike Sherov +Greg Hazel +Schalk Neethling +Denis Knauf +Timo Tijhof +Steen Nielsen +Anton Ryzhov +Shi Chuan +Berker Peksag +Toby Brain +Matt Mueller +Justin +Daniel Herman +Oleg Gaidarenko +Richard Gibson +Rafaël Blais Masson +cmc3cn <59194618@qq.com> +Joe Presbrey +Sindre Sorhus +Arne de Bree +Vladislav Zarakovsky +Andrew E Monat +Oskari +Joao Henrique de Andrade Bruni +tsinha +Matt Farmer +Trey Hunner +Jason Moon +Jeffery To +Kris Borchers +Vladimir Zhuravlev +Jacob Thornton +Chad Killingsworth +Nowres Rafid +David Benjamin +Uri Gilad +Chris Faulkner +Elijah Manor +Daniel Chatfield +Nikita Govorov +Wesley Walser +Mike Pennisi +Markus Staab +Dave Riddle +Callum Macrae +Benjamin Truyman +James Huston +Erick Ruiz de Chávez +David Bonner +Akintayo Akinwunmi +MORGAN +Ismail Khair +Carl Danley +Mike Petrovich +Greg Lavallee +Daniel Gálvez +Sai Lung Wong +Tom H Fuertes +Roland Eckl +Jay Merrifield +Allen J Schmidt Jr +Jonathan Sampson +Marcel Greter +Matthias Jäggli +David Fox +Yiming He +Devin Cooper +Paul Ramos +Rod Vagg +Bennett Sorbo +Sebastian Burkhard +Zachary Adam Kaplan +nanto_vi +nanto +Danil Somsikov +Ryunosuke SATO +Jean Boussier +Adam Coulombe +Andrew Plummer +Mark Raddatz +Isaac Z. Schlueter +Karl Sieburg +Pascal Borreli +Nguyen Phuc Lam +Dmitry Gusev +Michał Gołębiowski-Owczarek +Li Xudong +Steven Benner +Tom H Fuertes +Renato Oliveira dos Santos +ros3cin +Jason Bedard +Kyle Robinson Young +Chris Talkington +Eddie Monge +Terry Jones +Jason Merino +Jeremy Dunck +Chris Price +Guy Bedford +Amey Sakhadeo +Mike Sidorov +Anthony Ryan +Dominik D. Geyer +George Kats +Lihan Li +Ronny Springer +Chris Antaki +Marian Sollmann +njhamann +Ilya Kantor +David Hong +John Paul +Jakob Stoeck +Christopher Jones +Forbes Lindesay +S. Andrew Sheppard +Leonardo Balter +Roman Reiß +Benjy Cui +Rodrigo Rosenfeld Rosas +John Hoven +Philip Jägenstedt +Christian Kosmowski +Liang Peng +TJ VanToll +Senya Pugach +Aurelio De Rosa +Nazar Mokrynskyi +Amit Merchant +Jason Bedard +Arthur Verschaeve +Dan Hart +Bin Xin +David Corbacho +Veaceslav Grimalschi +Daniel Husar +Frederic Hemberger +Ben Toews +Aditya Raghavan +Victor Homyakov +Shivaji Varma +Nicolas HENRY +Anne-Gaelle Colom +George Mauer +Leonardo Braga +Stephen Edgar +Thomas Tortorini +Winston Howes +Jon Hester +Alexander O'Mara +Bastian Buchholz +Arthur Stolyar +Calvin Metcalf +Mu Haibao +Richard McDaniel +Chris Rebert +Gabriel Schulhof +Gilad Peleg +Martin Naumann +Marek Lewandowski +Bruno Pérel +Reed Loden +Daniel Nill +Yongwoo Jeon +Sean Henderson +Richard Kraaijenhagen +Connor Atherton +Gary Ye +Christian Grete +Liza Ramo +Julian Alexander Murillo +Joelle Fleurantin +Jae Sung Park +Jun Sun +Josh Soref +Henry Wong +Jon Dufresne +Martijn W. van der Lee +Devin Wilson +Steve Mao +Zack Hall +Bernhard M. Wiedemann +Todor Prikumov +Jha Naman +William Robinet +Alexander Lisianoi +Vitaliy Terziev +Joe Trumbull +Alexander K +Damian Senn +Ralin Chimev +Felipe Sateler +Christophe Tafani-Dereeper +Manoj Kumar +David Broder-Rodgers +Alex Louden +Alex Padilla +南漂一卒 +karan-96 +Boom Lee +Andreas Solleder +CDAGaming +Pierre Spring +Shashanka Nataraj +Erik Lax +Matan Kotler-Berkowitz <205matan@gmail.com> +Jordan Beland +Henry Zhu +Saptak Sengupta +Nilton Cesar +basil.belokon diff --git a/bower_components/jquery/LICENSE.txt b/bower_components/jquery/LICENSE.txt new file mode 100644 index 00000000..e4e5e00e --- /dev/null +++ b/bower_components/jquery/LICENSE.txt @@ -0,0 +1,36 @@ +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/bower_components/jquery/README.md b/bower_components/jquery/README.md new file mode 100644 index 00000000..83e7b937 --- /dev/null +++ b/bower_components/jquery/README.md @@ -0,0 +1,67 @@ +# jQuery + +> jQuery is a fast, small, and feature-rich JavaScript library. + +For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/). +For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). + +If upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog. + +## Including jQuery + +Below are some of the most common ways to include jQuery. + +### Browser + +#### Script tag + +```html + +``` + +#### Babel + +[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. + +```js +import $ from "jquery"; +``` + +#### Browserify/Webpack + +There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this... + +```js +var $ = require("jquery"); +``` + +#### AMD (Asynchronous Module Definition) + +AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html). + +```js +define(["jquery"], function($) { + +}); +``` + +### Node + +To include jQuery in [Node](nodejs.org), first install with npm. + +```sh +npm install jquery +``` + +For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes. + +```js +require("jsdom").env("", function(err, window) { + if (err) { + console.error(err); + return; + } + + var $ = require("jquery")(window); +}); +``` diff --git a/bower_components/jquery/bower.json b/bower_components/jquery/bower.json new file mode 100644 index 00000000..95798d5a --- /dev/null +++ b/bower_components/jquery/bower.json @@ -0,0 +1,14 @@ +{ + "name": "jquery", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "package.json" + ], + "keywords": [ + "jquery", + "javascript", + "browser", + "library" + ] +} \ No newline at end of file diff --git a/bower_components/jquery/dist/core.js b/bower_components/jquery/dist/core.js new file mode 100644 index 00000000..3a1c0cc7 --- /dev/null +++ b/bower_components/jquery/dist/core.js @@ -0,0 +1,399 @@ +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + +define( [ + "./var/arr", + "./var/document", + "./var/getProto", + "./var/slice", + "./var/concat", + "./var/push", + "./var/indexOf", + "./var/class2type", + "./var/toString", + "./var/hasOwn", + "./var/fnToString", + "./var/ObjectFunctionString", + "./var/support", + "./var/isFunction", + "./var/isWindow", + "./core/DOMEval", + "./core/toType" +], function( arr, document, getProto, slice, concat, push, indexOf, + class2type, toString, hasOwn, fnToString, ObjectFunctionString, + support, isFunction, isWindow, DOMEval, toType ) { + +"use strict"; + +var + version = "3.3.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} + +return jQuery; +} ); diff --git a/bower_components/jquery/dist/jquery.js b/bower_components/jquery/dist/jquery.js new file mode 100644 index 00000000..9b5206bc --- /dev/null +++ b/bower_components/jquery/dist/jquery.js @@ -0,0 +1,10364 @@ +/*! + * jQuery JavaScript Library v3.3.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2018-01-20T17:24Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + + + + var preservedScriptAttributes = { + type: true, + src: true, + noModule: true + }; + + function DOMEval( code, doc, node ) { + doc = doc || document; + + var i, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + if ( node[ i ] ) { + script[ i ] = node[ i ]; + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.3.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + div.style.position = "absolute"; + scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + ) ); + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + val = curCSS( elem, dimension, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox; + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = valueIsBorderBox && + ( support.boxSizingReliable() || val === elem.style[ dimension ] ); + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + if ( val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { + + val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; + + // offsetWidth/offsetHeight provide border-box values + valueIsBorderBox = true; + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra && boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ); + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && support.scrollboxSize() === styles.position ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = Date.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + +``` + +### Use ` + +``` + +Note that the ` + +... + +``` + +### Styling + +If you are using a child with the `markdown-html` slot, you can style it +as you would a regular DOM element: + +```css +[slot="markdown-html"] p { + color: red; +} + +[slot="markdown-html"] td:first-child { + padding-left: 24px; +} +``` diff --git a/bower_components/marked-element/bower.json b/bower_components/marked-element/bower.json new file mode 100644 index 00000000..5e0cac45 --- /dev/null +++ b/bower_components/marked-element/bower.json @@ -0,0 +1,56 @@ +{ + "name": "marked-element", + "version": "2.3.4", + "description": "Element wrapper for the marked library", + "private": true, + "authors": [ + "The Polymer Project Authors (https://polymer.github.io/AUTHORS.txt)" + ], + "keywords": [ + "web-components", + "polymer", + "marked", + "markdown", + "container", + "wrapper" + ], + "license": "https://polymer.github.io/LICENSE.txt", + "main": "marked-element.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/marked-element.git" + }, + "dependencies": { + "marked": "~0.3.9", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "marked": "~0.3.9", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "paper-styles": "PolymerElements/paper-styles#^1.0.4", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "test-fixture": "polymerelements/test-fixture#^1.0.0", + "web-component-tester": "^5.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/marked-element/demo/example.md b/bower_components/marked-element/demo/example.md new file mode 100644 index 00000000..da5dc9cb --- /dev/null +++ b/bower_components/marked-element/demo/example.md @@ -0,0 +1,13 @@ +## Markdown Renderer + +Example: + +```html + + +
    Title
    + +
    +``` + +_Nifty_ features. diff --git a/bower_components/marked-element/demo/index.html b/bower_components/marked-element/demo/index.html new file mode 100644 index 00000000..71b8def5 --- /dev/null +++ b/bower_components/marked-element/demo/index.html @@ -0,0 +1,99 @@ + + + + + + marked-element demo + + + + + + + + + + + + +
    +

    <marked-element>

    + +
    +

    Inline Text

    + +
    + +
    +
    + +
    +

    Text via Attribute, with custom styling

    + +
    +
    +
    + +
    +

    Remote content

    + +
    + +
    +
    + +
    + + + diff --git a/bower_components/marked-element/gen-tsd.json b/bower_components/marked-element/gen-tsd.json new file mode 100644 index 00000000..26344228 --- /dev/null +++ b/bower_components/marked-element/gen-tsd.json @@ -0,0 +1,5 @@ +{ + "removeReferences": [ + "../marked/lib/marked.d.ts" + ] +} diff --git a/bower_components/marked-element/hero.svg b/bower_components/marked-element/hero.svg new file mode 100755 index 00000000..4f283479 --- /dev/null +++ b/bower_components/marked-element/hero.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/marked-element/index.html b/bower_components/marked-element/index.html new file mode 100644 index 00000000..487bb5c3 --- /dev/null +++ b/bower_components/marked-element/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/marked-element/marked-element.d.ts b/bower_components/marked-element/marked-element.d.ts new file mode 100644 index 00000000..a9e1ce2c --- /dev/null +++ b/bower_components/marked-element/marked-element.d.ts @@ -0,0 +1,208 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * marked-element.html + */ + +/// +/// + +/** + * Element wrapper for the [marked](https://github.com/chjj/marked) library. + * + * `` accepts Markdown source and renders it to a child + * element with the class `markdown-html`. This child element can be styled + * as you would a normal DOM element. If you do not provide a child element + * with the `markdown-html` class, the Markdown source will still be rendered, + * but to a shadow DOM child that cannot be styled. + * + * + * ### Markdown Content + * + * The Markdown source can be specified several ways: + * + * #### Use the `markdown` attribute to bind markdown + * + * + *
    + *
    + * + * #### Use ` + *
    + * + * #### Use ` + * + * + * Note that the ` + * + * ... + * + * ``` + * + * ### Styling + * If you are using a child with the `markdown-html` class, you can style it + * as you would a regular DOM element: + * + * [slot="markdown-html"] p { + * color: red; + * } + * + * [slot="markdown-html"] td:first-child { + * padding-left: 24px; + * } + */ +interface MarkedElementElement extends Polymer.Element { + + /** + * The markdown source that should be rendered by this element. + */ + markdown: string|null|undefined; + + /** + * Enable GFM line breaks (regular newlines instead of two spaces for breaks) + */ + breaks: boolean|null|undefined; + + /** + * Conform to obscure parts of markdown.pl as much as possible. Don't fix any of the original markdown bugs or poor behavior. + */ + pedantic: boolean|null|undefined; + + /** + * Function used to customize a renderer based on the [API specified in the Marked + * library](https://github.com/chjj/marked#overriding-renderer-methods). + * It takes one argument: a marked renderer object, which is mutated by the function. + */ + renderer: Function|null|undefined; + + /** + * Sanitize the output. Ignore any HTML that has been input. + */ + sanitize: boolean|null|undefined; + + /** + * Function used to customize a sanitize behavior. + * It takes one argument: element String without text Contents. + * + * e.g. `
    ` `` `

    '. + * Note: To enable this function, must set `sanitize` to true. + * WARNING: If you are using this option to untrusted text, you must to prevent XSS Attacks. + */ + sanitizer: Function|null|undefined; + + /** + * If true, disables the default sanitization of any markdown received by + * a request and allows fetched unsanitized markdown + * + * e.g. fetching markdown via `src` that has HTML. + * Note: this value overrides `sanitize` if a request is made. + */ + disableRemoteSanitization: boolean|null|undefined; + + /** + * Use "smart" typographic punctuation for things like quotes and dashes. + */ + smartypants: boolean|null|undefined; + + /** + * Callback function invoked by Marked after HTML has been rendered. + * It must take two arguments: err and text and must return the resulting text. + */ + callback: Function|null|undefined; + + /** + * A reference to the XMLHttpRequest instance used to generate the + * network request. + */ + readonly xhr: XMLHttpRequest|null; + readonly outputElement: any; + ready(): void; + + /** + * Renders `markdown` to HTML when the element is attached. + * + * This serves a dual purpose: + * + * * Prevents unnecessary work (no need to render when not visible). + * + * * `attached` fires top-down, so we can give ancestors a chance to + * register listeners for the `syntax-highlight` event _before_ we render + * any markdown. + */ + attached(): void; + detached(): void; + + /** + * Unindents the markdown source that will be rendered. + */ + unindent(text: string): string; + + /** + * Renders `markdown` into this element's DOM. + * + * This is automatically called whenever the `markdown` property is changed. + * + * The only case where you should be calling this is if you are providing + * markdown via ` diff --git a/bower_components/marked-element/marked-import.d.ts b/bower_components/marked-element/marked-import.d.ts new file mode 100644 index 00000000..cb14898b --- /dev/null +++ b/bower_components/marked-element/marked-import.d.ts @@ -0,0 +1,10 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * marked-import.html + */ + diff --git a/bower_components/marked-element/marked-import.html b/bower_components/marked-element/marked-import.html new file mode 100644 index 00000000..9311b106 --- /dev/null +++ b/bower_components/marked-element/marked-import.html @@ -0,0 +1,17 @@ + + + diff --git a/bower_components/marked-element/package-lock.json b/bower_components/marked-element/package-lock.json new file mode 100644 index 00000000..ad9cc222 --- /dev/null +++ b/bower_components/marked-element/package-lock.json @@ -0,0 +1,983 @@ +{ + "name": "@polymer/marked-element", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "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.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.9.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/marked-element/package.json b/bower_components/marked-element/package.json new file mode 100644 index 00000000..b5590b58 --- /dev/null +++ b/bower_components/marked-element/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/marked-element", + "private": true, + "description": "Element wrapper for the marked library", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/marked-element.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/marked-element/polymer.json b/bower_components/marked-element/polymer.json new file mode 100644 index 00000000..6f86db07 --- /dev/null +++ b/bower_components/marked-element/polymer.json @@ -0,0 +1,5 @@ +{ + "lint": { + "rules": ["polymer-2-hybrid"] + } +} diff --git a/bower_components/marked-element/test/index.html b/bower_components/marked-element/test/index.html new file mode 100644 index 00000000..7f159922 --- /dev/null +++ b/bower_components/marked-element/test/index.html @@ -0,0 +1,24 @@ + + + + Tests + + + + + + + diff --git a/bower_components/marked-element/test/marked-element.html b/bower_components/marked-element/test/marked-element.html new file mode 100644 index 00000000..dcbd2c41 --- /dev/null +++ b/bower_components/marked-element/test/marked-element.html @@ -0,0 +1,616 @@ + + + + + + marked-element basic tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/marked-element/test/remoteSanitization.md b/bower_components/marked-element/test/remoteSanitization.md new file mode 100644 index 00000000..281c6866 --- /dev/null +++ b/bower_components/marked-element/test/remoteSanitization.md @@ -0,0 +1 @@ +
    \ No newline at end of file diff --git a/bower_components/marked-element/test/test.md b/bower_components/marked-element/test/test.md new file mode 100644 index 00000000..66517b1b --- /dev/null +++ b/bower_components/marked-element/test/test.md @@ -0,0 +1,3 @@ +# Test + +[Link](http://url.com/) diff --git a/bower_components/marked-element/test/test1.md b/bower_components/marked-element/test/test1.md new file mode 100644 index 00000000..a5b23459 --- /dev/null +++ b/bower_components/marked-element/test/test1.md @@ -0,0 +1,3 @@ +# Test Another + +[Link](http://url.com/) diff --git a/bower_components/marked-element/test/test2.md b/bower_components/marked-element/test/test2.md new file mode 100644 index 00000000..f7b1c229 --- /dev/null +++ b/bower_components/marked-element/test/test2.md @@ -0,0 +1 @@ +# Test 2 diff --git a/bower_components/marked-element/wct.conf.json b/bower_components/marked-element/wct.conf.json new file mode 100644 index 00000000..c2dfb5d6 --- /dev/null +++ b/bower_components/marked-element/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "headless", + "disable-gpu", + "no-sandbox" + ], + "firefox": [ + "-headless" + ] + } + } + } +} diff --git a/bower_components/marked/.bower.json b/bower_components/marked/.bower.json new file mode 100644 index 00000000..2068fccf --- /dev/null +++ b/bower_components/marked/.bower.json @@ -0,0 +1,33 @@ +{ + "name": "marked", + "homepage": "https://github.com/markedjs/marked", + "authors": [ + "Christopher Jeffrey " + ], + "description": "A markdown parser built for speed", + "keywords": [ + "markdown", + "markup", + "html" + ], + "main": "lib/marked.js", + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "app/bower_components", + "test", + "tests" + ], + "version": "0.3.19", + "_release": "0.3.19", + "_resolution": { + "type": "version", + "tag": "v0.3.19", + "commit": "5d1baa4d7ca55b27cb08029ac785e98b6378fcf0" + }, + "_source": "https://github.com/chjj/marked.git", + "_target": "~0.3.9", + "_originalSource": "marked" +} \ No newline at end of file diff --git a/bower_components/marked/LICENSE.md b/bower_components/marked/LICENSE.md new file mode 100644 index 00000000..64b41a0e --- /dev/null +++ b/bower_components/marked/LICENSE.md @@ -0,0 +1,43 @@ +# License information + +## Contribution License Agreement + +If you contribute code to this project, you are implicitly allowing your code +to be distributed under the MIT license. You are also implicitly verifying that +all code is your original work. `` + +## Marked + +Copyright (c) 2011-2018, Christopher Jeffrey (https://github.com/chjj/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## Markdown + +Copyright © 2004, John Gruber +http://daringfireball.net/ +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +This software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. diff --git a/bower_components/marked/Makefile b/bower_components/marked/Makefile new file mode 100644 index 00000000..7deead54 --- /dev/null +++ b/bower_components/marked/Makefile @@ -0,0 +1,15 @@ +all: + @cp lib/marked.js marked.js + @uglifyjs --comments '/\*[^\0]+?Copyright[^\0]+?\*/' -o marked.min.js lib/marked.js + +clean: + @rm marked.js + @rm marked.min.js + +bench: + @node test --bench + +man/marked.1.txt: + groff -man -Tascii man/marked.1 | col -b > man/marked.1.txt + +.PHONY: clean all diff --git a/bower_components/marked/README.md b/bower_components/marked/README.md new file mode 100644 index 00000000..57f72074 --- /dev/null +++ b/bower_components/marked/README.md @@ -0,0 +1,53 @@ +# Marked + +Marked is + +1. built for speed. +2. a low-level markdown compiler that allows frequent parsing of large chunks of markdown without caching or blocking for long periods of time. +3. light-weight while implementing all markdown features from the supported flavors & specifications. +4. available as a command line interface (CLI) and running in client- or server-side JavaScript projects. + +## Installation + +**CLI:** `npm install -g marked` + +**In-browser:** `npm install marked --save` + +## Usage + +**CLI** + +``` bash +$ marked -o hello.html +hello world +^D +$ cat hello.html +

    hello world

    +``` + +**Browser** + +```html + + + + + Marked in the browser + + + +
    + + + +``` + + + +## License + +Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License) + diff --git a/bower_components/marked/bin/marked b/bower_components/marked/bin/marked new file mode 100755 index 00000000..df4dcc0f --- /dev/null +++ b/bower_components/marked/bin/marked @@ -0,0 +1,191 @@ +#!/usr/bin/env node + +/** + * Marked CLI + * Copyright (c) 2011-2013, Christopher Jeffrey (MIT License) + */ + +var fs = require('fs') + , util = require('util') + , marked = require('../'); + +/** + * Man Page + */ + +function help() { + var spawn = require('child_process').spawn; + + var options = { + cwd: process.cwd(), + env: process.env, + setsid: false, + customFds: [0, 1, 2] + }; + + spawn('man', [__dirname + '/../man/marked.1'], options) + .on('error', function(err) { + fs.readFile(__dirname + '/../man/marked.1.txt', 'utf8', function(err, data) { + if (err) throw err; + console.log(data); + }); + }); +} + +/** + * Main + */ + +function main(argv, callback) { + var files = [] + , options = {} + , input + , output + , arg + , tokens + , opt; + + function getarg() { + var arg = argv.shift(); + + if (arg.indexOf('--') === 0) { + // e.g. --opt + arg = arg.split('='); + if (arg.length > 1) { + // e.g. --opt=val + argv.unshift(arg.slice(1).join('=')); + } + arg = arg[0]; + } else if (arg[0] === '-') { + if (arg.length > 2) { + // e.g. -abc + argv = arg.substring(1).split('').map(function(ch) { + return '-' + ch; + }).concat(argv); + arg = argv.shift(); + } else { + // e.g. -a + } + } else { + // e.g. foo + } + + return arg; + } + + while (argv.length) { + arg = getarg(); + switch (arg) { + case '--test': + return require('../test').main(process.argv.slice()); + case '-o': + case '--output': + output = argv.shift(); + break; + case '-i': + case '--input': + input = argv.shift(); + break; + case '-t': + case '--tokens': + tokens = true; + break; + case '-h': + case '--help': + return help(); + default: + if (arg.indexOf('--') === 0) { + opt = camelize(arg.replace(/^--(no-)?/, '')); + if (!marked.defaults.hasOwnProperty(opt)) { + continue; + } + if (arg.indexOf('--no-') === 0) { + options[opt] = typeof marked.defaults[opt] !== 'boolean' + ? null + : false; + } else { + options[opt] = typeof marked.defaults[opt] !== 'boolean' + ? argv.shift() + : true; + } + } else { + files.push(arg); + } + break; + } + } + + function getData(callback) { + if (!input) { + if (files.length <= 2) { + return getStdin(callback); + } + input = files.pop(); + } + return fs.readFile(input, 'utf8', callback); + } + + return getData(function(err, data) { + if (err) return callback(err); + + data = tokens + ? JSON.stringify(marked.lexer(data, options), null, 2) + : marked(data, options); + + if (!output) { + process.stdout.write(data + '\n'); + return callback(); + } + + return fs.writeFile(output, data, callback); + }); +} + +/** + * Helpers + */ + +function getStdin(callback) { + var stdin = process.stdin + , buff = ''; + + stdin.setEncoding('utf8'); + + stdin.on('data', function(data) { + buff += data; + }); + + stdin.on('error', function(err) { + return callback(err); + }); + + stdin.on('end', function() { + return callback(null, buff); + }); + + try { + stdin.resume(); + } catch (e) { + callback(e); + } +} + +function camelize(text) { + return text.replace(/(\w)-(\w)/g, function(_, a, b) { + return a + b.toUpperCase(); + }); +} + +/** + * Expose / Entry Point + */ + +if (!module.parent) { + process.title = 'marked'; + main(process.argv.slice(), function(err, code) { + if (err) throw err; + return process.exit(code || 0); + }); +} else { + module.exports = main; +} diff --git a/bower_components/marked/bower.json b/bower_components/marked/bower.json new file mode 100644 index 00000000..57c91f03 --- /dev/null +++ b/bower_components/marked/bower.json @@ -0,0 +1,23 @@ +{ + "name": "marked", + "homepage": "https://github.com/markedjs/marked", + "authors": [ + "Christopher Jeffrey " + ], + "description": "A markdown parser built for speed", + "keywords": [ + "markdown", + "markup", + "html" + ], + "main": "lib/marked.js", + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "app/bower_components", + "test", + "tests" + ] +} diff --git a/bower_components/marked/component.json b/bower_components/marked/component.json new file mode 100644 index 00000000..7ebd0356 --- /dev/null +++ b/bower_components/marked/component.json @@ -0,0 +1,10 @@ +{ + "name": "marked", + "version": "0.3.4", + "repo": "markedjs/marked", + "description": "A markdown parser built for speed", + "keywords": ["markdown", "markup", "html"], + "scripts": ["lib/marked.js"], + "main": "lib/marked.js", + "license": "MIT" +} diff --git a/bower_components/marked/docs/AUTHORS.md b/bower_components/marked/docs/AUTHORS.md new file mode 100644 index 00000000..ff3b8e51 --- /dev/null +++ b/bower_components/marked/docs/AUTHORS.md @@ -0,0 +1,151 @@ +# Authors + +Marked takes an encompassing approach to its community. As such, you can think of these as [concentric circles](https://medium.com/the-node-js-collection/healthy-open-source-967fa8be7951), where each subsequent group is enveloped by the previous one. + +## Users + +Users are anyone using Marked in some fashion, without them, there's no reason for us to exist. + +To be listed: please let us know or submit a PR. + +To be removed: please let us know or submit a PR. + +## Contributors + +Contributors are users who submit a [PR](https://github.com/markedjs/marked/pulls), [Issue](https://github.com/markedjs/marked/issues), or collaborate in making Marked a better product and experience for all the users. + +|Name |GitHub handle |Badge of honor | +|:-------------------|:----------------|:-------------------------------------| +|Karen Yavine |@karenyavine |Snyk's Security Saint | +|Federico Soave |@Feder1co5oave |Regent of the Regex, Master of Marked | +|Brandon der Blätter |@intcreator |Curious Contributor | +|Костя Третяк |@KostyaTretyak |-- | + +To be listed: make a contribution and, if it has significant impact, the committers may be able to add you here. + +To be removed: please let us know or submit a PR. + +[Details on badges](#badges) + +## Committers + +Committers are contributors who also have the responsibility, privilege, some might even say burden of being able to review and merge contributions (just usually not their own). + +A note on "decision making authority". This is related to submitting PRs and the [advice process](http://www.reinventingorganizationswiki.com/Decision_Making). The person marked as having decision making authority over a certain area should be sought for advice in that area before committing to a course of action. + +|Name |GiHub handle |Decision making |Badges of honor (tag for questions) | +|:--------------|:--------------|:----------------------------------------|------------------------------------| +|Tony Brix |@UziTech |Titan of the test harness and Dr. DevOps | | +|Jamie Davis |@davisjam |Seeker of Security | | + +**Should not exceed 5:** For larger PRs affecting more of the codebase and, most likely, review by more people, we try to keep this pool small and responsive and let those with decision making authority have final say without negative repercussions from the other committers. + +To be listed: Committers are usually selected (or they volunteer, using the same process) from contributors who enter the discussions regarding the future direction of Marked (maybe even doing informal reviews of contributions despite not being able to merge them yourself). + +To be removed: You can remove yourself through the [GitHub UI](https://help.github.com/articles/removing-yourself-from-a-collaborator-s-repository/). + +A note on volunteering: + +1. Please do not volunteer unless you believe you can demonstrate to your peers you can do the work required. +2. Please do not overcommit yourself; we count on those committed to the project to be responsive. Really consider, with all you have going on, wehther you able to really commit to it. +3. Don't let the previous frighten you away, it can always be changed later by you or your peers. + +[Details on badges](#badges) + +## Admins + +Admins are committers who also have the responsibility, privilege, and burden of selecting committers and making sure the project itself runs smoothly, which includes community maintenance, governance, dispute resolution, and so on. (Letting the contributors easily enter into, and work within, the project to begin contributing, with as little friction as possible.) + +|Name |GiHub handle |Decision making |Badges of honor (tag for questions) | +|:--------------|:--------------|:----------------------------------------|------------------------------------| +|Steven |@styfle |Open source, of course and GitHub Guru |Humaning Helper | + +**Should not exceed 3:** When there are too many people with the ability to reolves disputes, the dispute itself can quickly turn into a dispute amongst the admins themselves; therefore, we want this group to be small enough to commit to action and large enough to not put too much burden on one person. (Should ensure faster resolution and responsiveness.) + +To be listed: Admins are usually selected from the pool of committers (or they volunteer, using the same process) who demonstrate good understanding of the marked culture, operations, and do their best to help new contributors get up to speed on how to contribute effectively to the project. + +To be removed: You can remove yourself through the [GitHub UI](https://help.github.com/articles/removing-yourself-from-a-collaborator-s-repository/). + +[Details on badges](#badges) + +## Publishers + +Publishers are admins who also have the responsibility, privilege, and burden of publishing the new releases to NPM and performing outreach and external stakeholder communications. Further, when things go pear-shaped, they're the ones taking most of the heat. Finally, when things go well, they're the primary ones praising the contributors who made it possible. + +(In other words, while Admins are focused primarily on the internal workings of the project, Publishers are focused on internal *and* external concerns.) + +|Name |GitHub handle |Decision making |Badges of honor (tag for questions) | +|:----------|:--------------|:------------------------|:-------------------------------------| +|Josh Bruce |@joshbruce |Release Wrangler |Humaning Helper, Heckler of Hypertext | + +**Should not exceed 2:** Having more people with the authority to publish a release can quickly turn into a consensus seeking nightmare (design by committee). Having only one is preferred (Directly Responsible Individual); however, given the nature of the project and its history, having an immediate fallback, and a potential deep fallback (Original author) is probably a good idea. + +[Details on badges](#badges) + +## Original author + +The original author is the publisher who started it all. + +Christopher Jeffrey @chjj + +

    Badges

    + +Badges? You don't *need* no stinkin' badges. + +Movie references aside. (It was either that or, "Let's play a game", but that would have been creepy…that's why it will most likely come later.) + +Badges? If you *want* 'em, we got 'em, and here's how you get 'em (and…dramatic pause…why not two dramatic pauses for emphasis?… how they can be taken away). + +- [ ] Add the appropriate badge to the desired contributor in the desired column of this page, even if they're not listed here yet. +- [ ] Submit a PR (we're big on PRs around here, if you haven't noticed, help us help you). +- [ ] Follow the instructions for submitting a badge PR. (There are more details to find within. Come on. Everybody likes surprises, right? No? Actually, we just try to put documentation where it belongs, closer to the code and part of the sequence of events.) + +### Badges at play: + +
    +
    Curious Contributor
    +
    A contributor with less than one year on this page who is actively engaged in submitting PRs, Issues, making recommendations, sharing thoughts…without being too annoying about it (let's be clear, submitting 100 Issues recommending the Marked Committers send everyone candy is trying for the badge, not honestly earning it).
    +
    Dr. DevOps
    +
    +

    Someone who understands and contributes to improving the developer experience and flow of Marked into the world.

    +
    + "The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives." ~ Wikipedia +
    +
    +
    Eye for the CLI
    +
    At this point? Pretty much anyone who can update that `man` file to the current Marked version without regression in the CLI tool itself.
    +
    GitHub Guru
    +
    Someone who always seems to be able to tell you easier ways to do things with GitHub.
    +
    Humaning Helper
    +
    Someone who goes out of their way to help contributors feel welcomed and valued. Further, someone who takes the extra steps(s) necessary to help new contributors get up to speed. Finally, they maintain composure even in times of disagreement and dispute resolution.
    +
    Heckler of Hypertext
    +
    Someone who demonstrates an esoteric level of knowledge when it comes to HTML. In other words, someone who says things like, "Did you know most Markdown flavors don't have a way to render a description list (`dl`)? All the more reason Markdown `!==` HTML."
    +
    Markdown Maestro
    +
    You know that person who knows about way too many different flavors of Markdown? The one who maybe seems a little too obsessed with the possibilities of Markdown beyond HTML? Come on. You know who they are. Or, at least you could, if you give them this badge.
    +
    Master of Marked
    +
    Someone who demonstrates they know the ins and outs of the codebase for Marked.
    +
    Open source, of course
    +
    Someone who advocates for and has a proven understanding of how to operate within open source communities.
    +
    Regent of the Regex
    +

    Can you demonstrate you understand the following without Google and Stackoverflow?

    +

    /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/

    +

    Because this author can't yet. That's who gets these.

    +
    +
    Seeker of Security
    +
    Someone who has demonstrated a high degree of expertise or authority when it comes to software security.
    +
    Titan of the Test Harness
    +
    Someone who demonstrates high-levels of understanding regarding Marked's test harness.
    +
    Totally Tron
    +
    Someone who demonstrates they are willing and able to "fight for the users", both developers dependent on marked to do their jobs as well as end-users interacting with the output (particularly in the realm of those with the disabilities).
    +
    + +### Special badges that come with the job: + +
    +
    Maker of the Marked mark
    +
    This badge is given to the person or oganization credited with creating the logo (or logotype) used in Marked communications for a given period of time. **Maker of the Marked mark from 2017 to present**, for example.
    +
    Release Wrangler
    +
    This is a badge given to all Publishers.
    +
    Snyk's Security Saint
    +
    This is a badge given to whomever primarily reaches out from Snyk to let us know about security issues.
    +
    diff --git a/bower_components/marked/docs/CNAME b/bower_components/marked/docs/CNAME new file mode 100644 index 00000000..c92fdfcb --- /dev/null +++ b/bower_components/marked/docs/CNAME @@ -0,0 +1 @@ +marked.js.org diff --git a/bower_components/marked/docs/CODE_OF_CONDUCT.md b/bower_components/marked/docs/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..077c0fc7 --- /dev/null +++ b/bower_components/marked/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,71 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to block temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team by submitting a PR with changes to the [AUTHORS](AUTHORS.md) page (or emailing josh@8fold.com). All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at [http://contributor-covenant.org/version/1/4][version] diff --git a/bower_components/marked/docs/CONTRIBUTING.md b/bower_components/marked/docs/CONTRIBUTING.md new file mode 100644 index 00000000..d2198554 --- /dev/null +++ b/bower_components/marked/docs/CONTRIBUTING.md @@ -0,0 +1,95 @@ +# Contributing to Marked + +- [ ] Fork `markedjs/marked`. +- [ ] Clone the library locally using GitHub Desktop or the command line. +- [ ] Make sure you are on the `master` branch. +- [ ] Be sure to run `npm install` or `npm update`. +- [ ] Create a branch. +- [ ] Make as small a change as possible. +- [ ] Run `npm test`, fix any broken things (for linting, you can run `npm run lint` to have the linter fix them for you). +- [ ] Submit a PR. + +## Design principles + +Marked tends to favor following the SOLID set of software design and development principles; mainly the [single responsibility](https://en.wikipedia.org/wiki/Single_responsibility_principle) and [open/closed principles](https://en.wikipedia.org/wiki/Open/closed_principle): + +- **Single responsibility:** Marked, and the components of Marked, have the single responsibility of converting Markdown strings into HTML. +- **Open/closed:** Marked favors giving developers the means to easily extend the library and its components over changing Marked's behavior through configuration options. + +## Priorities + +We think we have our priorities sorted to build quality in. + +The following table lists the ticket type labels we use when there is work to be done on the code either through an Issue or a PR; in priority order. + +|Ticket type label |Description | +|:----------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------| +|L0 - security |A security vulnerability within the Marked library is discovered. | +|L1 - broken |Valid usage results in incorrect output compared to [supported specifications](AUTHORS.md#specifications) OR causes marked to crash AND there is no known workaround for the issue. | +|L2 - annoying |Similar to L1 - broken only there is a known workaround avaialable for the issue. | +|RR - refactor and re-engineer |Results in an improvement to developers using Marked (improved readability) or end-users (faster performance) or both. | +|NFS - new feature (spec related) |A capability Marked does not currently provide but is in one of the [supported specifications](AUTHORS.md#specifications)| +|NFU - new feature (user requested) |A capability Marked does not currently provide but has been requested by users of Marked. | + +## Test early, often, and everything + +We try to write test cases to validate output (writing tests based on the [supported specifications](AUTHORS.md#specifications)) and minimize regression (writing tests for issues fixed). Therefore, if you would like to contribute, some things you should know regarding the test harness. + +|Location |Description | +|:-------------|:---------------------------------------------------| +|/test/browser |For testing Marked in a client-side implementation. | +|/test/new |Tests not related to the original `markdown.pl`. | +|/test/original|Tests validating against the original `markdown.pl`.| + +If your test uses features or options, assuming `gfm` is set to `false`, for example, you can add [front-matter](https://www.npmjs.com/package/front-matter) to the top of +your `.md` file + +``` yml +--- +gfm: false +--- +``` + +## Submitting PRs and Issues + +Marked provides templates for submitting both pull requests and issues. When you begin creating a new PR or issue, you will see instructions on using the template. + +The PR templates include checklists for both the submitter and the reviewer, which, in most cases, will not be the same person. + +## Scripts + +When it comes to NPM commands, we try to use the native scripts provided by the NPM framework. + +To run the tests: + +``` bash +npm test +``` + +To test whether you are using the standard syntax rules for the project: + +```bash +npm run test:lint +``` + +To see time comparisons between Marked and other popular Markdown libraries: + +```bash +npm run bench +``` + +To check for (and fix) standardized syntax (lint): + +```bash +npm run lint +``` + +To build your own minified version of Marked: + +```bash +npm run build +``` + +## Publishing + +Creating GitHub releases and publishing to NPM is limited to conributors and owners. If you would like more information, please see our [publishing documentation](PUBLISHING.md). diff --git a/bower_components/marked/docs/PUBLISHING.md b/bower_components/marked/docs/PUBLISHING.md new file mode 100644 index 00000000..4732fdf7 --- /dev/null +++ b/bower_components/marked/docs/PUBLISHING.md @@ -0,0 +1,24 @@ +# Releasing Marked + +- [ ] See [contributing](CONTRIBUTING.md) +- [ ] Create release branch from `master` (`release-x.y.z`) +- [ ] Submit PR with minimal name: Release x.y.z +- [ ] Complete PR checklists + +## Overall strategy + +**Master is always shippable:** We try to merge PRs in such a way that `master` is the only branch to really be concerned about *and* `master` can always be released. This allows smoother flow between new fetures, bug fixes, and so on. (Almost a continuous deployment setup, without automation.) + +## Versioning + +We follow [semantic versioning](https://semver.org) where the following sequence is true `[major].[minor].[patch]`; therefore, consider the following implications of the release you are preparing: + +1. **Major:** There is at least one change not deemed backward compatible. +2. **Minor:** There is at least one new feature added to the release. +3. **Patch:** No breaking changes, no new features. + +What to expect while Marked is a zero-major (0.x.y): + +1. The major will remain at zero; thereby, alerting consumers to the potentially volatile nature of the package. +2. The minor will tend to be more analagous to a `major` release. For example, we plan to release `0.4.0` once we have fixed most, if not all, known issues related to the CommonMark and GFM specifications because the architecture changes planned during `0.4.0` will most likely introduce breaking changes. +3. The patch will tend to be more analagous to a `minor` release. \ No newline at end of file diff --git a/bower_components/marked/docs/README.md b/bower_components/marked/docs/README.md new file mode 100644 index 00000000..be8d25e6 --- /dev/null +++ b/bower_components/marked/docs/README.md @@ -0,0 +1,98 @@ + + +

    Marked

    + +Marked is + +1. built for speed.* +2. a low-level markdown compiler that allows frequent parsing of large chunks of markdown without caching or blocking for long periods of time.** +3. light-weight while implementing all markdown features from the supported flavors & specifications.*** +4. available as a command line interface (CLI) and running in client- or server-side JavaScript projects. + +

    * Still working on metrics for comparative analysis and definition.
    +** As few dependencies as possible.
    +*** Strict compliance could result in slower processing when running comparative benchmarking.

    + +

    Installation

    + +**CLI:** `npm install -g marked` + +**In-browser:** `npm install marked --save` + +

    Usage

    + +**CLI** + +``` bash +$ marked -o hello.html +hello world +^D +$ cat hello.html +

    hello world

    +``` + +**Browser** + +```html + + + + + Marked in the browser + + + +
    + + + +``` + + +Marked offers [advanced configurations](USING_ADVANCED.md) and [extensibility](USING_PRO.md) as well. + +

    Supported Markdown specifications

    + +We actively support the features of the following [Markdown flavors](https://github.com/commonmark/CommonMark/wiki/Markdown-Flavors). + +|Flavor |Version | +|:----------------------------------------------------------|:----------| +|The original markdown.pl |-- | +|[CommonMark](http://spec.commonmark.org/0.28/) |0.28 | +|[GitHub Flavored Markdown](https://github.github.com/gfm/) |0.28 | + +By supporting the above Markdown flavors, it's possible that Marked can help you use other flavors as well; however, these are not actively supported by the community. + +

    Security

    + +The only completely secure system is the one that doesn't exist in the first place. Having said that, we take the security of Marked very seriously. + +Therefore, please disclose potential security issues by email to the project [committers](AUTHORS.md) as well as the [listed owners within NPM](https://docs.npmjs.com/cli/owner). We will provide an initial assessment of security reports within 48 hours and should apply patches within 2 weeks (also, feel free to contribute a fix for the issue). + +

    Contributing

    + +The marked community enjoys a spirit of collaboration and contribution from all comers. Whether you're just getting started with Markdown, JavaScript, and Marked or you're a veteran with it all figured out, we're here to help each other improve as professionals while helping Marked improve technically. Please see our [contributing documentation](CONTRIBUTING.md) for more details. + +For our Contribution License Agreement, see our [license](https://github.com/markedjs/marked/blob/master/LICENSE.md). + +

    Authors

    + +For list of credited authors and contributors, please see our [authors page](AUTHORS.md). + +

    License

    + +Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License) + +See [license](https://github.com/markedjs/marked/blob/master/LICENSE.md) for more details. diff --git a/bower_components/marked/docs/USING_ADVANCED.md b/bower_components/marked/docs/USING_ADVANCED.md new file mode 100644 index 00000000..c3660ac5 --- /dev/null +++ b/bower_components/marked/docs/USING_ADVANCED.md @@ -0,0 +1,71 @@ +## The `marked` function + +```js +marked(markdownString [,options] [,callback]) +``` + +|Argument |Type |Notes | +|:---------------------|:------------|:----------------------------------------------------------------------------------------------------| +|markdownString |`string` |String of markdown source to be compiled. | +|options|`object`|Hash of options. Can also use `marked.setOptions`. | +|callback |`function` |Called when `markdownString` has been parsed. Can be used as second argument if no `options` present.| + +### Alternative using reference + +```js +// Create reference instance +var myMarked = require('marked'); + +// Set options +// `highlight` example uses `highlight.js` +myMarked.setOptions({ + renderer: new marked.Renderer(), + highlight: function(code) { + return require('highlight.js').highlightAuto(code).value; + }, + pedantic: false, + gfm: true, + tables: true, + breaks: false, + sanitize: false, + smartLists: true, + smartypants: false, + xhtml: false +}); + +// Compile +console.log(myMarked('I am using __markdown__.')); +``` + +

    Options

    + +|Member |Type |Notes | +|:----------|:---------|:----------------------------------------------------------------------------------------------------------------------------| +|highlight |`function`|A function to highlight code blocks. See also: Asynchronous highlighting. | +|renderer |`object` |An object containing functions to render tokens to HTML. See [extensibility](https://github.com/markedjs/marked/blob/master/docs/USING_PRO.md) for more details. Default: `new Renderer()`| +|pedantic |`boolean` |Conform to obscure parts of `markdown.pl` as much as possible. Don't fix original markdown bugs or behavior. Default: `false`| +|gfm |`boolean` |Use approved [GitHub Flavored Markdown (GFM) specification](https://github.github.com/gfm/). | +|tables |`boolean` |Use [GFM Tables extension](https://github.github.com/gfm/#tables-extension-). Requires `gfm` be `true`. | +|breaks |`boolean` |Use GFM [hard](https://github.github.com/gfm/#hard-line-breaks) and [soft](https://github.github.com/gfm/#soft-line-breaks) line breaks. Requires `gfm` be `true`. Default: `false`| +|sanitize |`boolean` |Ignore HTML passed into `markdownString` (sanitize the input). Default: `false` | +|smartlists |`boolean` |Use smarter list behavior than those found in `markdown.pl`. Default: `true` | +|smartypants|`boolean` |Use "smart" typographic punctuation for things like quotes and dashes. | +|xhtml |`boolean` |Self-close the tags for void elements (<br/>, <img/>, etc.) with a "/" as required by XHTML. Default: `false` | + +

    Asynchronous highlighting

    + +Unlike `highlight.js` the `pygmatize.js` library uses asynchronous highlighting. This example demonstrates that marked is agnostic when it comes to the highlighter you use. + +```js +myMarked.setOptions({ + highlight: function(code, lang, callback) { + require('pygmentize-bundled') ({ lang: lang, format: 'html' }, code, function (err, result) { + callback(err, result.toString()); + }); + } +}); + +console.log(myMarked(markdownString)); +``` + +In both examples, `code` is a `string` representing the section of code to pass to the highlighter. In this example, `lang` is a `string` informing the highlighter what programming lnaguage to use for the `code` and `callback` is the `function` the asynchronous highlighter will call once complete. \ No newline at end of file diff --git a/bower_components/marked/docs/USING_PRO.md b/bower_components/marked/docs/USING_PRO.md new file mode 100644 index 00000000..6981500f --- /dev/null +++ b/bower_components/marked/docs/USING_PRO.md @@ -0,0 +1,136 @@ +## Extending Marked + +To champion the single-reponsibility and open/closed prinicples, we have tried to make it relatively painless to extend marked. If you are looking to add custom functionality, this is the place to start. + + + +

    The renderer

    + +The renderer is... + +**Example:** Overriding default heading token by adding an embedded anchor tag like on GitHub. + +```js +// Create reference instance +var myMarked = require('marked'); + +// Get reference +var renderer = new myMarked.Renderer(); + +// Override function +renderer.heading = function (text, level) { + var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-'); + + return ` + + + + ${text} + `; +}; + +// Run marked +console.log(marked('# heading+', { renderer: renderer })); +``` + +**Output:** + +```html +

    + + + + heading+ +

    +``` + +### Block level renderer methods + +- code(*string* code, *string* language) +- blockquote(*string* quote) +- html(*string* html) +- heading(*string* text, *number* level) +- hr() +- list(*string* body, *boolean* ordered) +- listitem(*string* text) +- paragraph(*string* text) +- table(*string* header, *string* body) +- tablerow(*string* content) +- tablecell(*string* content, *object* flags) + +`flags` has the following properties: + +```js +{ + header: true || false, + align: 'center' || 'left' || 'right' +} +``` + +### Inline level renderer methods + +- strong(*string* text) +- em(*string* text) +- codespan(*string* code) +- br() +- del(*string* text) +- link(*string* href, *string* title, *string* text) +- image(*string* href, *string* title, *string* text) +- text(*string* text) + +

    The lexer

    + +The lexer is... + + +

    The parser

    + +The parser is... + +*** + +

    Access to lexer and parser

    + +You also have direct access to the lexer and parser if you so desire. + +``` js +var tokens = marked.lexer(text, options); +console.log(marked.parser(tokens)); +``` + +``` js +var lexer = new marked.Lexer(options); +var tokens = lexer.lex(text); +console.log(tokens); +console.log(lexer.rules); +``` + +### Pro level + +You also have direct access to the lexer and parser if you so desire. + +``` js +var tokens = marked.lexer(text, options); +console.log(marked.parser(tokens)); +``` + +``` js +var lexer = new marked.Lexer(options); +var tokens = lexer.lex(text); +console.log(tokens); +console.log(lexer.rules); +``` + +``` bash +$ node +> require('marked').lexer('> i am using marked.') +[ { type: 'blockquote_start' }, + { type: 'paragraph', + text: 'i am using marked.' }, + { type: 'blockquote_end' }, + links: {} ] +``` \ No newline at end of file diff --git a/bower_components/marked/docs/broken.md b/bower_components/marked/docs/broken.md new file mode 100644 index 00000000..7bfa49e8 --- /dev/null +++ b/bower_components/marked/docs/broken.md @@ -0,0 +1,426 @@ +# Markdown is broken + +I have a lot of scraps of markdown engine oddities that I've collected over the +years. What you see below is slightly messy, but it's what I've managed to +cobble together to illustrate the differences between markdown engines, and +why, if there ever is a markdown specification, it has to be absolutely +thorough. There are a lot more of these little differences I have documented +elsewhere. I know I will find them lingering on my disk one day, but until +then, I'll continue to add whatever strange nonsensical things I find. + +Some of these examples may only mention a particular engine compared to marked. +However, the examples with markdown.pl could easily be swapped out for +discount, upskirt, or markdown.js, and you would very easily see even more +inconsistencies. + +A lot of this was written when I was very unsatisfied with the inconsistencies +between markdown engines. Please excuse the frustration noticeable in my +writing. + +## Examples of markdown's "stupid" list parsing + +``` +$ markdown.pl + + * item1 + + * item2 + + text +^D +
      +
    • item1

      + +
        +
      • item2
      • +
      + +

      text

    • +

    +``` + + +``` +$ marked + * item1 + + * item2 + + text +^D +
      +
    • item1

      +
        +
      • item2
      • +
      +

      text

      +
    • +
    +``` + +Which looks correct to you? + +- - - + +``` +$ markdown.pl +* hello + > world +^D +

      +
    • hello

      + +
      +

      world

    • +

    + +``` + +``` +$ marked +* hello + > world +^D +
      +
    • hello
      +

      world

      +
      +
    • +
    +``` + +Again, which looks correct to you? + +- - - + +EXAMPLE: + +``` +$ markdown.pl +* hello + * world + * hi + code +^D +
      +
    • hello +
        +
      • world
      • +
      • hi + code
      • +
    • +
    +``` + +The code isn't a code block even though it's after the bullet margin. I know, +lets give it two more spaces, effectively making it 8 spaces past the bullet. + +``` +$ markdown.pl +* hello + * world + * hi + code +^D +
      +
    • hello +
        +
      • world
      • +
      • hi + code
      • +
    • +
    +``` + +And, it's still not a code block. Did you also notice that the 3rd item isn't +even its own list? Markdown screws that up too because of its indentation +unaware parsing. + +- - - + +Let's look at some more examples of markdown's list parsing: + +``` +$ markdown.pl + + * item1 + + * item2 + + text +^D +
      +
    • item1

      + +
        +
      • item2
      • +
      + +

      text

    • +

    +``` + +Misnested tags. + + +``` +$ marked + * item1 + + * item2 + + text +^D +
      +
    • item1

      +
        +
      • item2
      • +
      +

      text

      +
    • +
    +``` + +Which looks correct to you? + +- - - + +``` +$ markdown.pl +* hello + > world +^D +

      +
    • hello

      + +
      +

      world

    • +

    + +``` + +More misnested tags. + + +``` +$ marked +* hello + > world +^D +
      +
    • hello
      +

      world

      +
      +
    • +
    +``` + +Again, which looks correct to you? + +- - - + +# Why quality matters - Part 2 + +``` bash +$ markdown.pl +* hello + > world +^D +

      +
    • hello

      + +
      +

      world

    • +

    + +``` + +``` bash +$ sundown # upskirt +* hello + > world +^D +
      +
    • hello +> world
    • +
    +``` + +``` bash +$ marked +* hello + > world +^D +
    • hello

      world

    +``` + +Which looks correct to you? + +- - - + +See: https://github.com/evilstreak/markdown-js/issues/23 + +``` bash +$ markdown.pl # upskirt/markdown.js/discount +* hello + var a = 1; +* world +^D +
      +
    • hello +var a = 1;
    • +
    • world
    • +
    +``` + +``` bash +$ marked +* hello + var a = 1; +* world +^D +
    • hello +
      code>var a = 1;
    • +
    • world
    +``` + +Which looks more reasonable? Why shouldn't code blocks be able to appear in +list items in a sane way? + +- - - + +``` bash +$ markdown.js +
    hello
    + +hello +^D +

    <div>hello</div>

    + +

    <span>hello</span>

    +``` + +``` bash +$ marked +
    hello
    + +hello +^D +
    hello
    + + +

    hello +

    +``` + +- - - + +See: https://github.com/evilstreak/markdown-js/issues/27 + +``` bash +$ markdown.js +[![an image](/image)](/link) +^D +

    ![an image

    +``` + +``` bash +$ marked +[![an image](/image)](/link) +^D +

    an image +

    +``` + +- - - + +See: https://github.com/evilstreak/markdown-js/issues/24 + +``` bash +$ markdown.js +> a + +> b + +> c +^D +

    a

    bundefined> c

    +``` + +``` bash +$ marked +> a + +> b + +> c +^D +

    a + +

    +

    b + +

    +

    c +

    +``` + +- - - + +``` bash +$ markdown.pl +* hello + * world + how + + are + you + + * today +* hi +^D +
      +
    • hello

      + +
        +
      • world +how
      • +
      + +

      are +you

      + +
        +
      • today
      • +
    • +
    • hi
    • +
    +``` + +``` bash +$ marked +* hello + * world + how + + are + you + + * today +* hi +^D +
      +
    • hello

      +
        +
      • world +how

        +

        are +you

        +
      • +
      • today

        +
      • +
      +
    • +
    • hi
    • +
    +``` diff --git a/bower_components/marked/docs/img/logo-black-and-white.svg b/bower_components/marked/docs/img/logo-black-and-white.svg new file mode 100644 index 00000000..5f6c0b78 --- /dev/null +++ b/bower_components/marked/docs/img/logo-black-and-white.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/marked/docs/img/logo-black.svg b/bower_components/marked/docs/img/logo-black.svg new file mode 100644 index 00000000..a67fb80e --- /dev/null +++ b/bower_components/marked/docs/img/logo-black.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bower_components/marked/docs/index.html b/bower_components/marked/docs/index.html new file mode 100644 index 00000000..c9b0fda4 --- /dev/null +++ b/bower_components/marked/docs/index.html @@ -0,0 +1,122 @@ + + + + + Marked.js Documentation + + + +
    +
    + + + +

    Marked.js Documentation

    +
    + + + Fork me on GitHub + + +
    +
    + + + + + + diff --git a/bower_components/marked/index.js b/bower_components/marked/index.js new file mode 100644 index 00000000..a12f9056 --- /dev/null +++ b/bower_components/marked/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/marked'); diff --git a/bower_components/marked/jasmine.json b/bower_components/marked/jasmine.json new file mode 100644 index 00000000..8d1be919 --- /dev/null +++ b/bower_components/marked/jasmine.json @@ -0,0 +1,11 @@ +{ + "spec_dir": "test", + "spec_files": [ + "**/*-spec.js" + ], + "helpers": [ + "helpers/**/*.js" + ], + "stopSpecOnExpectationFailure": false, + "random": true +} diff --git a/bower_components/marked/lib/marked.js b/bower_components/marked/lib/marked.js new file mode 100644 index 00000000..5552616e --- /dev/null +++ b/bower_components/marked/lib/marked.js @@ -0,0 +1,1388 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ + +;(function(root) { +'use strict'; + +/** + * Block-Level Grammar + */ + +var block = { + newline: /^\n+/, + code: /^( {4}[^\n]+\n*)+/, + fences: noop, + hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/, + heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, + nptable: noop, + blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/, + list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, + html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, + def: /^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, + table: noop, + lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, + paragraph: /^([^\n]+(?:\n?(?!hr|heading|lheading| {0,3}>|tag)[^\n]+)+)/, + text: /^[^\n]+/ +}; + +block._label = /(?:\\[\[\]]|[^\[\]])+/; +block._title = /(?:"(?:\\"|[^"]|"[^"\n]*")*"|'\n?(?:[^'\n]+\n?)*'|\([^()]*\))/; +block.def = edit(block.def) + .replace('label', block._label) + .replace('title', block._title) + .getRegex(); + +block.bullet = /(?:[*+-]|\d+\.)/; +block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; +block.item = edit(block.item, 'gm') + .replace(/bull/g, block.bullet) + .getRegex(); + +block.list = edit(block.list) + .replace(/bull/g, block.bullet) + .replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))') + .replace('def', '\\n+(?=' + block.def.source + ')') + .getRegex(); + +block._tag = '(?!(?:' + + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b'; + +block.html = edit(block.html) + .replace('comment', //) + .replace('closed', /<(tag)[\s\S]+?<\/\1>/) + .replace('closing', /\s]*)*?\/?>/) + .replace(/tag/g, block._tag) + .getRegex(); + +block.paragraph = edit(block.paragraph) + .replace('hr', block.hr) + .replace('heading', block.heading) + .replace('lheading', block.lheading) + .replace('tag', '<' + block._tag) + .getRegex(); + +block.blockquote = edit(block.blockquote) + .replace('paragraph', block.paragraph) + .getRegex(); + +/** + * Normal Block Grammar + */ + +block.normal = merge({}, block); + +/** + * GFM Block Grammar + */ + +block.gfm = merge({}, block.normal, { + fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/, + paragraph: /^/, + heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ +}); + +block.gfm.paragraph = edit(block.paragraph) + .replace('(?!', '(?!' + + block.gfm.fences.source.replace('\\1', '\\2') + '|' + + block.list.source.replace('\\1', '\\3') + '|') + .getRegex(); + +/** + * GFM + Tables Block Grammar + */ + +block.tables = merge({}, block.gfm, { + nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, + table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ +}); + +/** + * Block Lexer + */ + +function Lexer(options) { + this.tokens = []; + this.tokens.links = {}; + this.options = options || marked.defaults; + this.rules = block.normal; + + if (this.options.gfm) { + if (this.options.tables) { + this.rules = block.tables; + } else { + this.rules = block.gfm; + } + } +} + +/** + * Expose Block Rules + */ + +Lexer.rules = block; + +/** + * Static Lex Method + */ + +Lexer.lex = function(src, options) { + var lexer = new Lexer(options); + return lexer.lex(src); +}; + +/** + * Preprocessing + */ + +Lexer.prototype.lex = function(src) { + src = src + .replace(/\r\n|\r/g, '\n') + .replace(/\t/g, ' ') + .replace(/\u00a0/g, ' ') + .replace(/\u2424/g, '\n'); + + return this.token(src, true); +}; + +/** + * Lexing + */ + +Lexer.prototype.token = function(src, top) { + src = src.replace(/^ +$/gm, ''); + var next, + loose, + cap, + bull, + b, + item, + space, + i, + tag, + l, + isordered; + + while (src) { + // newline + if (cap = this.rules.newline.exec(src)) { + src = src.substring(cap[0].length); + if (cap[0].length > 1) { + this.tokens.push({ + type: 'space' + }); + } + } + + // code + if (cap = this.rules.code.exec(src)) { + src = src.substring(cap[0].length); + cap = cap[0].replace(/^ {4}/gm, ''); + this.tokens.push({ + type: 'code', + text: !this.options.pedantic + ? cap.replace(/\n+$/, '') + : cap + }); + continue; + } + + // fences (gfm) + if (cap = this.rules.fences.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'code', + lang: cap[2], + text: cap[3] || '' + }); + continue; + } + + // heading + if (cap = this.rules.heading.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'heading', + depth: cap[1].length, + text: cap[2] + }); + continue; + } + + // table no leading pipe (gfm) + if (top && (cap = this.rules.nptable.exec(src))) { + src = src.substring(cap[0].length); + + item = { + type: 'table', + header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3].replace(/\n$/, '').split('\n') + }; + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; + } + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = item.cells[i].split(/ *\| */); + } + + this.tokens.push(item); + + continue; + } + + // hr + if (cap = this.rules.hr.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'hr' + }); + continue; + } + + // blockquote + if (cap = this.rules.blockquote.exec(src)) { + src = src.substring(cap[0].length); + + this.tokens.push({ + type: 'blockquote_start' + }); + + cap = cap[0].replace(/^ *> ?/gm, ''); + + // Pass `top` to keep the current + // "toplevel" state. This is exactly + // how markdown.pl works. + this.token(cap, top); + + this.tokens.push({ + type: 'blockquote_end' + }); + + continue; + } + + // list + if (cap = this.rules.list.exec(src)) { + src = src.substring(cap[0].length); + bull = cap[2]; + isordered = bull.length > 1; + + this.tokens.push({ + type: 'list_start', + ordered: isordered, + start: isordered ? +bull : '' + }); + + // Get each top-level item. + cap = cap[0].match(this.rules.item); + + next = false; + l = cap.length; + i = 0; + + for (; i < l; i++) { + item = cap[i]; + + // Remove the list item's bullet + // so it is seen as the next token. + space = item.length; + item = item.replace(/^ *([*+-]|\d+\.) +/, ''); + + // Outdent whatever the + // list item contains. Hacky. + if (~item.indexOf('\n ')) { + space -= item.length; + item = !this.options.pedantic + ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') + : item.replace(/^ {1,4}/gm, ''); + } + + // Determine whether the next list item belongs here. + // Backpedal if it does not belong in this list. + if (this.options.smartLists && i !== l - 1) { + b = block.bullet.exec(cap[i + 1])[0]; + if (bull !== b && !(bull.length > 1 && b.length > 1)) { + src = cap.slice(i + 1).join('\n') + src; + i = l - 1; + } + } + + // Determine whether item is loose or not. + // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ + // for discount behavior. + loose = next || /\n\n(?!\s*$)/.test(item); + if (i !== l - 1) { + next = item.charAt(item.length - 1) === '\n'; + if (!loose) loose = next; + } + + this.tokens.push({ + type: loose + ? 'loose_item_start' + : 'list_item_start' + }); + + // Recurse. + this.token(item, false); + + this.tokens.push({ + type: 'list_item_end' + }); + } + + this.tokens.push({ + type: 'list_end' + }); + + continue; + } + + // html + if (cap = this.rules.html.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: this.options.sanitize + ? 'paragraph' + : 'html', + pre: !this.options.sanitizer + && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), + text: cap[0] + }); + continue; + } + + // def + if (top && (cap = this.rules.def.exec(src))) { + src = src.substring(cap[0].length); + if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1); + tag = cap[1].toLowerCase(); + if (!this.tokens.links[tag]) { + this.tokens.links[tag] = { + href: cap[2], + title: cap[3] + }; + } + continue; + } + + // table (gfm) + if (top && (cap = this.rules.table.exec(src))) { + src = src.substring(cap[0].length); + + item = { + type: 'table', + header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') + }; + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; + } + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = item.cells[i] + .replace(/^ *\| *| *\| *$/g, '') + .split(/ *\| */); + } + + this.tokens.push(item); + + continue; + } + + // lheading + if (cap = this.rules.lheading.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'heading', + depth: cap[2] === '=' ? 1 : 2, + text: cap[1] + }); + continue; + } + + // top-level paragraph + if (top && (cap = this.rules.paragraph.exec(src))) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'paragraph', + text: cap[1].charAt(cap[1].length - 1) === '\n' + ? cap[1].slice(0, -1) + : cap[1] + }); + continue; + } + + // text + if (cap = this.rules.text.exec(src)) { + // Top-level should never reach here. + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'text', + text: cap[0] + }); + continue; + } + + if (src) { + throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); + } + } + + return this.tokens; +}; + +/** + * Inline-Level Grammar + */ + +var inline = { + escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, + autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/, + url: noop, + tag: /^|^<\/?[a-zA-Z0-9\-]+(?:"[^"]*"|'[^']*'|\s[^<'">\/\s]*)*?\/?>/, + link: /^!?\[(inside)\]\(href\)/, + reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, + nolink: /^!?\[((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\]/, + strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, + em: /^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/, + code: /^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/, + br: /^ {2,}\n(?!\s*$)/, + del: noop, + text: /^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/; + +inline.link = edit(inline.link) + .replace('inside', inline._inside) + .replace('href', inline._href) + .getRegex(); + +inline.reflink = edit(inline.reflink) + .replace('inside', inline._inside) + .getRegex(); + +/** + * Normal Inline Grammar + */ + +inline.normal = merge({}, inline); + +/** + * Pedantic Inline Grammar + */ + +inline.pedantic = merge({}, inline.normal, { + strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, + em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ +}); + +/** + * GFM Inline Grammar + */ + +inline.gfm = merge({}, inline.normal, { + escape: edit(inline.escape).replace('])', '~|])').getRegex(), + url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/) + .replace('email', inline._email) + .getRegex(), + _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, + del: /^~~(?=\S)([\s\S]*?\S)~~/, + text: edit(inline.text) + .replace(']|', '~]|') + .replace('|', '|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&\'*+/=?^_`{\\|}~-]+@|') + .getRegex() +}); + +/** + * GFM + Line Breaks Inline Grammar + */ + +inline.breaks = merge({}, inline.gfm, { + br: edit(inline.br).replace('{2,}', '*').getRegex(), + text: edit(inline.gfm.text).replace('{2,}', '*').getRegex() +}); + +/** + * Inline Lexer & Compiler + */ + +function InlineLexer(links, options) { + this.options = options || marked.defaults; + this.links = links; + this.rules = inline.normal; + this.renderer = this.options.renderer || new Renderer(); + this.renderer.options = this.options; + + if (!this.links) { + throw new Error('Tokens array requires a `links` property.'); + } + + if (this.options.gfm) { + if (this.options.breaks) { + this.rules = inline.breaks; + } else { + this.rules = inline.gfm; + } + } else if (this.options.pedantic) { + this.rules = inline.pedantic; + } +} + +/** + * Expose Inline Rules + */ + +InlineLexer.rules = inline; + +/** + * Static Lexing/Compiling Method + */ + +InlineLexer.output = function(src, links, options) { + var inline = new InlineLexer(links, options); + return inline.output(src); +}; + +/** + * Lexing/Compiling + */ + +InlineLexer.prototype.output = function(src) { + var out = '', + link, + text, + href, + cap; + + while (src) { + // escape + if (cap = this.rules.escape.exec(src)) { + src = src.substring(cap[0].length); + out += cap[1]; + continue; + } + + // autolink + if (cap = this.rules.autolink.exec(src)) { + src = src.substring(cap[0].length); + if (cap[2] === '@') { + text = escape(this.mangle(cap[1])); + href = 'mailto:' + text; + } else { + text = escape(cap[1]); + href = text; + } + out += this.renderer.link(href, null, text); + continue; + } + + // url (gfm) + if (!this.inLink && (cap = this.rules.url.exec(src))) { + cap[0] = this.rules._backpedal.exec(cap[0])[0]; + src = src.substring(cap[0].length); + if (cap[2] === '@') { + text = escape(cap[0]); + href = 'mailto:' + text; + } else { + text = escape(cap[0]); + if (cap[1] === 'www.') { + href = 'http://' + text; + } else { + href = text; + } + } + out += this.renderer.link(href, null, text); + continue; + } + + // tag + if (cap = this.rules.tag.exec(src)) { + if (!this.inLink && /^/i.test(cap[0])) { + this.inLink = false; + } + src = src.substring(cap[0].length); + out += this.options.sanitize + ? this.options.sanitizer + ? this.options.sanitizer(cap[0]) + : escape(cap[0]) + : cap[0] + continue; + } + + // link + if (cap = this.rules.link.exec(src)) { + src = src.substring(cap[0].length); + this.inLink = true; + out += this.outputLink(cap, { + href: cap[2], + title: cap[3] + }); + this.inLink = false; + continue; + } + + // reflink, nolink + if ((cap = this.rules.reflink.exec(src)) + || (cap = this.rules.nolink.exec(src))) { + src = src.substring(cap[0].length); + link = (cap[2] || cap[1]).replace(/\s+/g, ' '); + link = this.links[link.toLowerCase()]; + if (!link || !link.href) { + out += cap[0].charAt(0); + src = cap[0].substring(1) + src; + continue; + } + this.inLink = true; + out += this.outputLink(cap, link); + this.inLink = false; + continue; + } + + // strong + if (cap = this.rules.strong.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.strong(this.output(cap[2] || cap[1])); + continue; + } + + // em + if (cap = this.rules.em.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.em(this.output(cap[2] || cap[1])); + continue; + } + + // code + if (cap = this.rules.code.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.codespan(escape(cap[2].trim(), true)); + continue; + } + + // br + if (cap = this.rules.br.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.br(); + continue; + } + + // del (gfm) + if (cap = this.rules.del.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.del(this.output(cap[1])); + continue; + } + + // text + if (cap = this.rules.text.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.text(escape(this.smartypants(cap[0]))); + continue; + } + + if (src) { + throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); + } + } + + return out; +}; + +/** + * Compile Link + */ + +InlineLexer.prototype.outputLink = function(cap, link) { + var href = escape(link.href), + title = link.title ? escape(link.title) : null; + + return cap[0].charAt(0) !== '!' + ? this.renderer.link(href, title, this.output(cap[1])) + : this.renderer.image(href, title, escape(cap[1])); +}; + +/** + * Smartypants Transformations + */ + +InlineLexer.prototype.smartypants = function(text) { + if (!this.options.smartypants) return text; + return text + // em-dashes + .replace(/---/g, '\u2014') + // en-dashes + .replace(/--/g, '\u2013') + // opening singles + .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') + // closing singles & apostrophes + .replace(/'/g, '\u2019') + // opening doubles + .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') + // closing doubles + .replace(/"/g, '\u201d') + // ellipses + .replace(/\.{3}/g, '\u2026'); +}; + +/** + * Mangle Links + */ + +InlineLexer.prototype.mangle = function(text) { + if (!this.options.mangle) return text; + var out = '', + l = text.length, + i = 0, + ch; + + for (; i < l; i++) { + ch = text.charCodeAt(i); + if (Math.random() > 0.5) { + ch = 'x' + ch.toString(16); + } + out += '&#' + ch + ';'; + } + + return out; +}; + +/** + * Renderer + */ + +function Renderer(options) { + this.options = options || {}; +} + +Renderer.prototype.code = function(code, lang, escaped) { + if (this.options.highlight) { + var out = this.options.highlight(code, lang); + if (out != null && out !== code) { + escaped = true; + code = out; + } + } + + if (!lang) { + return '
    '
    +      + (escaped ? code : escape(code, true))
    +      + '\n
    '; + } + + return '
    '
    +    + (escaped ? code : escape(code, true))
    +    + '\n
    \n'; +}; + +Renderer.prototype.blockquote = function(quote) { + return '
    \n' + quote + '
    \n'; +}; + +Renderer.prototype.html = function(html) { + return html; +}; + +Renderer.prototype.heading = function(text, level, raw) { + return '' + + text + + '\n'; +}; + +Renderer.prototype.hr = function() { + return this.options.xhtml ? '
    \n' : '
    \n'; +}; + +Renderer.prototype.list = function(body, ordered, start) { + var type = ordered ? 'ol' : 'ul', + startatt = (ordered && start !== 1) ? (' start="' + start + '"') : ''; + return '<' + type + startatt + '>\n' + body + '\n'; +}; + +Renderer.prototype.listitem = function(text) { + return '
  1. ' + text + '
  2. \n'; +}; + +Renderer.prototype.paragraph = function(text) { + return '

    ' + text + '

    \n'; +}; + +Renderer.prototype.table = function(header, body) { + return '\n' + + '\n' + + header + + '\n' + + '\n' + + body + + '\n' + + '
    \n'; +}; + +Renderer.prototype.tablerow = function(content) { + return '\n' + content + '\n'; +}; + +Renderer.prototype.tablecell = function(content, flags) { + var type = flags.header ? 'th' : 'td'; + var tag = flags.align + ? '<' + type + ' style="text-align:' + flags.align + '">' + : '<' + type + '>'; + return tag + content + '\n'; +}; + +// span level renderer +Renderer.prototype.strong = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.em = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.codespan = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.br = function() { + return this.options.xhtml ? '
    ' : '
    '; +}; + +Renderer.prototype.del = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.link = function(href, title, text) { + if (this.options.sanitize) { + try { + var prot = decodeURIComponent(unescape(href)) + .replace(/[^\w:]/g, '') + .toLowerCase(); + } catch (e) { + return text; + } + if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) { + return text; + } + } + if (this.options.baseUrl && !originIndependentUrl.test(href)) { + href = resolveUrl(this.options.baseUrl, href); + } + var out = '
    '; + return out; +}; + +Renderer.prototype.image = function(href, title, text) { + if (this.options.baseUrl && !originIndependentUrl.test(href)) { + href = resolveUrl(this.options.baseUrl, href); + } + var out = '' + text + '' : '>'; + return out; +}; + +Renderer.prototype.text = function(text) { + return text; +}; + +/** + * TextRenderer + * returns only the textual part of the token + */ + +function TextRenderer() {} + +// no need for block level renderers + +TextRenderer.prototype.strong = +TextRenderer.prototype.em = +TextRenderer.prototype.codespan = +TextRenderer.prototype.del = +TextRenderer.prototype.text = function (text) { + return text; +} + +TextRenderer.prototype.link = +TextRenderer.prototype.image = function(href, title, text) { + return '' + text; +} + +TextRenderer.prototype.br = function() { + return ''; +} + +/** + * Parsing & Compiling + */ + +function Parser(options) { + this.tokens = []; + this.token = null; + this.options = options || marked.defaults; + this.options.renderer = this.options.renderer || new Renderer(); + this.renderer = this.options.renderer; + this.renderer.options = this.options; +} + +/** + * Static Parse Method + */ + +Parser.parse = function(src, options) { + var parser = new Parser(options); + return parser.parse(src); +}; + +/** + * Parse Loop + */ + +Parser.prototype.parse = function(src) { + this.inline = new InlineLexer(src.links, this.options); + // use an InlineLexer with a TextRenderer to extract pure text + this.inlineText = new InlineLexer( + src.links, + merge({}, this.options, {renderer: new TextRenderer()}) + ); + this.tokens = src.reverse(); + + var out = ''; + while (this.next()) { + out += this.tok(); + } + + return out; +}; + +/** + * Next Token + */ + +Parser.prototype.next = function() { + return this.token = this.tokens.pop(); +}; + +/** + * Preview Next Token + */ + +Parser.prototype.peek = function() { + return this.tokens[this.tokens.length - 1] || 0; +}; + +/** + * Parse Text Tokens + */ + +Parser.prototype.parseText = function() { + var body = this.token.text; + + while (this.peek().type === 'text') { + body += '\n' + this.next().text; + } + + return this.inline.output(body); +}; + +/** + * Parse Current Token + */ + +Parser.prototype.tok = function() { + switch (this.token.type) { + case 'space': { + return ''; + } + case 'hr': { + return this.renderer.hr(); + } + case 'heading': { + return this.renderer.heading( + this.inline.output(this.token.text), + this.token.depth, + unescape(this.inlineText.output(this.token.text))); + } + case 'code': { + return this.renderer.code(this.token.text, + this.token.lang, + this.token.escaped); + } + case 'table': { + var header = '', + body = '', + i, + row, + cell, + j; + + // header + cell = ''; + for (i = 0; i < this.token.header.length; i++) { + cell += this.renderer.tablecell( + this.inline.output(this.token.header[i]), + { header: true, align: this.token.align[i] } + ); + } + header += this.renderer.tablerow(cell); + + for (i = 0; i < this.token.cells.length; i++) { + row = this.token.cells[i]; + + cell = ''; + for (j = 0; j < row.length; j++) { + cell += this.renderer.tablecell( + this.inline.output(row[j]), + { header: false, align: this.token.align[j] } + ); + } + + body += this.renderer.tablerow(cell); + } + return this.renderer.table(header, body); + } + case 'blockquote_start': { + body = ''; + + while (this.next().type !== 'blockquote_end') { + body += this.tok(); + } + + return this.renderer.blockquote(body); + } + case 'list_start': { + body = ''; + var ordered = this.token.ordered, + start = this.token.start; + + while (this.next().type !== 'list_end') { + body += this.tok(); + } + + return this.renderer.list(body, ordered, start); + } + case 'list_item_start': { + body = ''; + + while (this.next().type !== 'list_item_end') { + body += this.token.type === 'text' + ? this.parseText() + : this.tok(); + } + + return this.renderer.listitem(body); + } + case 'loose_item_start': { + body = ''; + + while (this.next().type !== 'list_item_end') { + body += this.tok(); + } + + return this.renderer.listitem(body); + } + case 'html': { + var html = !this.token.pre && !this.options.pedantic + ? this.inline.output(this.token.text) + : this.token.text; + return this.renderer.html(html); + } + case 'paragraph': { + return this.renderer.paragraph(this.inline.output(this.token.text)); + } + case 'text': { + return this.renderer.paragraph(this.parseText()); + } + } +}; + +/** + * Helpers + */ + +function escape(html, encode) { + return html + .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function unescape(html) { + // explicitly match decimal, hex, and named HTML entities + return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, function(_, n) { + n = n.toLowerCase(); + if (n === 'colon') return ':'; + if (n.charAt(0) === '#') { + return n.charAt(1) === 'x' + ? String.fromCharCode(parseInt(n.substring(2), 16)) + : String.fromCharCode(+n.substring(1)); + } + return ''; + }); +} + +function edit(regex, opt) { + regex = regex.source; + opt = opt || ''; + return { + replace: function(name, val) { + val = val.source || val; + val = val.replace(/(^|[^\[])\^/g, '$1'); + regex = regex.replace(name, val); + return this; + }, + getRegex: function() { + return new RegExp(regex, opt); + } + }; +} + +function resolveUrl(base, href) { + if (!baseUrls[' ' + base]) { + // we can ignore everything in base after the last slash of its path component, + // but we might need to add _that_ + // https://tools.ietf.org/html/rfc3986#section-3 + if (/^[^:]+:\/*[^/]*$/.test(base)) { + baseUrls[' ' + base] = base + '/'; + } else { + baseUrls[' ' + base] = base.replace(/[^/]*$/, ''); + } + } + base = baseUrls[' ' + base]; + + if (href.slice(0, 2) === '//') { + return base.replace(/:[\s\S]*/, ':') + href; + } else if (href.charAt(0) === '/') { + return base.replace(/(:\/*[^/]*)[\s\S]*/, '$1') + href; + } else { + return base + href; + } +} +var baseUrls = {}; +var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; + +function noop() {} +noop.exec = noop; + +function merge(obj) { + var i = 1, + target, + key; + + for (; i < arguments.length; i++) { + target = arguments[i]; + for (key in target) { + if (Object.prototype.hasOwnProperty.call(target, key)) { + obj[key] = target[key]; + } + } + } + + return obj; +} + +/** + * Marked + */ + +function marked(src, opt, callback) { + // throw error in case of non string input + if (typeof src === 'undefined' || src === null) { + throw new Error('marked(): input parameter is undefined or null'); + } + if (typeof src !== 'string') { + throw new Error('marked(): input parameter is of type ' + + Object.prototype.toString.call(src) + ', string expected'); + } + + if (callback || typeof opt === 'function') { + if (!callback) { + callback = opt; + opt = null; + } + + opt = merge({}, marked.defaults, opt || {}); + + var highlight = opt.highlight, + tokens, + pending, + i = 0; + + try { + tokens = Lexer.lex(src, opt) + } catch (e) { + return callback(e); + } + + pending = tokens.length; + + var done = function(err) { + if (err) { + opt.highlight = highlight; + return callback(err); + } + + var out; + + try { + out = Parser.parse(tokens, opt); + } catch (e) { + err = e; + } + + opt.highlight = highlight; + + return err + ? callback(err) + : callback(null, out); + }; + + if (!highlight || highlight.length < 3) { + return done(); + } + + delete opt.highlight; + + if (!pending) return done(); + + for (; i < tokens.length; i++) { + (function(token) { + if (token.type !== 'code') { + return --pending || done(); + } + return highlight(token.text, token.lang, function(err, code) { + if (err) return done(err); + if (code == null || code === token.text) { + return --pending || done(); + } + token.text = code; + token.escaped = true; + --pending || done(); + }); + })(tokens[i]); + } + + return; + } + try { + if (opt) opt = merge({}, marked.defaults, opt); + return Parser.parse(Lexer.lex(src, opt), opt); + } catch (e) { + e.message += '\nPlease report this to https://github.com/markedjs/marked.'; + if ((opt || marked.defaults).silent) { + return '

    An error occurred:

    '
    +        + escape(e.message + '', true)
    +        + '
    '; + } + throw e; + } +} + +/** + * Options + */ + +marked.options = +marked.setOptions = function(opt) { + merge(marked.defaults, opt); + return marked; +}; + +marked.defaults = { + gfm: true, + tables: true, + breaks: false, + pedantic: false, + sanitize: false, + sanitizer: null, + mangle: true, + smartLists: false, + silent: false, + highlight: null, + langPrefix: 'lang-', + smartypants: false, + headerPrefix: '', + renderer: new Renderer(), + xhtml: false, + baseUrl: null +}; + +/** + * Expose + */ + +marked.Parser = Parser; +marked.parser = Parser.parse; + +marked.Renderer = Renderer; +marked.TextRenderer = TextRenderer; + +marked.Lexer = Lexer; +marked.lexer = Lexer.lex; + +marked.InlineLexer = InlineLexer; +marked.inlineLexer = InlineLexer.output; + +marked.parse = marked; + +if (typeof module !== 'undefined' && typeof exports === 'object') { + module.exports = marked; +} else if (typeof define === 'function' && define.amd) { + define(function() { return marked; }); +} else { + root.marked = marked; +} +})(this || (typeof window !== 'undefined' ? window : global)); diff --git a/bower_components/marked/man/marked.1 b/bower_components/marked/man/marked.1 new file mode 100644 index 00000000..137e060a --- /dev/null +++ b/bower_components/marked/man/marked.1 @@ -0,0 +1,91 @@ +.ds q \N'34' +.TH marked 1 "2014-01-31" "v0.3.1" "marked.js" + +.SH NAME +marked \- a javascript markdown parser + +.SH SYNOPSIS +.B marked +[\-o \fI\fP] [\-i \fI\fP] [\-\-help] +[\-\-tokens] [\-\-pedantic] [\-\-gfm] +[\-\-breaks] [\-\-tables] [\-\-sanitize] +[\-\-smart\-lists] [\-\-lang\-prefix \fI\fP] +[\-\-no\-etc...] [\-\-silent] [\fIfilename\fP] + +.SH DESCRIPTION +.B marked +is a full-featured javascript markdown parser, built for speed. It also includes +multiple GFM features. + +.SH EXAMPLES +.TP +cat in.md | marked > out.html +.TP +echo "hello *world*" | marked +.TP +marked \-o out.html in.md \-\-gfm +.TP +marked \-\-output="hello world.html" \-i in.md \-\-no-breaks + +.SH OPTIONS +.TP +.BI \-o,\ \-\-output\ [\fIoutput\fP] +Specify file output. If none is specified, write to stdout. +.TP +.BI \-i,\ \-\-input\ [\fIinput\fP] +Specify file input, otherwise use last argument as input file. If no input file +is specified, read from stdin. +.TP +.BI \-t,\ \-\-tokens +Output a token stream instead of html. +.TP +.BI \-\-pedantic +Conform to obscure parts of markdown.pl as much as possible. Don't fix original +markdown bugs. +.TP +.BI \-\-gfm +Enable github flavored markdown. +.TP +.BI \-\-breaks +Enable GFM line breaks. Only works with the gfm option. +.TP +.BI \-\-tables +Enable GFM tables. Only works with the gfm option. +.TP +.BI \-\-sanitize +Sanitize output. Ignore any HTML input. +.TP +.BI \-\-smart\-lists +Use smarter list behavior than the original markdown. +.TP +.BI \-\-lang\-prefix\ [\fIprefix\fP] +Set the prefix for code block classes. +.TP +.BI \-\-mangle +Mangle email addresses. +.TP +.BI \-\-no\-sanitize,\ \-no-etc... +The inverse of any of the marked options above. +.TP +.BI \-\-silent +Silence error output. +.TP +.BI \-h,\ \-\-help +Display help information. + +.SH CONFIGURATION +For configuring and running programmatically. + +.B Example + + require('marked')('*foo*', { gfm: true }); + +.SH BUGS +Please report any bugs to https://github.com/markedjs/marked. + +.SH LICENSE +Copyright (c) 2011-2014, Christopher Jeffrey (MIT License). + +.SH "SEE ALSO" +.BR markdown(1), +.BR node.js(1) diff --git a/bower_components/marked/man/marked.1.txt b/bower_components/marked/man/marked.1.txt new file mode 100644 index 00000000..7f604192 --- /dev/null +++ b/bower_components/marked/man/marked.1.txt @@ -0,0 +1,96 @@ +marked(1) marked.js marked(1) + + + +NAME + marked - a javascript markdown parser + + +SYNOPSIS + marked [-o ] [-i ] [--help] [--tokens] [--pedantic] + [--gfm] [--breaks] [--tables] [--sanitize] [--smart-lists] [--lang-pre‐ + fix ] [--no-etc...] [--silent] [filename] + + +DESCRIPTION + marked is a full-featured javascript markdown parser, built for speed. + It also includes multiple GFM features. + + +EXAMPLES + cat in.md | marked > out.html + + echo "hello *world*" | marked + + marked -o out.html in.md --gfm + + marked --output="hello world.html" -i in.md --no-breaks + + +OPTIONS + -o, --output [output] + Specify file output. If none is specified, write to stdout. + + -i, --input [input] + Specify file input, otherwise use last argument as input file. + If no input file is specified, read from stdin. + + -t, --tokens + Output a token stream instead of html. + + --pedantic + Conform to obscure parts of markdown.pl as much as possible. + Don't fix original markdown bugs. + + --gfm Enable github flavored markdown. + + --breaks + Enable GFM line breaks. Only works with the gfm option. + + --tables + Enable GFM tables. Only works with the gfm option. + + --sanitize + Sanitize output. Ignore any HTML input. + + --smart-lists + Use smarter list behavior than the original markdown. + + --lang-prefix [prefix] + Set the prefix for code block classes. + + --mangle + Mangle email addresses. + + --no-sanitize, -no-etc... + The inverse of any of the marked options above. + + --silent + Silence error output. + + -h, --help + Display help information. + + +CONFIGURATION + For configuring and running programmatically. + + Example + + require('marked')('*foo*', { gfm: true }); + + +BUGS + Please report any bugs to https://github.com/chjj/marked. + + +LICENSE + Copyright (c) 2011-2014, Christopher Jeffrey (MIT License). + + +SEE ALSO + markdown(1), node.js(1) + + + +v0.3.1 2014-01-31 marked(1) diff --git a/bower_components/marked/marked.min.js b/bower_components/marked/marked.min.js new file mode 100644 index 00000000..129871ad --- /dev/null +++ b/bower_components/marked/marked.min.js @@ -0,0 +1,6 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ +!function(e){"use strict";var t={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:f,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:f,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:f,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n?(?!hr|heading|lheading| {0,3}>|tag)[^\n]+)+)/,text:/^[^\n]+/};function n(e){this.tokens=[],this.tokens.links={},this.options=e||k.defaults,this.rules=t.normal,this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}t._label=/(?:\\[\[\]]|[^\[\]])+/,t._title=/(?:"(?:\\"|[^"]|"[^"\n]*")*"|'\n?(?:[^'\n]+\n?)*'|\([^()]*\))/,t.def=p(t.def).replace("label",t._label).replace("title",t._title).getRegex(),t.bullet=/(?:[*+-]|\d+\.)/,t.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,t.item=p(t.item,"gm").replace(/bull/g,t.bullet).getRegex(),t.list=p(t.list).replace(/bull/g,t.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+t.def.source+")").getRegex(),t._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b",t.html=p(t.html).replace("comment",//).replace("closed",/<(tag)[\s\S]+?<\/\1>/).replace("closing",/\s]*)*?\/?>/).replace(/tag/g,t._tag).getRegex(),t.paragraph=p(t.paragraph).replace("hr",t.hr).replace("heading",t.heading).replace("lheading",t.lheading).replace("tag","<"+t._tag).getRegex(),t.blockquote=p(t.blockquote).replace("paragraph",t.paragraph).getRegex(),t.normal=d({},t),t.gfm=d({},t.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),t.gfm.paragraph=p(t.paragraph).replace("(?!","(?!"+t.gfm.fences.source.replace("\\1","\\2")+"|"+t.list.source.replace("\\1","\\3")+"|").getRegex(),t.tables=d({},t.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},n.prototype.token=function(e,n){var r,s,i,l,o,a,h,p,u,c,g;for(e=e.replace(/^ +$/gm,"");e;)if((i=this.rules.newline.exec(e))&&(e=e.substring(i[0].length),i[0].length>1&&this.tokens.push({type:"space"})),i=this.rules.code.exec(e))e=e.substring(i[0].length),i=i[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?i:i.replace(/\n+$/,"")});else if(i=this.rules.fences.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"code",lang:i[2],text:i[3]||""});else if(i=this.rules.heading.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"heading",depth:i[1].length,text:i[2]});else if(n&&(i=this.rules.nptable.exec(e))){for(e=e.substring(i[0].length),a={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/\n$/,"").split("\n")},p=0;p ?/gm,""),this.token(i,n),this.tokens.push({type:"blockquote_end"});else if(i=this.rules.list.exec(e)){for(e=e.substring(i[0].length),g=(l=i[2]).length>1,this.tokens.push({type:"list_start",ordered:g,start:g?+l:""}),r=!1,c=(i=i[0].match(this.rules.item)).length,p=0;p1&&o.length>1||(e=i.slice(p+1).join("\n")+e,p=c-1)),s=r||/\n\n(?!\s*$)/.test(a),p!==c-1&&(r="\n"===a.charAt(a.length-1),s||(s=r)),this.tokens.push({type:s?"loose_item_start":"list_item_start"}),this.token(a,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(i=this.rules.html.exec(e))e=e.substring(i[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===i[1]||"script"===i[1]||"style"===i[1]),text:i[0]});else if(n&&(i=this.rules.def.exec(e)))e=e.substring(i[0].length),i[3]&&(i[3]=i[3].substring(1,i[3].length-1)),u=i[1].toLowerCase(),this.tokens.links[u]||(this.tokens.links[u]={href:i[2],title:i[3]});else if(n&&(i=this.rules.table.exec(e))){for(e=e.substring(i[0].length),a={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/(?: *\| *)?\n$/,"").split("\n")},p=0;p])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:f,tag:/^|^<\/?[a-zA-Z0-9\-]+(?:"[^"]*"|'[^']*'|\s[^<'">\/\s]*)*?\/?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:f,text:/^[\s\S]+?(?=[\\/g,">").replace(/"/g,""").replace(/'/g,"'")}function h(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function p(e,t){return e=e.source,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function u(e,t){return c[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?c[" "+e]=e+"/":c[" "+e]=e.replace(/[^/]*$/,"")),e=c[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}r._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,r._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,r.autolink=p(r.autolink).replace("scheme",r._scheme).replace("email",r._email).getRegex(),r._inside=/(?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]]|\](?=[^\[]*\]))*/,r._href=/\s*?(?:\s+['"]([\s\S]*?)['"])?\s*/,r.link=p(r.link).replace("inside",r._inside).replace("href",r._href).getRegex(),r.reflink=p(r.reflink).replace("inside",r._inside).getRegex(),r.normal=d({},r),r.pedantic=d({},r.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),r.gfm=d({},r.normal,{escape:p(r.escape).replace("])","~|])").getRegex(),url:p(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",r._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:p(r.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),r.breaks=d({},r.gfm,{br:p(r.br).replace("{2,}","*").getRegex(),text:p(r.gfm.text).replace("{2,}","*").getRegex()}),s.rules=r,s.output=function(e,t,n){return new s(t,n).output(e)},s.prototype.output=function(e){for(var t,n,r,s,i="";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),i+=s[1];else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),r="@"===s[2]?"mailto:"+(n=a(this.mangle(s[1]))):n=a(s[1]),i+=this.renderer.link(r,null,n);else if(this.inLink||!(s=this.rules.url.exec(e))){if(s=this.rules.tag.exec(e))!this.inLink&&/^
    /i.test(s[0])&&(this.inLink=!1),e=e.substring(s[0].length),i+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):a(s[0]):s[0];else if(s=this.rules.link.exec(e))e=e.substring(s[0].length),this.inLink=!0,i+=this.outputLink(s,{href:s[2],title:s[3]}),this.inLink=!1;else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){i+=s[0].charAt(0),e=s[0].substring(1)+e;continue}this.inLink=!0,i+=this.outputLink(s,t),this.inLink=!1}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),i+=this.renderer.strong(this.output(s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),i+=this.renderer.em(this.output(s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),i+=this.renderer.codespan(a(s[2].trim(),!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),i+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),i+=this.renderer.del(this.output(s[1]));else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),i+=this.renderer.text(a(this.smartypants(s[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else s[0]=this.rules._backpedal.exec(s[0])[0],e=e.substring(s[0].length),"@"===s[2]?r="mailto:"+(n=a(s[0])):(n=a(s[0]),r="www."===s[1]?"http://"+n:n),i+=this.renderer.link(r,null,n);return i},s.prototype.outputLink=function(e,t){var n=a(t.href),r=t.title?a(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,a(e[1]))},s.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},s.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,s=0;s.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},i.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'
    '+(n?e:a(e,!0))+"\n
    \n":"
    "+(n?e:a(e,!0))+"\n
    "},i.prototype.blockquote=function(e){return"
    \n"+e+"
    \n"},i.prototype.html=function(e){return e},i.prototype.heading=function(e,t,n){return"'+e+"\n"},i.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},i.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},i.prototype.listitem=function(e){return"
  3. "+e+"
  4. \n"},i.prototype.paragraph=function(e){return"

    "+e+"

    \n"},i.prototype.table=function(e,t){return"\n\n"+e+"\n\n"+t+"\n
    \n"},i.prototype.tablerow=function(e){return"\n"+e+"\n"},i.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"\n"},i.prototype.strong=function(e){return""+e+""},i.prototype.em=function(e){return""+e+""},i.prototype.codespan=function(e){return""+e+""},i.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},i.prototype.del=function(e){return""+e+""},i.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(h(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!g.test(e)&&(e=u(this.options.baseUrl,e));var s='
    "},i.prototype.image=function(e,t,n){this.options.baseUrl&&!g.test(e)&&(e=u(this.options.baseUrl,e));var r=''+n+'":">"},i.prototype.text=function(e){return e},l.prototype.strong=l.prototype.em=l.prototype.codespan=l.prototype.del=l.prototype.text=function(e){return e},l.prototype.link=l.prototype.image=function(e,t,n){return""+n},l.prototype.br=function(){return""},o.parse=function(e,t){return new o(t).parse(e)},o.prototype.parse=function(e){this.inline=new s(e.links,this.options),this.inlineText=new s(e.links,d({},this.options,{renderer:new l})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},o.prototype.next=function(){return this.token=this.tokens.pop()},o.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},o.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},o.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,h(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,s="",i="";for(n="",e=0;eAn error occurred:

    "+a(e.message+"",!0)+"
    ";throw e}}f.exec=f,k.options=k.setOptions=function(e){return d(k.defaults,e),k},k.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new i,xhtml:!1,baseUrl:null},k.Parser=o,k.parser=o.parse,k.Renderer=i,k.TextRenderer=l,k.Lexer=n,k.lexer=n.lex,k.InlineLexer=s,k.inlineLexer=s.output,k.parse=k,"undefined"!=typeof module&&"object"==typeof exports?module.exports=k:"function"==typeof define&&define.amd?define(function(){return k}):e.marked=k}(this||("undefined"!=typeof window?window:global)); \ No newline at end of file diff --git a/bower_components/marked/package-lock.json b/bower_components/marked/package-lock.json new file mode 100644 index 00000000..f82920a9 --- /dev/null +++ b/bower_components/marked/package-lock.json @@ -0,0 +1,2121 @@ +{ + "name": "marked", + "version": "0.3.19", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", + "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + } + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.17.0.tgz", + "integrity": "sha512-AyxBUCANU/o/xC0ijGMKavo5Ls3oK6xykiOITlMdjFjrKOsqLrA7Nf5cnrDgcKrHzBirclAZt63XO7YZlVUPwA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.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.3", + "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.3.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "eslint-config-standard": { + "version": "11.0.0-beta.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0-beta.0.tgz", + "integrity": "sha512-f+vs5HAHQo7NRZ3hVe+UVdT5DbebMNaFTWFp95orJ0LUdYPoWdM8xw/bMeO/IZMvHOPmIteGKGc2QOhSXd5nRg==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", + "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", + "dev": true, + "requires": { + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.1.1", + "has": "1.0.1", + "lodash.cond": "4.5.2", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, + "eslint-plugin-node": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz", + "integrity": "sha512-xhPXrh0Vl/b7870uEbaumb2Q+LxaEcOQ3kS1jtIXanBAwpMre1l5q/l2l/hESYJGEFKuI78bp6Uw50hlpr7B+g==", + "dev": true, + "requires": { + "ignore": "3.3.7", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.3.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", + "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", + "dev": true + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.3.tgz", + "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==", + "dev": true, + "requires": { + "acorn": "5.4.1", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "front-matter": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-2.3.0.tgz", + "integrity": "sha1-cgOviWzjV+4E4qpFFp6pHtf2dQQ=", + "dev": true, + "requires": { + "js-yaml": "3.10.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", + "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "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" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.3.3", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jasmine": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.1.0.tgz", + "integrity": "sha1-K9Wf1+xuwOistk4J9Fpo7SrRlSo=", + "dev": true, + "requires": { + "glob": "7.1.2", + "jasmine-core": "3.1.0" + } + }, + "jasmine-core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.1.0.tgz", + "integrity": "sha1-pHheE11d9lAk38kiSVPfWFvSdmw=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "linkify-it": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz", + "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=", + "dev": true, + "requires": { + "uc.micro": "1.0.3" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", + "dev": true + }, + "markdown": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", + "integrity": "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=", + "dev": true, + "requires": { + "nopt": "2.1.2" + } + }, + "markdown-it": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.0.tgz", + "integrity": "sha512-tNuOCCfunY5v5uhcO2AUMArvKAyKMygX8tfup/JrgnsDqcCATQsAExBq7o5Ml9iMmO82bk6jYNLj6khcrl0JGA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "entities": "1.1.1", + "linkify-it": "2.0.3", + "mdurl": "1.0.1", + "uc.micro": "1.0.3" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nopt": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "4.3.6", + "validate-npm-package-license": "3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.3", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "showdown": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.8.3.tgz", + "integrity": "sha1-ZE3TyPlDLHdExJtF6aGYoBcZQ14=", + "dev": true, + "requires": { + "yargs": "10.0.3" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "yargs": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "3.2.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": "8.0.0" + } + } + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", + "lodash": "4.17.5", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uc.micro": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz", + "integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI=", + "dev": true + }, + "uglify-js": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.10.tgz", + "integrity": "sha512-dNib7aUDNZFJNTXFyq0CDmLRVOsnY1F+IQgt2FAOdZFx2+LvKVLbbIb/fL+BYKCv3YH3bPCE/6M/JaxChtQLHQ==", + "dev": true, + "requires": { + "commander": "2.14.1", + "source-map": "0.6.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } +} diff --git a/bower_components/marked/package.json b/bower_components/marked/package.json new file mode 100644 index 00000000..cc7c85dd --- /dev/null +++ b/bower_components/marked/package.json @@ -0,0 +1,55 @@ +{ + "name": "marked", + "description": "A markdown parser built for speed", + "author": "Christopher Jeffrey", + "version": "0.3.19", + "main": "./lib/marked.js", + "bin": "./bin/marked", + "man": "./man/marked.1", + "repository": "git://github.com/markedjs/marked.git", + "homepage": "https://marked.js.org", + "bugs": { + "url": "http://github.com/markedjs/marked/issues" + }, + "license": "MIT", + "keywords": [ + "markdown", + "markup", + "html" + ], + "tags": [ + "markdown", + "markup", + "html" + ], + "devDependencies": { + "eslint": "^4.15.0", + "eslint-config-standard": "^11.0.0-beta.0", + "eslint-plugin-import": "^2.8.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.6.0", + "eslint-plugin-standard": "^3.0.1", + "front-matter": "^2.3.0", + "glob-to-regexp": "0.3.0", + "jasmine": "^3.1.0", + "markdown": "*", + "markdown-it": "*", + "showdown": "*", + "uglify-js": "^3.3.10" + }, + "scripts": { + "test": "jasmine --config=jasmine.json", + "test:unit": "npm test -- test/unit/**/*-spec.js", + "test:specs": "npm test -- test/specs/**/*-spec.js", + "test:integration": "npm test -- test/integration/**/*-spec.js", + "test:old": "node test", + "test:lint": "eslint lib/marked.js test/index.js", + "bench": "node test --bench", + "lint": "eslint --fix lib/marked.js test/index.js", + "build": "uglifyjs lib/marked.js -cm --comments /Copyright/ -o marked.min.js", + "preversion": "npm run build && (git diff --quiet || git commit -am 'minify')" + }, + "engines": { + "node": ">=0.10.0" + } +} diff --git a/bower_components/marked/www/demo.css b/bower_components/marked/www/demo.css new file mode 100644 index 00000000..34705cf1 --- /dev/null +++ b/bower_components/marked/www/demo.css @@ -0,0 +1,153 @@ +html, body { + margin: 0; + padding: 0; + font-family: Helvetica, Arial, Verdana, sans-serif; + background-color: #DDF; + height: 100%; +} + +textarea { + font-family: monospace; +} + +#header { + margin: 0; + padding: 0.4em 0 0 0; + text-align: center; + color: #002; +} + +#header h1 { + font-size: 2em; +} + +#header * { + margin: 0; + padding: 0; + line-height: 1em; + font-weight: 100; +} + +#header a { + color: #005; + position: relative; + z-index: 20; +} + +#bothContainers { + position: absolute; + top: 0; + bottom: 0; + margin-top: 2.4em; + width: 100%; +} + +#leftContainer, #rightContainer { + margin: 0; + padding: 0; + position: absolute; + width: 48.5%; + top: 0; + bottom: 0; +} + +#leftContainer { + float: left; + left: 1%; +} + +#rightContainer { + float: right; + right: 1%; +} + +#rightContainer > * { + float: right; +} + +.label { + margin: 0; + padding: 0; + position: relative; + width: 100%; + display: block; +} + +.label * { + position: relative; + font-weight: 900; +} + +.label span { + color: #444; +} + +#outputType { + display: block; + margin-left: auto; + font-weight: 900; + font-family: Arial, Verdana, sans-serif; + background-color: #dacccc; + color: #444; + border: 1px solid #999; +} + +.pane { + margin: 1.6em 0em 0.2em; + padding: 0.6em; + background-color: #eee; + display: block; + border: 1px solid #000; + top: 0; + bottom: 0; + left: 0; + right: 0; + position: absolute; + overflow: auto; +} + +#previewPane { + background-color: #f3eeee; +} + +#outputPane { + background-color: #6c6666; + color: #fff; + display: none; +} + +#syntaxPane { + background-color: #e6dede; + background-color: #f7ecec; + display: none; +} + +#inputPane { + background-color: #fff; +} + +#previewPane { + padding: 0; +} + +#previewPane > * { + margin-left: 4px; + margin-right: 4px; +} + +#previewPane > blockquote { + margin-left: 3em; +} + +#previewPane > :first-child { + margin-top: 4px; /* pane padding */ +} + +#previewPane * { + line-height: 1.4em; +} + +#previewPane code { + font-size: 1.3em; +} + diff --git a/bower_components/marked/www/demo.html b/bower_components/marked/www/demo.html new file mode 100644 index 00000000..0d0b042d --- /dev/null +++ b/bower_components/marked/www/demo.html @@ -0,0 +1,244 @@ + + + Marked Demo Page + + + + + + +
    + +
    +
    +
    + Input +
    + +
    + +
    +
    + +
    + +
    + + + + + +
    +
    + + diff --git a/bower_components/marked/www/demo.js b/bower_components/marked/www/demo.js new file mode 100644 index 00000000..f8f22196 --- /dev/null +++ b/bower_components/marked/www/demo.js @@ -0,0 +1,105 @@ +$(function () { + var $inputElem = $('#input'); + var $outputTypeElem = $('#outputType'); + var $previewElem = $('#preview'); + var $htmlElem = $('#html'); + var $lexerElem = $('#lexer'); + var $syntaxElem = $('#syntax'); + var inputDirty = true; + var $activeElem = null; + + if (top.document.location.href.match(/\?blank=1$/)) { + $inputElem.val(''); + } + + $outputTypeElem.change(function () { + $('#rightContainer .pane').hide(); + $activeElem = $('#' + $outputTypeElem.val()).show(); + }).change(); + + var noticeChange = function () { + inputDirty = true; + }; + $inputElem. + change(noticeChange). + keyup(noticeChange). + keypress(noticeChange). + keydown(noticeChange); + + var jsonString = function (input) { + var output = (input + ''). + replace(/\n/g, '\\n'). + replace(/\r/g, '\\r'). + replace(/\t/g, '\\t'). + replace(/\f/g, '\\f'). + replace(/[\\"']/g, '\\$&'). + replace(/\u0000/g, '\\0'); + return '"' + output + '"'; + }; + + var getScrollSize = function () { + var e = $activeElem[0]; + + return e.scrollHeight - e.clientHeight; + }; + var getScrollPercent = function () { + var size = getScrollSize(); + + if (size <= 0) { + return 1; + } + + return $activeElem.scrollTop() / size; + }; + var setScrollPercent = function (percent) { + $activeElem.scrollTop(percent * getScrollSize()); + }; + + var delayTime = 1; + var checkForChanges = function () { + if (inputDirty) { + inputDirty = false; + var startTime = new Date(); + + // Save scroll position + var scrollPercent = getScrollPercent(); + + // Convert + var markdown = $inputElem.val(); + var lexed = marked.lexer(markdown); + + // Grab lexed output and convert to a string before the parser + // destroys the data + var lexedList = []; + + for (var i = 0; i < lexed.length; i ++) { + var lexedLine = []; + for (var j in lexed[i]) { + lexedLine.push(j + ":" + jsonString(lexed[i][j])); + } + lexedList.push("{" + lexedLine.join(", ") + "}"); + } + + var parsed = marked.parser(lexed); + + // Assign + $previewElem.html(parsed); + $htmlElem.val(parsed); + $lexerElem.val(lexedList.join("\n")); + + // Set the scroll percent + setScrollPercent(scrollPercent); + + var endTime = new Date(); + delayTime = endTime - startTime; + if (delayTime < 50) { + delayTime = 50; + } else if (delayTime > 500) { + delayTime = 1000; + } + } + window.setTimeout(checkForChanges, delayTime); + }; + checkForChanges(); + setScrollPercent(0); +}); diff --git a/bower_components/mocha/.bower.json b/bower_components/mocha/.bower.json new file mode 100644 index 00000000..cfa71a65 --- /dev/null +++ b/bower_components/mocha/.bower.json @@ -0,0 +1,48 @@ +{ + "name": "mocha", + "homepage": "https://mochajs.org", + "description": "simple, flexible, fun test framework", + "repository": { + "type": "git", + "url": "git://github.com/mochajs/mocha.git" + }, + "main": [ + "mocha.js", + "mocha.css" + ], + "ignore": [ + "bin", + "editors", + "images", + "lib", + "scripts", + "test", + "assets", + "media", + ".*", + "index.js", + "karma.conf.js", + "browser-entry.js", + "Makefile", + "package.json", + "appveyor.yml" + ], + "keywords": [ + "mocha", + "test", + "bdd", + "tdd", + "tap" + ], + "license": "MIT", + "version": "3.5.3", + "_release": "3.5.3", + "_resolution": { + "type": "version", + "tag": "v3.5.3", + "commit": "1ff41a05a599e8bffe90b2b13597b01a2031b88f" + }, + "_source": "https://github.com/mochajs/mocha.git", + "_target": "^3.1.2", + "_originalSource": "mocha" +} \ No newline at end of file diff --git a/bower_components/mocha/CHANGELOG.md b/bower_components/mocha/CHANGELOG.md new file mode 100644 index 00000000..96fc1c50 --- /dev/null +++ b/bower_components/mocha/CHANGELOG.md @@ -0,0 +1,1711 @@ +# 3.5.3 / 2017-09-11 + +## :bug: Fixes + +- [#3003]: Fix invalid entities in xUnit reporter first appearing in v3.5.1 ([@jkrems]) + +[#3003]: https://github.com/mochajs/mocha/pull/3003 + +# 3.5.2 / 2017-09-10 + +## :bug: Fixes + +- [#3001]: Fix AMD-related failures first appearing in v3.5.1 ([@boneskull]) + +[#3001]: https://github.com/mochajs/mocha/pull/3001 + +# 3.5.1 / 2017-09-09 + +## :newspaper: News + +- :mega: Mocha is now sponsoring [PDXNode](http://pdxnode.org)! If you're in the [Portland](https://wikipedia.org/wiki/Portland,_Oregon) area, come check out the monthly talks and hack nights! + +## :bug: Fixes + +- [#2997]: Fix missing `xit` export for "require" interface ([@solodynamo]) +- [#2957]: Fix unicode character handling in XUnit reporter failures ([@jkrems]) + +## :nut_and_bolt: Other + +- [#2986]: Add issue and PR templates ([@kungapal]) +- [#2918]: Drop bash dependency for glob-related tests ([@ScottFreeCode]) +- [#2922]: Improve `--compilers` coverage ([@ScottFreeCode]) +- [#2981]: Fix tpyos and spelling errors ([@jsoref]) + +[#2997]: https://github.com/mochajs/mocha/pull/2997 +[#2957]: https://github.com/mochajs/mocha/pull/2957 +[#2918]: https://github.com/mochajs/mocha/pull/2918 +[#2986]: https://github.com/mochajs/mocha/pull/2986 +[#2922]: https://github.com/mochajs/mocha/pull/2922 +[#2981]: https://github.com/mochajs/mocha/pull/2981 +[@solodynamo]: https://github.com/solodynamo +[@jkrems]: https://github.com/jkrems +[@jsoref]: https://github.com/jsoref + +# 3.5.0 / 2017-07-31 + +## :newspaper: News + +- Mocha now has a [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) (thanks [@kungapal]!). +- Old issues and PRs are now being marked "stale" by [Probot's "Stale" plugin](https://github.com/probot/stale). If an issue is marked as such, and you would like to see it remain open, simply add a new comment to the ticket or PR. +- **WARNING**: Support for non-ES5-compliant environments will be dropped starting with version 4.0.0 of Mocha! + +## :lock: Security Fixes + +- [#2860]: Address [CVE-2015-8315](https://nodesecurity.io/advisories/46) via upgrade of [debug](https://npm.im/debug) ([@boneskull]) + +## :tada: Enhancements + +- [#2696]: Add `--forbid-only` and `--forbid-pending` flags. Use these in CI or hooks to ensure tests aren't accidentally being skipped! ([@charlierudolph]) +- [#2813]: Support Node.js 8's `--napi-modules` flag ([@jupp0r]) + +## :nut_and_bolt: Other + +- Various CI-and-test-related fixes and improvements ([@boneskull], [@dasilvacontin], [@PopradiArpad], [@Munter], [@ScottFreeCode]) +- "Officially" support Node.js 8 ([@elergy]) + +[#2860]: https://github.com/mochajs/mocha/pulls/2860 +[#2696]: https://github.com/mochajs/mocha/pulls/2696 +[#2813]: https://github.com/mochajs/mocha/pulls/2813 +[@charlierudolph]: https://github.com/charlierudolph +[@PopradiArpad]: https://github.com/PopradiArpad +[@kungapal]: https://github.com/kungapal +[@elergy]: https://github.com/elergy +[@jupp0r]: https://github.com/jupp0r + +# 3.4.2 / 2017-05-24 + +## :bug: Fixes + +- [#2802]: Remove call to deprecated `os.tmpDir` ([@makepanic]) +- [#2820]: Eagerly set `process.exitCode` ([@chrisleck]) + +## :nut_and_bolt: Other + +- [#2778]: Move linting into an npm script ([@Munter]) + +[@chrisleck]: https://github.com/chrisleck +[@makepanic]: https://github.com/makepanic +[@Munter]: https://github.com/Munter + +[#2778]: https://github.com/mochajs/mocha/pulls/2778 +[#2802]: https://github.com/mochajs/mocha/issues/2802 +[#2820]: https://github.com/mochajs/mocha/pull/2820 + +# 3.4.1 / 2017-05-14 + +Fixed a publishing mishap with git's autocrlf settings. + +# 3.4.0 / 2017-05-14 + +Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week. + +This week's highlights: + +- `allowUncaught` added to commandline as `--allow-uncaught` (and bugfixed) +- warning-related Node flags + +## :tada: Enhancements + +- [#2793], [#2697]: add --allowUncaught to Node.js ([@lrowe]) +- [#2733]: Add `--no-warnings` and `--trace-warnings` flags ([@sonicdoe]) + +## :bug: Fixes + +- [#2793], [#2697]: fix broken allowUncaught ([@lrowe]) + +## :nut_and_bolt: Other + +- [#2778]: Add license report and scan status ([@xizhao]) +- [#2794]: no special case for macOS running Karma locally ([@boneskull]) +- [#2795]: reverts use of semistandard directly ([#2648]) ([@boneskull]) + +[@lrowe]: https://github.com/lrowe +[@sonicdoe]: https://github.com/sonicdoe +[@xizhao]: https://github.com/xizhao +[@boneskull]: https://github.com/boneskull + +[#2795]: https://github.com/mochajs/mocha/pull/2795 +[#2733]: https://github.com/mochajs/mocha/pull/2733 +[#2793]: https://github.com/mochajs/mocha/pull/2793 +[#2697]: https://github.com/mochajs/mocha/pull/2697 +[#2778]: https://github.com/mochajs/mocha/pull/2778 +[#2794]: https://github.com/mochajs/mocha/pull/2794 + +# 3.3.0 / 2017-04-24 + +Thanks to all our contributors, maintainers, sponsors, and users! ❤️ + +As highlights: + +- We've got coverage now! +- Testing is looking less flaky \o/. +- No more nitpicking about "mocha.js" build on PRs. + +## :tada: Enhancements + +- [#2659]: Adds support for loading reporter from an absolute or relative path ([@sul4bh]) +- [#2769]: Support `--inspect-brk` on command-line ([@igwejk]) + +## :bug: Fixes + +- [#2662]: Replace unicode chars w/ hex codes in HTML reporter ([@rotemdan]) + +## :mag: Coverage + +- [#2672]: Add coverage for node tests ([@c089], [@Munter]) +- [#2680]: Increase tests coverage for base reporter ([@epallerols]) +- [#2690]: Increase tests coverage for doc reporter ([@craigtaub]) +- [#2701]: Increase tests coverage for landing, min, tap and list reporters ([@craigtaub]) +- [#2691]: Increase tests coverage for spec + dot reporters ([@craigtaub]) +- [#2698]: Increase tests coverage for xunit reporter ([@craigtaub]) +- [#2699]: Increase tests coverage for json-stream, markdown and progress reporters ([@craigtaub]) +- [#2703]: Cover .some() function in utils.js with tests ([@seppevs]) +- [#2773]: Add tests for loading reporters w/ relative/absolute paths ([@sul4bh]) + +## :nut_and_bolt: Other + +- Remove bin/.eslintrc; ensure execs are linted ([@boneskull]) +- [#2542]: Expand CONTRIBUTING.md ([@boneskull]) +- [#2660]: Double timeouts on integration tests ([@Munter]) +- [#2653]: Update copyright year ([@Scottkao85], [@Munter]) +- [#2621]: Update dependencies to enable Greenkeeper ([@boneskull], [@greenkeeper]) +- [#2625]: Use trusty container in travis-ci; use "artifacts" addon ([@boneskull]) +- [#2670]: doc(CONTRIBUTING): fix link to org members ([@coderbyheart]) +- Add Mocha propaganda to README.md ([@boneskull]) +- [#2470]: Avoid test flake in "delay" test ([@boneskull]) +- [#2675]: Limit browser concurrency on sauce ([@boneskull]) +- [#2669]: Use temporary test-only build of mocha.js for browsers tests ([@Munter]) +- Fix "projects" link in README.md ([@boneskull]) +- [#2678]: Chore(Saucelabs): test on IE9, IE10 and IE11 ([@coderbyheart]) +- [#2648]: Use `semistandard` directly ([@kt3k]) +- [#2727]: Make the build reproducible ([@lamby]) + +[@boneskull]: https://github.com/boneskull +[@c089]: https://github.com/c089 +[@coderbyheart]: https://github.com/coderbyheart +[@craigtaub]: https://github.com/craigtaub +[@epallerols]: https://github.com/epallerols +[@greenkeeper]: https://github.com/greenkeeper +[@igwejk]: https://github.com/igwejk +[@kt3k]: https://github.com/kt3k +[@lamby]: https://github.com/lamby +[@Munter]: https://github.com/Munter +[@rotemdan]: https://github.com/rotemdan +[@seppevs]: https://github.com/seppevs +[@sul4bh]: https://github.com/sul4bh + +[#2470]: https://github.com/mochajs/mocha/pull/2470 +[#2542]: https://github.com/mochajs/mocha/issues/2542 +[#2621]: https://github.com/mochajs/mocha/pull/2621 +[#2625]: https://github.com/mochajs/mocha/pull/2625 +[#2648]: https://github.com/mochajs/mocha/pull/2648 +[#2653]: https://github.com/mochajs/mocha/pull/2653 +[#2659]: https://github.com/mochajs/mocha/pull/2659 +[#2660]: https://github.com/mochajs/mocha/pull/2660 +[#2662]: https://github.com/mochajs/mocha/pull/2662 +[#2669]: https://github.com/mochajs/mocha/pull/2669 +[#2670]: https://github.com/mochajs/mocha/pull/2670 +[#2672]: https://github.com/mochajs/mocha/pull/2672 +[#2675]: https://github.com/mochajs/mocha/pull/2675 +[#2678]: https://github.com/mochajs/mocha/pull/2678 +[#2680]: https://github.com/mochajs/mocha/pull/2680 +[#2690]: https://github.com/mochajs/mocha/pull/2690 +[#2691]: https://github.com/mochajs/mocha/pull/2691 +[#2698]: https://github.com/mochajs/mocha/pull/2698 +[#2699]: https://github.com/mochajs/mocha/pull/2699 +[#2701]: https://github.com/mochajs/mocha/pull/2701 +[#2703]: https://github.com/mochajs/mocha/pull/2703 +[#2727]: https://github.com/mochajs/mocha/pull/2727 +[#2769]: https://github.com/mochajs/mocha/pull/2769 +[#2773]: https://github.com/mochajs/mocha/pull/2773 + +# 3.2.0 / 2016-11-24 + +## :newspaper: News + +### Mocha is now a JS Foundation Project! + +Mocha is proud to have joined the [JS Foundation](https://js.foundation). For more information, [read the announcement](https://js.foundation/announcements/2016/10/17/Linux-Foundation-Unites-JavaScript-Community-Open-Web-Development/). + +### Contributor License Agreement + +Under the foundation, all contributors to Mocha must sign the [JS Foundation CLA](https://js.foundation/CLA/) before their code can be merged. When sending a PR--if you have not already signed the CLA--a friendly bot will ask you to do so. + +Mocha remains licensed under the [MIT license](https://github.com/mochajs/mocha/blob/master/LICENSE). + +## :bug: Bug Fix + +- [#2535]: Fix crash when `--watch` encounters broken symlinks ([@villesau]) +- [#2593]: Fix (old) regression; incorrect symbol shown in `list` reporter ([@Aldaviva]) +- [#2584]: Fix potential error when running XUnit reporter ([@vobujs]) + +## :tada: Enhancement + +- [#2294]: Improve timeout error messaging ([@jeversmann], [@boneskull]) +- [#2520]: Add info about `--inspect` flag to CLI help ([@ughitsaaron]) + +## :nut_and_bolt: Other + +- [#2570]: Use [karma-mocha](https://npmjs.com/package/karma-mocha) proper ([@boneskull]) +- Licenses updated to reflect new copyright, add link to license and browser matrix to `README.md` ([@boneskull], [@ScottFreeCode], [@dasilvacontin]) + +[#2294]: https://github.com/mochajs/mocha/issues/2294 +[#2535]: https://github.com/mochajs/mocha/issues/2535 +[#2520]: https://github.com/mochajs/mocha/pull/2520 +[#2593]: https://github.com/mochajs/mocha/pull/2593 +[#2584]: https://github.com/mochajs/mocha/issues/2584 +[#2570]: https://github.com/mochajs/mocha/issues/2570 +[@Aldaviva]: https://github.com/Aldaviva +[@jeversmann]: https://github.com/jeversmann +[@ughitsaaron]: https://github.com/ughitsaaron +[@villesau]: https://github.com/villesau +[@vobujs]: https://github.com/vobujs + +Thanks to all our contributors, sponsors and backers! Keep on the lookout for a public roadmap and new contribution guide coming soon. + +# 3.1.2 / 2016-10-10 + +## :bug: Bug Fix + +- [#2528]: Recovery gracefully if an `Error`'s `stack` property isn't writable ([@boneskull]) + +[#2528]: https://github.com/mochajs/mocha/issues/2528 + +# 3.1.1 / 2016-10-09 + +## :bug: Bug Fix + +- [#1417]: Don't report `done()` was called multiple times when it wasn't ([@frankleonrose]) + +## :nut_and_bolt: Other + +- [#2490]: Lint with [semistandard](https://npmjs.com/package/semistandard) config ([@makepanic]) +- [#2525]: Lint all `.js` files ([@boneskull]) +- [#2524]: Provide workaround for developers unable to run browser tests on macOS Sierra ([@boneskull]) + +[#1417]: https://github.com/mochajs/mocha/issues/1417 +[#2490]: https://github.com/mochajs/mocha/issues/2490 +[#2525]: https://github.com/mochajs/mocha/issues/2525 +[#2524]: https://github.com/mochajs/mocha/issues/2524 +[@makepanic]: https://github.com/makepanic +[@frankleonrose]: https://github.com/frankleonrose + +# 3.1.0 / 2016-09-27 + +## :tada: Enhancement + +- [#2357]: Support `--inspect` on command-line ([@simov]) +- [#2194]: Human-friendly error if no files are matched on command-line ([@Munter]) +- [#1744]: Human-friendly error if a Suite has no callback (BDD/TDD only) ([@anton]) + +## :bug: Bug Fix + +- [#2488]: Fix case in which *variables beginning with lowercase "D"* may not have been reported properly as global leaks ([@JustATrick]) :laughing: +- [#2465]: Always halt execution in async function when `this.skip()` is called ([@boneskull]) +- [#2445]: Exits with expected code 130 when `SIGINT` encountered; exit code can no longer rollover at 256 ([@Munter]) +- [#2315]: Fix uncaught TypeError thrown from callback stack ([@1999]) +- Fix broken `only()`/`skip()` in IE7/IE8 ([@boneskull]) +- [#2502]: Fix broken stack trace filter on Node.js under Windows ([@boneskull]) +- [#2496]: Fix diff output for objects instantiated with `String` constructor ([more](https://youtrack.jetbrains.com/issue/WEB-23383)) ([@boneskull]) + +[#2496]: https://github.com/mochajs/mocha/issues/2496 +[#2502]: https://github.com/mochajs/mocha/issues/2502 +[#2315]: https://github.com/mochajs/mocha/issues/2315 +[#2445]: https://github.com/mochajs/mocha/pull/2445 +[#2465]: https://github.com/mochajs/mocha/issues/2465 +[#2488]: https://github.com/mochajs/mocha/issues/2488 +[#1744]: https://github.com/mochajs/mocha/issues/1744 +[#2194]: https://github.com/mochajs/mocha/issues/2194 +[#2357]: https://github.com/mochajs/mocha/issues/2357 +[@1999]: https://github.com/1999 +[@JustATrick]: https://github.com/JustATrick +[@anton]: https://github.com/anton +[@simov]: https://github.com/simov + +# 3.0.2 / 2016-08-08 + +## :bug: Bug Fix + +- [#2424]: Fix error loading Mocha via Require.js ([@boneskull]) +- [#2417]: Fix execution of *deeply* nested `describe.only()` suites ([@not-an-aardvark]) +- Remove references to `json-cov` and `html-cov` reporters in CLI ([@boneskull]) + +[#2417]: https://github.com/mochajs/mocha/issues/2417 +[#2424]: https://github.com/mochajs/mocha/issues/2424 + +# 3.0.1 / 2016-08-03 + +## :bug: Bug Fix + +- [#2406]: Restore execution of nested `describe.only()` suites ([@not-an-aardvark]) + +[#2406]: https://github.com/mochajs/mocha/issues/2406 +[@not-an-aardvark]: https://github.com/not-an-aardvark + +# 3.0.0 / 2016-07-31 + +## :boom: Breaking Changes + +- :warning: Due to the increasing difficulty of applying security patches made within its dependency tree, as well as looming incompatibilities with Node.js v7.0, **Mocha no longer supports Node.js v0.8**. +- :warning: **Mocha may no longer be installed by versions of `npm` less than `1.4.0`.** Previously, this requirement only affected Mocha's development dependencies. In short, this allows Mocha to depend on packages which have dependencies fixed to major versions (`^`). +- `.only()` is no longer "fuzzy", can be used multiple times, and generally just works like you think it should. :joy: +- To avoid common bugs, when a test injects a callback function (suggesting asynchronous execution), calls it, *and* returns a `Promise`, Mocha will now throw an exception: + + ```js + const assert = require('assert'); + + it('should complete this test', function (done) { + return new Promise(function (resolve) { + assert.ok(true); + resolve(); + }) + .then(done); + }); + ``` + + The above test will fail with `Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.`. +- When a test timeout value *greater than* `2147483648` is specified in any context (`--timeout`, `mocha.setup()`, per-suite, per-test, etc.), the timeout will be *disabled* and the test(s) will be allowed to run indefinitely. This is equivalent to specifying a timeout value of `0`. See [MDN](https://developer.mozilla.org/docs/Web/API/WindowTimers/setTimeout#Maximum_delay_value) for reasoning. +- The `dot` reporter now uses more visually distinctive characters when indicating "pending" and "failed" tests. +- Mocha no longer supports [component](https://www.npmjs.com/package/component). +- The long-forsaken `HTMLCov` and `JSONCov` reporters--and any relationship to the "node-jscoverage" project--have been removed. +- `spec` reporter now omits leading carriage returns (`\r`) in non-TTY environment. + +## :tada: Enhancements + +- [#808]: Allow regular-expression-like strings in `--grep` and browser's `grep` querystring; enables flags such as `i` for case-insensitive matches and `u` for unicode. ([@a8m]) +- [#2000]: Use distinctive characters in `dot` reporter; `,` will denote a "pending" test and `!` will denote a "failing" test. ([@elliottcable]) +- [#1632]: Throw a useful exception when a suite or test lacks a title. ([@a8m]) +- [#1481]: Better `.only()` behavior. ([@a8m]) +- [#2334]: Allow `this.skip()` in async tests and hooks. ([@boneskull]) +- [#1320]: Throw a useful exception when test resolution method is overspecified. ([@jugglinmike]) +- [#2364]: Support `--preserve-symlinks`. ([@rosswarren]) + +## :bug: Bug Fixes + +- [#2259]: Restore ES3 compatibility. Specifically, support an environment lacking `Date.prototype.toISOString()`, `JSON`, or has a non-standard implementation of `JSON`. ([@ndhoule], [@boneskull]) +- [#2286]: Fix `after()` failing to execute if test skipped using `this.skip()` in `beforeEach()`; no longer marks the entire suite as "pending". ([@dasilvacontin], [@boneskull]) +- [#2208]: Fix function name display in `markdown` and `html` (browser) reporters. ([@ScottFreeCode]) +- [#2299]: Fix progress bar in `html` (browser) reporter. ([@AviVahl]) +- [#2307]: Fix `doc` reporter crashing when test fails. ([@jleyba]) +- [#2323]: Ensure browser entry point (`browser-entry.js`) is published to npm (for use with bundlers). ([@boneskull]) +- [#2310]: Ensure custom reporter with an absolute path works in Windows. ([@silentcloud]) +- [#2311]: Fix problem wherein calling `this.slow()` without a value would blast any previously set value. ([@boneskull]) +- [#1813]: Ensure Mocha's own test suite will run in Windows. ([@tswaters], [@TimothyGu], [@boneskull]) +- [#2317]: Ensure all interfaces are displayed in `--help` on CLI. ([@ScottFreeCode]) +- [#1644]: Don't exhibit undefined behavior when calling `this.timeout()` with very large values ([@callumacrae], [@boneskull]) +- [#2361]: Don't truncate name of thrown anonymous exception. ([@boneskull]) +- [#2367]: Fix invalid CSS. ([@bensontrent]) +- [#2401]: Remove carriage return before each test line in spec reporter. ([@Munter]) + +## :nut_and_bolt: Other + +- Upgrade production dependencies to address security advisories (and because now we can): `glob`, `commander`, `escape-string-regexp`, +and `supports-color`. ([@boneskull], [@RobLoach]) +- Add Windows to CI. ([@boneskull], [@TimothyGu]) +- Ensure appropriate `engines` field in `package.json`. ([@shinnn], [@boneskull]) +- [#2348]: Upgrade ESLint to v2 ([@anthony-redfox]) + +We :heart: our [backers and sponsors](https://opencollective.com/mochajs)! + +:shipit: + +[#2401]: https://github.com/mochajs/mocha/pull/2401 +[#2348]: https://github.com/mochajs/mocha/issues/2348 +[#808]: https://github.com/mochajs/mocha/issues/808 +[#2361]: https://github.com/mochajs/mocha/pull/2361 +[#2367]: https://github.com/mochajs/mocha/pull/2367 +[#2364]: https://github.com/mochajs/mocha/pull/2364 +[#1320]: https://github.com/mochajs/mocha/pull/1320 +[#2307]: https://github.com/mochajs/mocha/pull/2307 +[#2259]: https://github.com/mochajs/mocha/pull/2259 +[#2208]: https://github.com/mochajs/mocha/pull/2208 +[#2299]: https://github.com/mochajs/mocha/pull/2299 +[#2286]: https://github.com/mochajs/mocha/issues/2286 +[#1644]: https://github.com/mochajs/mocha/issues/1644 +[#2310]: https://github.com/mochajs/mocha/issues/2310 +[#2311]: https://github.com/mochajs/mocha/issues/2311 +[#2323]: https://github.com/mochajs/mocha/issues/2323 +[#2000]: https://github.com/mochajs/mocha/pull/2000 +[#1632]: https://github.com/mochajs/mocha/issues/1632 +[#1813]: https://github.com/mochajs/mocha/issues/1813 +[#2334]: https://github.com/mochajs/mocha/issues/2334 +[#2317]: https://github.com/mochajs/mocha/issues/2317 +[#1481]: https://github.com/mochajs/mocha/issues/1481 +[@elliottcable]: https://github.com/elliottcable +[@RobLoach]: https://github.com/robloach +[@AviVahl]: https://github.com/avivahl +[@silentcloud]: https://github.com/silentcloud +[@tswaters]: https://github.com/tswaters +[@jleyba]: https://github.com/jleyba +[@TimothyGu]: https://github.com/timothygu +[@callumacrae]: https://github.com/callumacrae +[@shinnn]: https://github.com/shinnn +[@bensontrent]: https://github.com/bensontrent +[@jugglinmike]: https://github.com/jugglinmike +[@rosswarren]: https://github.com/rosswarren +[@anthony-redfox]: https://github.com/anthony-redfox +[@Munter]: https://github.com/munter + +# 2.5.3 / 2016-05-25 + +- [#2112] - Fix HTML reporter regression causing duplicate error output ([@danielstjules] via 6d24063) +- [#2119] - Make HTML reporter failure/passed links preventDefault to avoid SPA's hash navigation ([@jimenglish81] via 9e93efc) + +[@danielstjules]: https://github.com/danielstjules +[@jimenglish81]: https://github.com/jimenglish81 +[#2112]: https://github.com/mochajs/mocha/pull/2112 +[#2119]: https://github.com/mochajs/mocha/pull/2119 + +# 2.5.2 / 2016-05-24 + +- [#2178] - Avoid double and triple xUnit XML escaping ([@graingert] via 49b5ff1) + +[@graingert]: https://github.com/graingert +[#2178]: https://github.com/mochajs/mocha/pull/2178 + +# 2.5.1 / 2016-05-23 + +- Fix [to-iso-string](https://npmjs.com/package/to-iso-string) dependency ([@boneskull] via bd9450b) + +Thanks @entertainyou, @SimenB, @just-paja for the heads-up. + +# 2.5.0 / 2016-05-23 + +> This has been awhile coming! We needed to feel confident that the next release wouldn't break browser compatibility (e.g. the last few patch releases). +> +> ### Browser Tests in CI +> +> We now run unit tests against PhantomJS v1.x and an assortment of browsers on [SauceLabs](https://saucelabs.com), including: +> - Internet Explorer v8.0 +> - Chrome (latest) +> - Firefox (latest) +> - Safari (latest) +> - Microsoft Edge (latest) +> +> To accomplish this, we now run Mocha's unit tests (and a handful of integration tests) via [Karma](https://npmjs.com/package/karma) and a modified [karma-mocha](https://npmjs.com/package/karma-mocha). Along the way, we had to solve issue [#880] (apologies to @mderijcke and @sukima who had PRs addressing this), as well as replace most usages of [should](https://npmjs.com/package/should) with [expect.js](https://npmjs.com/package/expect.js) for IE8. +> +> Going forward, when sending PRs, your code will *only* run against PhantomJS v1.x (and not hit SauceLabs) [because security](https://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests). +> +> ### Node.js 6.x +> Node.js 6.x "just worked" before, but now it's in the CI matrix, so it's "officially" supported. Mocha *still retains support* for Node.js 0.8.x. +> +> ### "Minor" Release +> You'll see mostly bug fixes below, but also a couple features--as such, it's a "minor" release. +> +> ### TYVM +> +> Thanks to everyone who contributed, and our fabulous [sponsors and backers](https://opencollective.com/mochajs)! + +- [#2079] - Add browser checks to CI; update [browserify](https://npmjs.com/package/browserify) to v13.0.0 ([@dasilvacontin], [@ScottFreeCode], [@boneskull] via c04c1d7, 0b1e9b3, 0dde0fa, f8a3d86, 9e8cbaa) +- [#880] - Make Mocha browserifyable ([@boneskull] via 524862b) +- [#2121] - Update [glob](https://npmjs.com/package/glob) to v3.2.11 ([@astorije] via 7920fc4) +- [#2126] - Fix dupe error messages in stack trace filter ([@Turbo87] via 4301caa) +- [#2109] - Fix certain diffs when objects cannot be coerced into primitives ([@joshlory] via 61fbb7f) +- [#1827] - Fix TWBS/`mocha.css` collisions ([@irnc] via 0543798) +- [#1760], [#1936] - Fix `this.skip()` in HTML reporter ([@mislav] via cb4248b) +- [#2115] - Fix exceptions thrown from hooks in HTML reporter ([@danielstjules] via e290bc0) +- [#2089] - Handle Symbol values in `util.stringify()` ([@ryym] via ea61d05) +- [#2097] - Fix diff for objects overriding `Object.prototype.hasOwnProperty` ([@mantoni] via b20fdfe) +- [#2101] - Properly handle non-string "messages" thrown from assertion libraries ([@jkimbo] via 9c41051) +- [#2124] - Update [growl](https://npmjs.com/package/growl) ([@benjamine] via 9ae6a85) +- [#2162], [#2205] - JSDoc fixes ([@OlegTsyba] via 8031f20, [@ScottFreeCode] via f83b1d9) +- [#2132] - Remove Growl-related cruft ([@julienw] via 00d6469) +- [#2172] - Add [OpenCollective](https://opencollective.com) badge, sponsors & backers ([@xdamman], [@boneskull] via caee94f) +- [#1841] - Add new logo, banner assets ([@dasilvacontin] via 00fd0e1) +- [#2214] - Update `README.md` header ([@dasilvacontin] via c0f9be2) +- [#2236] - Better checks for Node.js v0.8 compatibility in CI ([@dasilvacontin] via ba5637d) +- [#2239] - Add Node.js v6.x to CI matrix ([@boneskull] via 3904da4) + +[#880]: https://github.com/mochajs/mocha/issues/880 +[#1841]: https://github.com/mochajs/mocha/pull/1841 +[#2239]: https://github.com/mochajs/mocha/issues/2239 +[#2153]: https://github.com/mochajs/mocha/pull/2153 +[#2214]: https://github.com/mochajs/mocha/pull/2214 +[#2236]: https://github.com/mochajs/mocha/pull/2236 +[#2079]: https://github.com/mochajs/mocha/issues/2079 +[#2231]: https://github.com/mochajs/mocha/pull/2231 +[#2089]: https://github.com/mochajs/mocha/issues/2089 +[#2097]: https://github.com/mochajs/mocha/pull/2097 +[#1760]: https://github.com/mochajs/mocha/issues/1760 +[#1936]: https://github.com/mochajs/mocha/issues/1936 +[#2115]: https://github.com/mochajs/mocha/pull/2115 +[#1827]: https://github.com/mochajs/mocha/pull/1827 +[#2101]: https://github.com/mochajs/mocha/pull/2101 +[#2124]: https://github.com/mochajs/mocha/pull/2124 +[#2109]: https://github.com/mochajs/mocha/issues/2109 +[#2162]: https://github.com/mochajs/mocha/pull/2162 +[#2132]: https://github.com/mochajs/mocha/issues/2132 +[#2126]: https://github.com/mochajs/mocha/issues/2126 +[#2121]: https://github.com/mochajs/mocha/issues/2121 +[#2205]: https://github.com/mochajs/mocha/pull/2205 +[#2172]: https://github.com/mochajs/mocha/pull/2172 +[@xdamman]: https://github.com/xdamman +[@Turbo87]: https://github.com/Turbo87 +[@OlegTsyba]: https://github.com/OlegTsyba +[@ryym]: https://github.com/ryym +[@mantoni]: https://github.com/mantoni +[@mislav]: https://github.com/mislav +[@irnc]: https://github.com/irnc +[@jkimbo]: https://github.com/jkimbo +[@benjamine]: https://github.com/benjamine +[@joshlory]: https://github.com/joshlory +[@julienw]: https://github.com/julienw +[@ScottFreeCode]: https://github.com/ScottFreeCode +[@astorije]: https://github.com/astorije +[@dasilvacontin]: https://github.com/dasilvacontin + +2.4.5 / 2016-01-28 +================== + +* [#2080], [#2078], [#2072], [#2073], [#1200] - Revert changes to console colors in changeset [1192914](https://github.com/mochajs/mocha/commit/119291449cd03a11cdeda9e37cf718a69a012896) and subsequent related changes thereafter. Restores compatibility with IE8 & PhantomJS. See also [mantoni/mochify.js#129](https://github.com/mantoni/mochify.js/issues/129) and [openlayers/ol3#4746](https://github.com/openlayers/ol3/pull/4746) ([@boneskull]) +* [#2082] - Fix several test assertions ([@mislav]) + +[#1200]: https://github.com/mochajs/mocha/issues/1200 +[#2082]: https://github.com/mochajs/mocha/pull/2082 + +2.4.4 / 2016-01-27 +================== + +* [#2080] - Fix broken RequireJS compatibility ([@boneskull]) + +[#2080]: https://github.com/mochajs/mocha/issues/2080 + +2.4.3 / 2016-01-27 +================== + +* [#2078] - Fix broken IE8 ([@boneskull]) + +[#2078]: https://github.com/mochajs/mocha/issues/2078 + +2.4.2 / 2016-01-26 +================== + +* [#2053] - Fix web worker compatibility ([@mislav]) +* [#2072] - Fix Windows color output ([@thedark1337]) +* [#2073] - Fix colors in `progress` and `landing` reporters ([@gyandeeps]) + +[#2053]: https://github.com/mochajs/mocha/pull/2053 +[#2072]: https://github.com/mochajs/mocha/pull/2072 +[#2073]: https://github.com/mochajs/mocha/pull/2073 +[@gyandeeps]: https://github.com/gyandeeps +[@thedark1337]: https://github.com/thedark1337 + +2.4.1 / 2016-01-26 +================== + +* [#2067] - Fix HTML/doc reporter regressions ([@danielstjules]) + +[#2067]: https://github.com/mochajs/mocha/pull/2067 + +2.4.0 / 2016-01-25 +================== + +* [#1945] - Correctly skip tests when skipping in suite's before() ([@ryanshawty]) +* [#2056] - chore(license): update license year to 2016 ([@pra85]) +* [#2048] - Fix `this.skip` from spec with HTML reporter ([@mislav]) +* [#2033] - Update tests for newer versions of should.js ([@tomhughes]) +* [#2037] - Fix for memory leak caused by referenced to deferred test ([@bd82]) +* [#2038] - Also run Travis-CI on node.js 4 & 5 ([@bd82]) +* [#2028] - Remove reference to test before afterAll hook runs ([@stonelgh]) +* Bump mkdirp to 0.5.1 to support strict mode ([@danielstjules]) +* [#1977] - safely stringify PhantomJS undefined value ([@ahamid]) +* Add the ability to retry tests ([@@longlho]) +* [#1982] - Enable --log-timer-events option [@Alaneor] +* Fix #1980: Load mocha.opts from bin/mocha and bin/_mocha ([@danielstjules]) +* [#1976] - Simplify function call ([@iclanzan]) +* [#1963] - Add support --perf-basic-prof ([@robraux]) +* [#1981] - Fix HTML reporter handling of done and exceptions ([@Standard8]) +* [#1993] - propagate "file" property for "exports" interface ([@segrey]) +* [#1999] - Add support for strict mode ([@tmont]) +* [#2005] - XUnit Reporter Writes to stdout, falls back to console.log ([@jonnyreeves]) +* [#2021] - Fix non ES5 compliant regexp ([@zetaben]) +* [#1965] - Don't double install BDD UI ([@cowboyd]) +* [#1995] - Make sure the xunit output dir exists before writing to it ([@ianwremmel]) +* Use chalk for the base reporter colors; closes #1200 ([@boneskull]) +* Fix requiring custom interfaces ([@jgkim]) +* [#1967] Silence Bluebird js warnings ([@krisr]) + +[#1945]: https://github.com/mochajs/mocha/pull/1945 +[#2056]: https://github.com/mochajs/mocha/pull/2056 +[#2048]: https://github.com/mochajs/mocha/pull/2048 +[#2033]: https://github.com/mochajs/mocha/pull/2033 +[#2037]: https://github.com/mochajs/mocha/pull/2037 +[#2038]: https://github.com/mochajs/mocha/pull/2038 +[#2028]: https://github.com/mochajs/mocha/pull/2028 +[#1977]: https://github.com/mochajs/mocha/pull/1977 +[#1982]: https://github.com/mochajs/mocha/pull/1982 +[#1976]: https://github.com/mochajs/mocha/pull/1976 +[#1963]: https://github.com/mochajs/mocha/pull/1963 +[#1981]: https://github.com/mochajs/mocha/pull/1981 +[#1993]: https://github.com/mochajs/mocha/pull/1993 +[#1999]: https://github.com/mochajs/mocha/pull/1999 +[#2005]: https://github.com/mochajs/mocha/pull/2005 +[#2021]: https://github.com/mochajs/mocha/pull/2021 +[1965#]: https://github.com/mochajs/mocha/pull/1965 +[#1995]: https://github.com/mochajs/mocha/pull/1995 +[#1967]: https://github.com/mochajs/mocha/pull/1967 +[@ryanshawty]: https://github.com/ryanshawty +[@pra85]: https://github.com/pra85 +[@mislav]: https://github.com/mislav +[@tomhughes]: https://github.com/tomhughes +[@bd82]: https://github.com/bd82 +[@stonelgh]: https://github.com/stonelgh +[@danielstjules]: https://github.com/danielstjules +[@ahamid]: https://github.com/ahamid +[@longlho]: https://github.com/longlho +[@Alaneor]: https://github.com/Alaneor +[@iclanzan]: https://github.com/iclanzan +[@robraux]: https://github.com/robraux +[@Standard8]: https://github.com/Standard8 +[@segrey]: https://github.com/segrey +[@tmont]: https://github.com/tmont +[@jonnyreeves]: https://github.com/jonnyreeves +[@zetaben]: https://github.com/zetaben +[@cowboyd]: https://github.com/cowboyd +[@ianwremmel]: https://github.com/ianwremmel +[@boneskull]: https://github.com/boneskull +[@jgkim]: https://github.com/jgkim +[@krisr]: https://github.com/krisr + +2.3.4 / 2015-11-15 +================== + + * Update debug dependency to 2.2.0 + * remove duplication of mocha.opts on process.argv + * Fix typo in test/reporters/nyan.js + +2.3.3 / 2015-09-19 +================== + + * [#1875] - Fix Markdown reporter exceeds maximum call stack size ([@danielstjules]) + * [#1864] - Fix xunit missing output with --reporter-options output ([@danielstjules]) + * [#1846] - Support all harmony flags ([@danielstjules]) + * Fix fragile xunit reporter spec ([@danielstjules]) + * [#1669] - Fix catch uncaught errors outside test suite execution ([@danielstjules]) + * [#1868] - Revert jade to support npm < v1.3.7 ([@danielstjules]) + * [#1766] - Don't remove modules/components from stack trace in the browser ([@danielstjules]) + * [#1798] - Fix correctly attribute mutiple done err with hooks ([@danielstjules]) + * Fix use utils.reduce for IE8 compatibility ([@wsw0108]) + * Some linting errors fixed by [@danielstjules] + * Call the inspect() function if message is not set ([@kevinburke]) + +[#1875]: https://github.com/mochajs/mocha/issues/1875 +[#1864]: https://github.com/mochajs/mocha/issues/1864 +[#1846]: https://github.com/mochajs/mocha/issues/1846 +[#1669]: https://github.com/mochajs/mocha/issues/1669 +[#1868]: https://github.com/mochajs/mocha/issues/1868 +[#1766]: https://github.com/mochajs/mocha/issues/1766 +[#1798]: https://github.com/mochajs/mocha/issues/1798 +[@danielstjules]: https://github.com/danielstjules +[@wsw0108]: https://github.com/wsw0108 +[@kevinburke]: https://github.com/kevinburke + +2.3.2 / 2015-09-07 +================== + * [#1868] - Fix compatibility with older versions of NPM ([@boneskull]) + + [#1868]: https://github.com/mochajs/mocha/issues/1868 + +2.3.1 / 2015-09-06 +================== + + * [#1812] - Fix: Bail flag causes before() hooks to be run even after a failure ([@aaroncrows]) + + [#1812]: https://github.com/mochajs/mocha/issues/1812 + [aaroncrows]: https://github.com/aaroncrows + +2.3.0 / 2015-08-30 +================== + + * [#553] - added --allowUncaught option ([@amsul]) + * [#1490] - Allow --async-only to be satisfied by returning a promise ([@jlai]) + * [#1829] - support --max-old-space-size ([@gigadude]) + * [#1811] - upgrade Jade dependency ([@outsideris]) + * [#1769] - Fix async hook error handling ([@ajaykodali]) + * [#1230] - More descriptive beforeEach/afterEach messages ([@duncanbeevers]) + * [#1787] - Scope loading behaviour instead of using early return ([@aryeguy]) + * [#1789] - Fix: html-runner crashing ([@sunesimonsen]) + * [#1749] - Fix maximum call stack error on large amount of tests ([@tinganho]) + * [#1230] - Decorate failed hook titles with test title ([@duncanbeevers]) + * [#1260] - Build using Browserify ([@ndhoule]) + * [#1728] - Don't use `__proto__` ([@ndhoule]) + * [#1781] - Fix hook error tests ([@glenjamin]) + * [#1754] - Allow boolean --reporter-options ([@papandreou]) + * [#1766] - Fix overly aggressive stack suppression ([@moll]) + * [#1752] - Avoid potential infinite loop ([@gsilk]) + * [#1761] - Fix problems running under PhantomJS ([@chromakode]) + * [#1700] - Fix more problems running under PhantomJS ([@jbnicolai]) + * [#1774] - Support escaped spaces in CLI options ([@adamgruber]) + * [#1687] - Fix HTML reporter links with special chars ([@benvinegar]) + * [#1359] - Adopt code style and enforce it using ESLint ([@ndhoule] w/ assist from [@jbnicolai] & [@boneskull]) + * various refactors ([@jbnicolai]) + * [#1758] - Add cross-frame compatible Error checking ([@outdooricon]) + * [#1741] - Remove moot `version` property from bower.json ([@kkirsche]) + * [#1739] - Improve `HISTORY.md` ([@rstacruz]) + * [#1730] - Support more io.js flags ([@ryedog]) + * [#1349] - Allow HTML in HTML reporter errors ([@papandreou] / [@sunesimonsen]) + * [#1572] - Prevent default browser behavior for failure/pass links ([@jschilli]) + * [#1630] - Support underscored harmony flags ([@dominicbarnes]) + * [#1718] - Support more harmony flags ([@slyg]) + * [#1689] - Add stack to JSON-stream reporter ([@jonathandelgado]) + * [#1654] - Fix `ReferenceError` "location is not defined" ([@jakemmarsh]) + + [#553]: https://github.com/mochajs/mocha/issues/553 + [#1490]: https://github.com/mochajs/mocha/issues/1490 + [#1829]: https://github.com/mochajs/mocha/issues/1829 + [#1811]: https://github.com/mochajs/mocha/issues/1811 + [#1769]: https://github.com/mochajs/mocha/issues/1769 + [#1230]: https://github.com/mochajs/mocha/issues/1230 + [#1787]: https://github.com/mochajs/mocha/issues/1787 + [#1789]: https://github.com/mochajs/mocha/issues/1789 + [#1749]: https://github.com/mochajs/mocha/issues/1749 + [#1230]: https://github.com/mochajs/mocha/issues/1230 + [#1260]: https://github.com/mochajs/mocha/issues/1260 + [#1728]: https://github.com/mochajs/mocha/issues/1728 + [#1781]: https://github.com/mochajs/mocha/issues/1781 + [#1754]: https://github.com/mochajs/mocha/issues/1754 + [#1766]: https://github.com/mochajs/mocha/issues/1766 + [#1752]: https://github.com/mochajs/mocha/issues/1752 + [#1761]: https://github.com/mochajs/mocha/issues/1761 + [#1700]: https://github.com/mochajs/mocha/issues/1700 + [#1774]: https://github.com/mochajs/mocha/issues/1774 + [#1687]: https://github.com/mochajs/mocha/issues/1687 + [#1359]: https://github.com/mochajs/mocha/issues/1359 + [#1758]: https://github.com/mochajs/mocha/issues/1758 + [#1741]: https://github.com/mochajs/mocha/issues/1741 + [#1739]: https://github.com/mochajs/mocha/issues/1739 + [#1730]: https://github.com/mochajs/mocha/issues/1730 + [#1349]: https://github.com/mochajs/mocha/issues/1349 + [#1572]: https://github.com/mochajs/mocha/issues/1572 + [#1630]: https://github.com/mochajs/mocha/issues/1630 + [#1718]: https://github.com/mochajs/mocha/issues/1718 + [#1689]: https://github.com/mochajs/mocha/issues/1689 + [#1654]: https://github.com/mochajs/mocha/issues/1654 + [@adamgruber]: https://github.com/adamgruber + [@ajaykodali]: https://github.com/ajaykodali + [@amsul]: https://github.com/amsul + [@aryeguy]: https://github.com/aryeguy + [@benvinegar]: https://github.com/benvinegar + [@boneskull]: https://github.com/boneskull + [@chromakode]: https://github.com/chromakode + [@dominicbarnes]: https://github.com/dominicbarnes + [@duncanbeevers]: https://github.com/duncanbeevers + [@gigadude]: https://github.com/gigadude + [@glenjamin]: https://github.com/glenjamin + [@gsilk]: https://github.com/gsilk + [@jakemmarsh]: https://github.com/jakemmarsh + [@jbnicolai]: https://github.com/jbnicolai + [@jlai]: https://github.com/jlai + [@jonathandelgado]: https://github.com/jonathandelgado + [@jschilli]: https://github.com/jschilli + [@kkirsche]: https://github.com/kkirsche + [@moll]: https://github.com/moll + [@ndhoule]: https://github.com/ndhoule + [@outdooricon]: https://github.com/outdooricon + [@outsideris]: https://github.com/outsideris + [@papandreou]: https://github.com/papandreou + [@rstacruz]: https://github.com/rstacruz + [@ryedog]: https://github.com/ryedog + [@slyg]: https://github.com/slyg + [@sunesimonsen]: https://github.com/sunesimonsen + [@tinganho]: https://github.com/tinganho + +2.2.5 / 2015-05-14 +================== + + * [#1699] - Upgrade jsdiff to v1.4.0 ([@nylen]) + * [#1648] - fix diff background colors in the console ([@nylen]) + * [#1327] - fix tests running twice, a regression issue. ([#1686], [@danielstjules]) + * [#1675] - add integration tests ([@danielstjules]) + * [#1682] - use a valid SPDX license identifier in package.json ([@kemitchell]) + * [#1660] - fix assertion of invalid dates ([#1661], [@a8m]) + * [#1241] - fix issue with multiline diffs appearing as single line ([#1655], [@a8m]) + +[#1699]: https://github.com/mochajs/mocha/issues/1699 +[#1648]: https://github.com/mochajs/mocha/issues/1648 +[#1327]: https://github.com/mochajs/mocha/issues/1327 +[#1686]: https://github.com/mochajs/mocha/issues/1686 +[#1675]: https://github.com/mochajs/mocha/issues/1675 +[#1682]: https://github.com/mochajs/mocha/issues/1682 +[#1660]: https://github.com/mochajs/mocha/issues/1660 +[#1661]: https://github.com/mochajs/mocha/issues/1661 +[#1241]: https://github.com/mochajs/mocha/issues/1241 +[#1655]: https://github.com/mochajs/mocha/issues/1655 +[@nylen]: https://github.com/nylen +[@danielstjules]: https://github.com/danielstjules +[@kemitchell]: https://github.com/kemitchell +[@a8m]: https://github.com/a8m + +2.2.4 / 2015-04-08 +================== + + * Load mocha.opts in _mocha for now (close #1645) + +2.2.3 / 2015-04-07 +================== + + * fix(reporter/base): string diff - issue #1241 + * fix(reporter/base): string diff - issue #1241 + * fix(reporter/base): don't show diffs for errors without expectation + * fix(reporter/base): don't assume error message is first line of stack + * improve: dry up reporter/base test + * fix(reporter/base): explicitly ignore showDiff #1614 + * Add iojs to travis build + * Pass `--allow-natives-syntax` flag to node. + * Support --harmony_classes flag for io.js + * Fix 1556: Update utils.clean to handle newlines in func declarations + * Fix 1606: fix err handling in IE <= 8 and non-ES5 browsers + * Fix 1585: make _mocha executable again + * chore(package.json): add a8m as a contributor + * Fixed broken link on html-cov reporter + * support --es_staging flag + * fix issue where menu overlaps content. + * update contributors in package.json + * Remove trailing whitespace from reporter output + * Remove contributors list from readme + * log third-party reporter errors + * [Fix] Exclude not own properties when looping on options + * fix: support node args in mocha.opts (close #1573) + * fix(reporter/base): string diff - issue #1241 + +2.2.1 / 2015-03-09 +================== + + * Fix passing of args intended for node/iojs. + +2.2.0 / 2015-03-06 +================== + + * Update mocha.js + * Add --fgrep. Use grep for RegExp, fgrep for str + * Ignore async global errors after spec resolution + * Fixing errors that prevent mocha.js from loading in the browser - fixes #1558 + * fix(utils): issue #1558 + make + * add ability to delay root suite; closes #362, closes #1124 + * fix insanity in http tests + * update travis: add node 0.12, add gitter, remove slack + * building + * resolve #1548: ensure the environment's "node" executable is used + * reporters/base: use supports-color to detect colorable term + * travis: use docker containers + * small fix: commander option for --expose-gc + * Ignore asynchronous errors after global failure + * Improve error output when a test fails with a non-error + * updated travis badge, uses svg instead of img + * Allow skip from test context for #332 + * [JSHINT] Unnecessary semicolon fixed in bin/_mocha + * Added a reminder about the done() callback to test timeout error messages + * fixes #1496, in Mocha.run(fn), check if fn exists before executing it, added tests too + * Add Harmony Proxy flag for iojs + * test(utils|ms|*): test existing units + * add support for some iojs flags + * fix(utils.stringify): issue #1229, diff viewer + * Remove slack link + * Prevent multiple 'grep=' querystring params in html reporter + * Use grep as regexp (close #1381) + * utils.stringify should handle objects without an Object prototype + * in runnable test, comparing to undefined error's message rather than a literal + * Fix test running output truncation on async STDIO + * amended for deprecated customFds option in child_process + +2.1.0 / 2014-12-23 +================== + + * showDiff: don’t stringify strings + * Clean up unused module dependencies. + * Filter zero-length strings from mocha.opts + * only write to stdout in reporters + * Revert "only write to stdout in reporters" + * Print colored output only to a tty + * update summary in README.md + * rename Readme.md/History.md to README.md/HISTORY.md because neurotic + * add .mailmap to fix "git shortlog" or "git summary" output + * fixes #1461: nyan-reporter now respects Base.useColors, fixed bug where Base.color would not return a string when str wasn't a string. + * Use existing test URL builder in failed replay links + * modify .travis.yml: use travis_retry; closes #1449 + * fix -t 0 behavior; closes #1446 + * fix tests (whoops) + * improve diff behavior + * Preserve pathname when linking to individual tests + * Fix test + * Tiny typo in comments fixed + * after hooks now being called on failed tests when using bail, fixes #1093 + * fix throwing undefined/null now makes tests fail, fixes #1395 + * compiler extensions are added as watched extensions, removed non-standard extensions from watch regex, resolves #1221 + * prefix/namespace for suite titles in markdown reporter, fixes #554 + * fix more bad markdown in CONTRIBUTING.md + * fix bad markdown in CONTRIBUTING.md + * add setImmediate/clearImmediate to globals; closes #1435 + * Fix buffer diffs (closes #1132, closes #1433) + * add a CONTRIBUTING.md. closes #882 + * fix intermittent build failures (maybe). closes #1407 + * add Slack notification to .travis.yml + * Fix slack link + * Add slack room to readme + * Update maintainers + * update maintainers and contributors + * resolves #1393: kill children with more effort on SIGINT + * xunit reporter support for optionally writing to a file + * if a reporter has a .done method, call it before exiting + * add support for reporter options + * only write to stdout in reporters + +2.0.0 / 2014-10-21 +================== + + * remove: support for node 0.6.x, 0.4.x + * fix: landing reporter with non ansi characters (#211) + * fix: html reporter - preserve query params when navigating to suites/tests (#1358) + * fix: json stream reporter add error message to failed test + * fix: fixes for visionmedia -> mochajs + * fix: use stdio, fixes node deprecation warnings (#1391) + +1.21.5 / 2014-10-11 +================== + + * fix: build for NodeJS v0.6.x + * fix: do not attempt to highlight syntax when non-HTML reporter is used + * update: escape-string-regexp to 1.0.2. + * fix: botched indentation in canonicalize() + * fix: .gitignore: ignore .patch and .diff files + * fix: changed 'Catched' to 'Caught' in uncaught exception error handler messages + * add: `pending` field for json reporter + * fix: Runner.prototype.uncaught: don't double-end runnables that already have a state. + * fix: --recursive, broken by f0facd2e + * update: replaces escapeRegexp with the escape-string-regexp package. + * update: commander to 2.3.0. + * update: diff to 1.0.8. + * fix: ability to disable syntax highlighting (#1329) + * fix: added empty object to errorJSON() call to catch when no error is present + * fix: never time out after calling enableTimeouts(false) + * fix: timeout(0) will work at suite level (#1300) + * Fix for --watch+only() issue (#888 ) + * fix: respect err.showDiff, add Base reporter test (#810) + +1.22.1-3 / 2014-07-27 +================== + + * fix: disabling timeouts with this.timeout(0) (#1301) + +1.22.1-3 / 2014-07-27 +================== + + * fix: local uis and reporters (#1288) + * fix: building 1.21.0's changes in the browser (#1284) + +1.21.0 / 2014-07-23 +================== + + * add: --no-timeouts option (#1262, #1268) + * add: --*- deprecation node flags (#1217) + * add: --watch-extensions argument (#1247) + * change: spec reporter is default (#1228) + * fix: diff output showing incorrect +/- (#1182) + * fix: diffs of circular structures (#1179) + * fix: re-render the progress bar when progress has changed only (#1151) + * fix support for environments with global and window (#1159) + * fix: reverting to previously defined onerror handler (#1178) + * fix: stringify non error objects passed to done() (#1270) + * fix: using local ui, reporters (#1267) + * fix: cleaning es6 arrows (#1176) + * fix: don't include attrs in failure tag for xunit (#1244) + * fix: fail tests that return a promise if promise is rejected w/o a reason (#1224) + * fix: showing failed tests in doc reporter (#1117) + * fix: dot reporter dots being off (#1204) + * fix: catch empty throws (#1219) + * fix: honoring timeout for sync operations (#1242) + * update: growl to 1.8.0 + +1.20.1 / 2014-06-03 +================== + + * update: should dev dependency to ~4.0.0 (#1231) + +1.20.0 / 2014-05-28 +================== + + * add: filenames to suite objects (#1222) + +1.19.0 / 2014-05-17 +================== + + * add: browser script option to package.json + * add: export file in Mocha.Test objects (#1174) + * add: add docs for wrapped node flags + * fix: mocha.run() to return error status in browser (#1216) + * fix: clean() to show failure details (#1205) + * fix: regex that generates html for new keyword (#1201) + * fix: sibling suites have inherited but separate contexts (#1164) + + +1.18.2 / 2014-03-18 +================== + + * fix: html runner was prevented from using #mocha as the default root el (#1162) + +1.18.1 / 2014-03-18 +================== + + * fix: named before/after hooks in bdd, tdd, qunit interfaces (#1161) + +1.18.0 / 2014-03-13 +================== + + * add: promise support (#329) + * add: named before/after hooks (#966) + +1.17.1 / 2014-01-22 +================== + + * fix: expected messages in should.js (should.js#168) + * fix: expect errno global in node versions < v0.9.11 (#1111) + * fix: unreliable checkGlobals optimization (#1110) + +1.17.0 / 2014-01-09 +================== + + * add: able to require globals (describe, it, etc.) through mocha (#1077) + * fix: abort previous run on --watch change (#1100) + * fix: reset context for each --watch triggered run (#1099) + * fix: error when cli can't resolve path or pattern (#799) + * fix: canonicalize objects before stringifying and diffing them (#1079) + * fix: make CR call behave like carriage return for non tty (#1087) + + +1.16.2 / 2013-12-23 +================== + + * fix: couple issues with ie 8 (#1082, #1081) + * fix: issue running the xunit reporter in browsers (#1068) + * fix: issue with firefox < 3.5 (#725) + + +1.16.1 / 2013-12-19 +================== + + * fix: recompiled for missed changes from the last release + + +1.16.0 / 2013-12-19 +================== + + * add: Runnable.globals(arr) for per test global whitelist (#1046) + * add: mocha.throwError(err) for assertion libs to call (#985) + * remove: --watch's spinner (#806) + * fix: duplicate test output for multi-line specs in spec reporter (#1006) + * fix: gracefully exit on SIGINT (#1063) + * fix expose the specified ui only in the browser (#984) + * fix: ensure process exit code is preserved when using --no-exit (#1059) + * fix: return true from window.onerror handler (#868) + * fix: xunit reporter to use process.stdout.write (#1068) + * fix: utils.clean(str) indentation (#761) + * fix: xunit reporter returning test duration a NaN (#1039) + +1.15.1 / 2013-12-03 +================== + + * fix: recompiled for missed changes from the last release + +1.15.0 / 2013-12-02 +================== + + * add: `--no-exit` to prevent `process.exit()` (#1018) + * fix: using inline diffs (#1044) + * fix: show pending test details in xunit reporter (#1051) + * fix: faster global leak detection (#1024) + * fix: yui compression (#1035) + * fix: wrapping long lines in test results (#1030, #1031) + * fix: handle errors in hooks (#1043) + +1.14.0 / 2013-11-02 +================== + + * add: unified diff (#862) + * add: set MOCHA_COLORS env var to use colors (#965) + * add: able to override tests links in html reporters (#776) + * remove: teamcity reporter (#954) + * update: commander dependency to 2.0.0 (#1010) + * fix: mocha --ui will try to require the ui if not built in, as --reporter does (#1022) + * fix: send cursor commands only if isatty (#184, #1003) + * fix: include assertion message in base reporter (#993, #991) + * fix: consistent return of it, it.only, and describe, describe.only (#840) + +1.13.0 / 2013-09-15 +================== + + * add: sort test files with --sort (#813) + * update: diff dependency to 1.0.7 + * update: glob dependency to 3.2.3 (#927) + * fix: diffs show whitespace differences (#976) + * fix: improve global leaks (#783) + * fix: firefox window.getInterface leak + * fix: accessing iframe via window[iframeIndex] leak + * fix: faster global leak checking + * fix: reporter pending css selector (#970) + +1.12.1 / 2013-08-29 +================== + + * remove test.js from .gitignore + * update included version of ms.js + +1.12.0 / 2013-07-01 +================== + + * add: prevent diffs for differing types. Closes #900 + * add `Mocha.process` hack for phantomjs + * fix: use compilers with requires + * fix regexps in diffs. Closes #890 + * fix xunit NaN on failure. Closes #894 + * fix: strip tab indentation in `clean` utility method + * fix: textmate bundle installation + +1.11.0 / 2013-06-12 +================== + + * add --prof support + * add --harmony support + * add --harmony-generators support + * add "Uncaught " prefix to uncaught exceptions + * add web workers support + * add `suite.skip()` + * change to output # of pending / passing even on failures. Closes #872 + * fix: prevent hooks from being called if we are bailing + * fix `this.timeout(0)` + +1.10.0 / 2013-05-21 +================== + + * add add better globbing support for windows via `glob` module + * add support to pass through flags such as --debug-brk=1234. Closes #852 + * add test.only, test.skip to qunit interface + * change to always use word-based diffs for now. Closes #733 + * change `mocha init` tests.html to index.html + * fix `process` global leak in the browser + * fix: use resolve() instead of join() for --require + * fix: filterLeaks() condition to not consider indices in global object as leaks + * fix: restrict mocha.css styling to #mocha id + * fix: save timer references to avoid Sinon interfering in the browser build. + +1.9.0 / 2013-04-03 +================== + + * add improved setImmediate implementation + * replace --ignore-leaks with --check-leaks + * change default of ignoreLeaks to true. Closes #791 + * remove scrolling for HTML reporter + * fix retina support + * fix tmbundle, restrict to js scope + +1.8.2 / 2013-03-11 +================== + + * add `setImmediate` support for 0.10.x + * fix mocha -w spinner on windows + +1.8.1 / 2013-01-09 +================== + + * fix .bail() arity check causing it to default to true + +1.8.0 / 2013-01-08 +================== + + * add Mocha() options bail support + * add `Mocha#bail()` method + * add instanceof check back for inheriting from Error + * add component.json + * add diff.js to browser build + * update growl + * fix TAP reporter failures comment :D + +1.7.4 / 2012-12-06 +================== + + * add total number of passes and failures to TAP + * remove .bind() calls. re #680 + * fix indexOf. Closes #680 + +1.7.3 / 2012-11-30 +================== + + * fix uncaught error support for the browser + * revert uncaught "fix" which breaks node + +1.7.2 / 2012-11-28 +================== + + * fix uncaught errors to expose the original error message + +1.7.0 / 2012-11-07 +================== + + * add `--async-only` support to prevent false positives for missing `done()` + * add sorting by filename in code coverage + * add HTML 5 doctype to browser template. + * add play button to html reporter to rerun a single test + * add `this.timeout(ms)` as Suite#timeout(ms). Closes #599 + * update growl dependency to 1.6.x + * fix encoding of test-case ?grep. Closes #637 + * fix unicode chars on windows + * fix dom globals in Opera/IE. Closes #243 + * fix markdown reporter a tags + * fix `this.timeout("5s")` support + +1.6.0 / 2012-10-02 +================== + + * add object diffs when `err.showDiff` is present + * add hiding of empty suites when pass/failures are toggled + * add faster `.length` checks to `checkGlobals()` before performing the filter + +1.5.0 / 2012-09-21 +================== + + * add `ms()` to `.slow()` and `.timeout()` + * add `Mocha#checkLeaks()` to re-enable global leak checks + * add `this.slow()` option [aheckmann] + * add tab, CR, LF to error diffs for now + * add faster `.checkGlobals()` solution [guille] + * remove `fn.call()` from reduce util + * remove `fn.call()` from filter util + * fix forEach. Closes #582 + * fix relaying of signals [TooTallNate] + * fix TAP reporter grep number + +1.4.2 / 2012-09-01 +================== + + * add support to multiple `Mocha#globals()` calls, and strings + * add `mocha.reporter()` constructor support [jfirebaugh] + * add `mocha.timeout()` + * move query-string parser to utils.js + * move highlight code to utils.js + * fix third-party reporter support [exogen] + * fix client-side API to match node-side [jfirebaugh] + * fix mocha in iframe [joliss] + +1.4.1 / 2012-08-28 +================== + + * add missing `Markdown` export + * fix `Mocha#grep()`, escape regexp strings + * fix reference error when `devicePixelRatio` is not defined. Closes #549 + +1.4.0 / 2012-08-22 +================== + + * add mkdir -p to `mocha init`. Closes #539 + * add `.only()`. Closes #524 + * add `.skip()`. Closes #524 + * change str.trim() to use utils.trim(). Closes #533 + * fix HTML progress indicator retina display + * fix url-encoding of click-to-grep HTML functionality + +1.3.2 / 2012-08-01 +================== + + * fix exports double-execution regression. Closes #531 + +1.3.1 / 2012-08-01 +================== + + * add passes/failures toggling to HTML reporter + * add pending state to `xit()` and `xdescribe()` [Brian Moore] + * add the @charset "UTF-8"; to fix #522 with FireFox. [Jonathan Creamer] + * add border-bottom to #stats links + * add check for runnable in `Runner#uncaught()`. Closes #494 + * add 0.4 and 0.6 back to travis.yml + * add `-E, --growl-errors` to growl on failures only + * add prefixes to debug() names. Closes #497 + * add `Mocha#invert()` to js api + * change dot reporter to use sexy unicode dots + * fix error when clicking pending test in HTML reporter + * fix `make tm` + +1.3.0 / 2012-07-05 +================== + + * add window scrolling to `HTML` reporter + * add v8 `--trace-*` option support + * add support for custom reports via `--reporter MODULE` + * add `--invert` switch to invert `--grep` matches + * fix export of `Nyan` reporter. Closes #495 + * fix escaping of `HTML` suite titles. Closes #486 + * fix `done()` called multiple times with an error test + * change `--grep` - regexp escape the input + +1.2.2 / 2012-06-28 +================== + + * Added 0.8.0 support + +1.2.1 / 2012-06-25 +================== + + * Added `this.test.error(err)` support to after each hooks. Closes #287 + * Added: export top-level suite on global mocha object (mocha.suite). Closes #448 + * Fixed `js` code block format error in markdown reporter + * Fixed deprecation warning when using `path.existsSync` + * Fixed --globals with wildcard + * Fixed chars in nyan when his head moves back + * Remove `--growl` from test/mocha.opts. Closes #289 + +1.2.0 / 2012-06-17 +================== + + * Added `nyan` reporter [Atsuya Takagi] + * Added `mocha init ` to copy client files + * Added "specify" synonym for "it" [domenic] + * Added global leak wildcard support [nathanbowser] + * Fixed runner emitter leak. closes #432 + * Fixed omission of .js extension. Closes #454 + +1.1.0 / 2012-05-30 +================== + + * Added: check each `mocha(1)` arg for directories to walk + * Added `--recursive` [tricknotes] + * Added `context` for BDD [hokaccha] + * Added styling for new clickable titles + * Added clickable suite titles to HTML reporter + * Added warning when strings are thrown as errors + * Changed: green arrows again in HTML reporter styling + * Changed ul/li elements instead of divs for better copy-and-pasting [joliss] + * Fixed issue #325 - add better grep support to js api + * Fixed: save timer references to avoid Sinon interfering. + +1.0.3 / 2012-04-30 +================== + + * Fixed string diff newlines + * Fixed: removed mocha.css target. Closes #401 + +1.0.2 / 2012-04-25 +================== + + * Added HTML reporter duration. Closes #47 + * Fixed: one postMessage event listener [exogen] + * Fixed: allow --globals to be used multiple times. Closes #100 [brendannee] + * Fixed #158: removes jquery include from browser tests + * Fixed grep. Closes #372 [brendannee] + * Fixed #166 - When grepping don't display the empty suites + * Removed test/browser/style.css. Closes #385 + +1.0.1 / 2012-04-04 +================== + + * Fixed `.timeout()` in hooks + * Fixed: allow callback for `mocha.run()` in client version + * Fixed browser hook error display. Closes #361 + +1.0.0 / 2012-03-24 +================== + + * Added js API. Closes #265 + * Added: initial run of tests with `--watch`. Closes #345 + * Added: mark `location` as a global on the CS. Closes #311 + * Added `markdown` reporter (github flavour) + * Added: scrolling menu to coverage.html. Closes #335 + * Added source line to html report for Safari [Tyson Tate] + * Added "min" reporter, useful for `--watch` [Jakub Nešetřil] + * Added support for arbitrary compilers via . Closes #338 [Ian Young] + * Added Teamcity export to lib/reporters/index [Michael Riley] + * Fixed chopping of first char in error reporting. Closes #334 [reported by topfunky] + * Fixed terrible FF / Opera stack traces + +0.14.1 / 2012-03-06 +================== + + * Added lib-cov to _.npmignore_ + * Added reporter to `mocha.run([reporter])` as argument + * Added some margin-top to the HTML reporter + * Removed jQuery dependency + * Fixed `--watch`: purge require cache. Closes #266 + +0.14.0 / 2012-03-01 +================== + + * Added string diff support for terminal reporters + +0.13.0 / 2012-02-23 +================== + + * Added preliminary test coverage support. Closes #5 + * Added `HTMLCov` reporter + * Added `JSONCov` reporter [kunklejr] + * Added `xdescribe()` and `xit()` to the BDD interface. Closes #263 (docs * Changed: make json reporter output pretty json + * Fixed node-inspector support, swapped `--debug` for `debug` to match node. +needed) +Closes #247 + +0.12.1 / 2012-02-14 +================== + + * Added `npm docs mocha` support [TooTallNate] + * Added a `Context` object used for hook and test-case this. Closes #253 + * Fixed `Suite#clone()` `.ctx` reference. Closes #262 + +0.12.0 / 2012-02-02 +================== + + * Added .coffee `--watch` support. Closes #242 + * Added support to `--require` files relative to the CWD. Closes #241 + * Added quick n dirty syntax highlighting. Closes #248 + * Changed: made HTML progress indicator smaller + * Fixed xunit errors attribute [dhendo] + +0.10.2 / 2012-01-21 +================== + + * Fixed suite count in reporter stats. Closes #222 + * Fixed `done()` after timeout error reporting [Phil Sung] + * Changed the 0-based errors to 1 + +0.10.1 / 2012-01-17 +================== + + * Added support for node 0.7.x + * Fixed absolute path support. Closes #215 [kompiro] + * Fixed `--no-colors` option [Jussi Virtanen] + * Fixed Arial CSS typo in the correct file + +0.10.0 / 2012-01-13 +================== + + * Added `-b, --bail` to exit on first exception [guillermo] + * Added support for `-gc` / `--expose-gc` [TooTallNate] + * Added `qunit`-inspired interface + * Added MIT LICENSE. Closes #194 + * Added: `--watch` all .js in the CWD. Closes #139 + * Fixed `self.test` reference in runner. Closes #189 + * Fixed double reporting of uncaught exceptions after timeout. Closes #195 + +0.8.2 / 2012-01-05 +================== + + * Added test-case context support. Closes #113 + * Fixed exit status. Closes #187 + * Update commander. Closes #190 + +0.8.1 / 2011-12-30 +================== + + * Fixed reporting of uncaught exceptions. Closes #183 + * Fixed error message defaulting [indutny] + * Changed mocha(1) from bash to node for windows [Nathan Rajlich] + +0.8.0 / 2011-12-28 +================== + + * Added `XUnit` reporter [FeeFighters/visionmedia] + * Added `say(1)` notification support [Maciej Małecki] + * Changed: fail when done() is invoked with a non-Error. Closes #171 + * Fixed `err.stack`, defaulting to message. Closes #180 + * Fixed: `make tm` mkdir -p the dest. Closes #137 + * Fixed mocha(1) --help bin name + * Fixed `-d` for `--debug` support + +0.7.1 / 2011-12-22 +================== + + * Removed `mocha-debug(1)`, use `mocha --debug` + * Fixed CWD relative requires + * Fixed growl issue on windows [Raynos] + * Fixed: platform specific line endings [TooTallNate] + * Fixed: escape strings in HTML reporter. Closes #164 + +0.7.0 / 2011-12-18 +================== + + * Added support for IE{7,8} [guille] + * Changed: better browser nextTick implementation [guille] + +0.6.0 / 2011-12-18 +================== + + * Added setZeroTimeout timeout for browser (nicer stack traces). Closes #153 + * Added "view source" on hover for HTML reporter to make it obvious + * Changed: replace custom growl with growl lib + * Fixed duplicate reporting for HTML reporter. Closes #154 + * Fixed silent hook errors in the HTML reporter. Closes #150 + +0.5.0 / 2011-12-14 +================== + + * Added: push node_modules directory onto module.paths for relative require Closes #93 + * Added teamcity reporter [blindsey] + * Fixed: recover from uncaught exceptions for tests. Closes #94 + * Fixed: only emit "test end" for uncaught within test, not hook + +0.4.0 / 2011-12-14 +================== + + * Added support for test-specific timeouts via `this.timeout(0)`. Closes #134 + * Added guillermo's client-side EventEmitter. Closes #132 + * Added progress indicator to the HTML reporter + * Fixed slow browser tests. Closes #135 + * Fixed "suite" color for light terminals + * Fixed `require()` leak spotted by [guillermo] + +0.3.6 / 2011-12-09 +================== + + * Removed suite merging (for now) + +0.3.5 / 2011-12-08 +================== + + * Added support for `window.onerror` [guillermo] + * Fixed: clear timeout on uncaught exceptions. Closes #131 [guillermo] + * Added `mocha.css` to PHONY list. + * Added `mocha.js` to PHONY list. + +0.3.4 / 2011-12-08 +================== + + * Added: allow `done()` to be called with non-Error + * Added: return Runner from `mocha.run()`. Closes #126 + * Fixed: run afterEach even on failures. Closes #125 + * Fixed clobbering of current runnable. Closes #121 + +0.3.3 / 2011-12-08 +================== + + * Fixed hook timeouts. Closes #120 + * Fixed uncaught exceptions in hooks + +0.3.2 / 2011-12-05 +================== + + * Fixed weird reporting when `err.message` is not present + +0.3.1 / 2011-12-04 +================== + + * Fixed hook event emitter leak. Closes #117 + * Fixed: export `Spec` constructor. Closes #116 + +0.3.0 / 2011-12-04 +================== + + * Added `-w, --watch`. Closes #72 + * Added `--ignore-leaks` to ignore global leak checking + * Added browser `?grep=pattern` support + * Added `--globals ` to specify accepted globals. Closes #99 + * Fixed `mocha-debug(1)` on some systems. Closes #232 + * Fixed growl total, use `runner.total` + +0.2.0 / 2011-11-30 +================== + + * Added `--globals ` to specify accepted globals. Closes #99 + * Fixed funky highlighting of messages. Closes #97 + * Fixed `mocha-debug(1)`. Closes #232 + * Fixed growl total, use runner.total + +0.1.0 / 2011-11-29 +================== + + * Added `suiteSetup` and `suiteTeardown` to TDD interface [David Henderson] + * Added growl icons. Closes #84 + * Fixed coffee-script support + +0.0.8 / 2011-11-25 +================== + + * Fixed: use `Runner#total` for accurate reporting + +0.0.7 / 2011-11-25 +================== + + * Added `Hook` + * Added `Runnable` + * Changed: `Test` is `Runnable` + * Fixed global leak reporting in hooks + * Fixed: > 2 calls to done() only report the error once + * Fixed: clear timer on failure. Closes #80 + +0.0.6 / 2011-11-25 +================== + + * Fixed return on immediate async error. Closes #80 + +0.0.5 / 2011-11-24 +================== + + * Fixed: make mocha.opts whitespace less picky [kkaefer] + +0.0.4 / 2011-11-24 +================== + + * Added `--interfaces` + * Added `--reporters` + * Added `-c, --colors`. Closes #69 + * Fixed hook timeouts + +0.0.3 / 2011-11-23 +================== + + * Added `-C, --no-colors` to explicitly disable + * Added coffee-script support + +0.0.2 / 2011-11-22 +================== + + * Fixed global leak detection due to Safari bind() change + * Fixed: escape html entities in Doc reporter + * Fixed: escape html entities in HTML reporter + * Fixed pending test support for HTML reporter. Closes #66 + +0.0.1 / 2011-11-22 +================== + + * Added `--timeout` second shorthand support, ex `--timeout 3s`. + * Fixed "test end" event for uncaughtExceptions. Closes #61 + +0.0.1-alpha6 / 2011-11-19 +================== + + * Added travis CI support (needs enabling when public) + * Added preliminary browser support + * Added `make mocha.css` target. Closes #45 + * Added stack trace to TAP errors. Closes #52 + * Renamed tearDown to teardown. Closes #49 + * Fixed: cascading hooksc. Closes #30 + * Fixed some colors for non-tty + * Fixed errors thrown in sync test-cases due to nextTick + * Fixed Base.window.width... again give precedence to 0.6.x + +0.0.1-alpha5 / 2011-11-17 +================== + + * Added `doc` reporter. Closes #33 + * Added suite merging. Closes #28 + * Added TextMate bundle and `make tm`. Closes #20 + +0.0.1-alpha4 / 2011-11-15 +================== + + * Fixed getWindowSize() for 0.4.x + +0.0.1-alpha3 / 2011-11-15 +================== + + * Added `-s, --slow ` to specify "slow" test threshold + * Added `mocha-debug(1)` + * Added `mocha.opts` support. Closes #31 + * Added: default [files] to _test/*.js_ + * Added protection against multiple calls to `done()`. Closes #35 + * Changed: bright yellow for slow Dot reporter tests + +0.0.1-alpha1 / 2011-11-08 +================== + + * Missed this one :) + +0.0.1-alpha1 / 2011-11-08 +================== + + * Initial release diff --git a/bower_components/mocha/LICENSE b/bower_components/mocha/LICENSE new file mode 100644 index 00000000..287db889 --- /dev/null +++ b/bower_components/mocha/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2011-2017 JS Foundation and contributors, https://js.foundation + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/bower_components/mocha/README.md b/bower_components/mocha/README.md new file mode 100644 index 00000000..9e4d4dcb --- /dev/null +++ b/bower_components/mocha/README.md @@ -0,0 +1,124 @@ +# Mocha needs YOU! + +*Did you know* Mocha [is a dependency of over 100,000 projects](https://libraries.io/npm/mocha) published to npm alone? + +**Despite this, we're currently unable to merge most pull requests due to lack of maintenance resources.** + +**Are you interested in triaging issues or reviewing open PRs? Have some time to hack on its codebase?** If you would like to help maintain Mocha, please contact `@boneskull` on [Gitter](https://gitter.im/mochajs/mocha). + +*Thank you* :kissing_heart: to all of you interested in helping. These are Mocha's immediate needs: + +1. Increase test coverage on Node.js and browser + - Increase integration coverage for all reporters + - `html` reporter must be tested in browser + - ~~Basic console reporters (*not* `nyan`, `landing`, etc.) must be tested in **both** browser and Node.js contexts; PhantomJS can consume all console reporters~~ + - ~~Filesystem-based reporters must be tested in Node.js context~~ + - **UPDATE - May 24 2017**: Thanks to [community contributions](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#mag-coverage), the coverage on most reporters has increased dramatically! The `html` reporter is still in [dire need of coverage](https://coveralls.io/builds/11674428/source?filename=lib%2Freporters%2Fhtml.js). + - Increase coverage against all interfaces (`exports` in particular). Ideally this becomes a "matrix" where we repeat sets of integration tests across all interfaces. + - Refactor non-Node.js-specific tests to allow them to run in a browser context. Node.js-specific tests include those which *require* the CLI or filesystem. Most everything else is fair game. +2. Review current open pull requests + - We need individuals familiar with Mocha's codebase. Got questions? Ask them in [our chat room](https://gitter.im/mochajs/mocha). + - Pull requests **must** have supporting tests. The only exceptions are pure cosmetic or non-functional changes. + - Pull request contributors must sign the CLA. +3. Close old, inactive issues and pull requests + - ~~A bot should do this. We need a bot. Got a bot?~~ We now use GitHub's own [probot-stale](https://www.npmjs.com/package/probot-stale). +4. Triage issues + - If we run into "critical" bugs, they need fixing. + - "Critical" means Mocha is broken w/o workarounds for a *large percentage* of users + - Otherwise: respond to issues, close new dupe issues, confirm bugs, ask for more info, etc. + +Once we gain ground on the above items, we can work together formalize our contribution guidelines and governance. For further info & ideas, please see our [projects](https://github.com/mochajs/mocha/projects/). + +*You needn't be a maintainer to submit a pull request for test coverage!* + +-- @boneskull, *Jan 17 2016* + +

    +

    + Mocha test framework +

    + +[![Build Status](https://api.travis-ci.org/mochajs/mocha.svg?branch=master)](http://travis-ci.org/mochajs/mocha) +[![Coverage Status](https://coveralls.io/repos/github/mochajs/mocha/badge.svg)](https://coveralls.io/github/mochajs/mocha) +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha?ref=badge_shield) +[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mochajs/mocha?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![OpenCollective](https://opencollective.com/mochajs/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/mochajs/sponsors/badge.svg)](#sponsors) +
    Mocha Browser Support h/t SauceLabs + + Mocha is a simple, flexible, fun JavaScript test framework for node.js and the browser. For more information view the [documentation](http://mochajs.org). + +## Links + + - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) + - [Google Group](http://groups.google.com/group/mochajs) + - [Wiki](https://github.com/mochajs/mocha/wiki) + - Mocha [Extensions and reporters](https://github.com/mochajs/mocha/wiki) + + +## Backers + +[Become a backer]((https://opencollective.com/mochajs#backer)) and show your support to our open source project. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Does your company use Mocha? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time for maintenance and new features for everyone. Also, your company's logo will show [on GitHub](https://github.com/mochajs/mocha#readme) and on [our site](https://mochajs.org)--who doesn't want a little extra exposure? [Here's the info](https://opencollective.com/mochajs#sponsor). + + + + + + + + + + + + + + + + + + + + + + +## License + +[MIT](LICENSE) + +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha?ref=badge_large) diff --git a/bower_components/mocha/bower.json b/bower_components/mocha/bower.json new file mode 100644 index 00000000..e96cc952 --- /dev/null +++ b/bower_components/mocha/bower.json @@ -0,0 +1,38 @@ +{ + "name": "mocha", + "homepage": "https://mochajs.org", + "description": "simple, flexible, fun test framework", + "repository": { + "type": "git", + "url": "git://github.com/mochajs/mocha.git" + }, + "main": [ + "mocha.js", + "mocha.css" + ], + "ignore": [ + "bin", + "editors", + "images", + "lib", + "scripts", + "test", + "assets", + "media", + ".*", + "index.js", + "karma.conf.js", + "browser-entry.js", + "Makefile", + "package.json", + "appveyor.yml" + ], + "keywords": [ + "mocha", + "test", + "bdd", + "tdd", + "tap" + ], + "license": "MIT" +} diff --git a/bower_components/mocha/mocha.css b/bower_components/mocha/mocha.css new file mode 100644 index 00000000..ec96b003 --- /dev/null +++ b/bower_components/mocha/mocha.css @@ -0,0 +1,326 @@ +@charset "utf-8"; + +body { + margin:0; +} + +#mocha { + font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; + margin: 60px 50px; +} + +#mocha ul, +#mocha li { + margin: 0; + padding: 0; +} + +#mocha ul { + list-style: none; +} + +#mocha h1, +#mocha h2 { + margin: 0; +} + +#mocha h1 { + margin-top: 15px; + font-size: 1em; + font-weight: 200; +} + +#mocha h1 a { + text-decoration: none; + color: inherit; +} + +#mocha h1 a:hover { + text-decoration: underline; +} + +#mocha .suite .suite h1 { + margin-top: 0; + font-size: .8em; +} + +#mocha .hidden { + display: none; +} + +#mocha h2 { + font-size: 12px; + font-weight: normal; + cursor: pointer; +} + +#mocha .suite { + margin-left: 15px; +} + +#mocha .test { + margin-left: 15px; + overflow: hidden; +} + +#mocha .test.pending:hover h2::after { + content: '(pending)'; + font-family: arial, sans-serif; +} + +#mocha .test.pass.medium .duration { + background: #c09853; +} + +#mocha .test.pass.slow .duration { + background: #b94a48; +} + +#mocha .test.pass::before { + content: '✓'; + font-size: 12px; + display: block; + float: left; + margin-right: 5px; + color: #00d6b2; +} + +#mocha .test.pass .duration { + font-size: 9px; + margin-left: 5px; + padding: 2px 5px; + color: #fff; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); + box-shadow: inset 0 1px 1px rgba(0,0,0,.2); + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; +} + +#mocha .test.pass.fast .duration { + display: none; +} + +#mocha .test.pending { + color: #0b97c4; +} + +#mocha .test.pending::before { + content: '◦'; + color: #0b97c4; +} + +#mocha .test.fail { + color: #c00; +} + +#mocha .test.fail pre { + color: black; +} + +#mocha .test.fail::before { + content: '✖'; + font-size: 12px; + display: block; + float: left; + margin-right: 5px; + color: #c00; +} + +#mocha .test pre.error { + color: #c00; + max-height: 300px; + overflow: auto; +} + +#mocha .test .html-error { + overflow: auto; + color: black; + line-height: 1.5; + display: block; + float: left; + clear: left; + font: 12px/1.5 monaco, monospace; + margin: 5px; + padding: 15px; + border: 1px solid #eee; + max-width: 85%; /*(1)*/ + max-width: -webkit-calc(100% - 42px); + max-width: -moz-calc(100% - 42px); + max-width: calc(100% - 42px); /*(2)*/ + max-height: 300px; + word-wrap: break-word; + border-bottom-color: #ddd; + -webkit-box-shadow: 0 1px 3px #eee; + -moz-box-shadow: 0 1px 3px #eee; + box-shadow: 0 1px 3px #eee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +#mocha .test .html-error pre.error { + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; + padding: 0; + margin: 0; + margin-top: 18px; + max-height: none; +} + +/** + * (1): approximate for browsers not supporting calc + * (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border) + * ^^ seriously + */ +#mocha .test pre { + display: block; + float: left; + clear: left; + font: 12px/1.5 monaco, monospace; + margin: 5px; + padding: 15px; + border: 1px solid #eee; + max-width: 85%; /*(1)*/ + max-width: -webkit-calc(100% - 42px); + max-width: -moz-calc(100% - 42px); + max-width: calc(100% - 42px); /*(2)*/ + word-wrap: break-word; + border-bottom-color: #ddd; + -webkit-box-shadow: 0 1px 3px #eee; + -moz-box-shadow: 0 1px 3px #eee; + box-shadow: 0 1px 3px #eee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +#mocha .test h2 { + position: relative; +} + +#mocha .test a.replay { + position: absolute; + top: 3px; + right: 0; + text-decoration: none; + vertical-align: middle; + display: block; + width: 15px; + height: 15px; + line-height: 15px; + text-align: center; + background: #eee; + font-size: 15px; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + -webkit-transition:opacity 200ms; + -moz-transition:opacity 200ms; + -o-transition:opacity 200ms; + transition: opacity 200ms; + opacity: 0.3; + color: #888; +} + +#mocha .test:hover a.replay { + opacity: 1; +} + +#mocha-report.pass .test.fail { + display: none; +} + +#mocha-report.fail .test.pass { + display: none; +} + +#mocha-report.pending .test.pass, +#mocha-report.pending .test.fail { + display: none; +} +#mocha-report.pending .test.pass.pending { + display: block; +} + +#mocha-error { + color: #c00; + font-size: 1.5em; + font-weight: 100; + letter-spacing: 1px; +} + +#mocha-stats { + position: fixed; + top: 15px; + right: 10px; + font-size: 12px; + margin: 0; + color: #888; + z-index: 1; +} + +#mocha-stats .progress { + float: right; + padding-top: 0; + + /** + * Set safe initial values, so mochas .progress does not inherit these + * properties from Bootstrap .progress (which causes .progress height to + * equal line height set in Bootstrap). + */ + height: auto; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background-color: initial; +} + +#mocha-stats em { + color: black; +} + +#mocha-stats a { + text-decoration: none; + color: inherit; +} + +#mocha-stats a:hover { + border-bottom: 1px solid #eee; +} + +#mocha-stats li { + display: inline-block; + margin: 0 5px; + list-style: none; + padding-top: 11px; +} + +#mocha-stats canvas { + width: 40px; + height: 40px; +} + +#mocha code .comment { color: #ddd; } +#mocha code .init { color: #2f6fad; } +#mocha code .string { color: #5890ad; } +#mocha code .keyword { color: #8a6343; } +#mocha code .number { color: #2f6fad; } + +@media screen and (max-device-width: 480px) { + #mocha { + margin: 60px 0px; + } + + #mocha #stats { + position: absolute; + } +} diff --git a/bower_components/mocha/mocha.js b/bower_components/mocha/mocha.js new file mode 100644 index 00000000..9a40e98a --- /dev/null +++ b/bower_components/mocha/mocha.js @@ -0,0 +1,16590 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { + suites.shift(); + } + return common.suite.create({ + title: title, + file: file, + fn: false + }); + }; + + /** + * Exclusive Suite. + */ + + context.suite.only = function (title) { + if (suites.length > 1) { + suites.shift(); + } + return common.suite.only({ + title: title, + file: file, + fn: false + }); + }; + + /** + * Describe a specification or test-case + * with the given `title` and callback `fn` + * acting as a thunk. + */ + + context.test = function (title, fn) { + var test = new Test(title, fn); + test.file = file; + suites[0].addTest(test); + return test; + }; + + /** + * Exclusive test-case. + */ + + context.test.only = function (title, fn) { + return common.test.only(mocha, context.test(title, fn)); + }; + + context.test.skip = common.test.skip; + context.test.retries = common.test.retries; + }); +}; + +},{"../test":36,"./common":9}],13:[function(require,module,exports){ +'use strict'; + +/** + * Module dependencies. + */ + +var Test = require('../test'); + +/** + * TDD-style interface: + * + * suite('Array', function() { + * suite('#indexOf()', function() { + * suiteSetup(function() { + * + * }); + * + * test('should return -1 when not present', function() { + * + * }); + * + * test('should return the index when present', function() { + * + * }); + * + * suiteTeardown(function() { + * + * }); + * }); + * }); + * + * @param {Suite} suite Root suite. + */ +module.exports = function (suite) { + var suites = [suite]; + + suite.on('pre-require', function (context, file, mocha) { + var common = require('./common')(suites, context, mocha); + + context.setup = common.beforeEach; + context.teardown = common.afterEach; + context.suiteSetup = common.before; + context.suiteTeardown = common.after; + context.run = mocha.options.delay && common.runWithSuite(suite); + + /** + * Describe a "suite" with the given `title` and callback `fn` containing + * nested suites and/or tests. + */ + context.suite = function (title, fn) { + return common.suite.create({ + title: title, + file: file, + fn: fn + }); + }; + + /** + * Pending suite. + */ + context.suite.skip = function (title, fn) { + return common.suite.skip({ + title: title, + file: file, + fn: fn + }); + }; + + /** + * Exclusive test-case. + */ + context.suite.only = function (title, fn) { + return common.suite.only({ + title: title, + file: file, + fn: fn + }); + }; + + /** + * Describe a specification or test-case with the given `title` and + * callback `fn` acting as a thunk. + */ + context.test = function (title, fn) { + var suite = suites[0]; + if (suite.isPending()) { + fn = null; + } + var test = new Test(title, fn); + test.file = file; + suite.addTest(test); + return test; + }; + + /** + * Exclusive test-case. + */ + + context.test.only = function (title, fn) { + return common.test.only(mocha, context.test(title, fn)); + }; + + context.test.skip = common.test.skip; + context.test.retries = common.test.retries; + }); +}; + +},{"../test":36,"./common":9}],14:[function(require,module,exports){ +(function (process,global,__dirname){ +'use strict'; + +/*! + * mocha + * Copyright(c) 2011 TJ Holowaychuk + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var escapeRe = require('escape-string-regexp'); +var path = require('path'); +var reporters = require('./reporters'); +var utils = require('./utils'); + +/** + * Expose `Mocha`. + */ + +exports = module.exports = Mocha; + +/** + * To require local UIs and reporters when running in node. + */ + +if (!process.browser) { + var cwd = process.cwd(); + module.paths.push(cwd, path.join(cwd, 'node_modules')); +} + +/** + * Expose internals. + */ + +exports.utils = utils; +exports.interfaces = require('./interfaces'); +exports.reporters = reporters; +exports.Runnable = require('./runnable'); +exports.Context = require('./context'); +exports.Runner = require('./runner'); +exports.Suite = require('./suite'); +exports.Hook = require('./hook'); +exports.Test = require('./test'); + +/** + * Return image `name` path. + * + * @api private + * @param {string} name + * @return {string} + */ +function image (name) { + return path.join(__dirname, '../images', name + '.png'); +} + +/** + * Set up mocha with `options`. + * + * Options: + * + * - `ui` name "bdd", "tdd", "exports" etc + * - `reporter` reporter instance, defaults to `mocha.reporters.spec` + * - `globals` array of accepted globals + * - `timeout` timeout in milliseconds + * - `retries` number of times to retry failed tests + * - `bail` bail on the first test failure + * - `slow` milliseconds to wait before considering a test slow + * - `ignoreLeaks` ignore global leaks + * - `fullTrace` display the full stack-trace on failing + * - `grep` string or regexp to filter tests with + * + * @param {Object} options + * @api public + */ +function Mocha (options) { + options = options || {}; + this.files = []; + this.options = options; + if (options.grep) { + this.grep(new RegExp(options.grep)); + } + if (options.fgrep) { + this.fgrep(options.fgrep); + } + this.suite = new exports.Suite('', new exports.Context()); + this.ui(options.ui); + this.bail(options.bail); + this.reporter(options.reporter, options.reporterOptions); + if (typeof options.timeout !== 'undefined' && options.timeout !== null) { + this.timeout(options.timeout); + } + if (typeof options.retries !== 'undefined' && options.retries !== null) { + this.retries(options.retries); + } + this.useColors(options.useColors); + if (options.enableTimeouts !== null) { + this.enableTimeouts(options.enableTimeouts); + } + if (options.slow) { + this.slow(options.slow); + } +} + +/** + * Enable or disable bailing on the first failure. + * + * @api public + * @param {boolean} [bail] + */ +Mocha.prototype.bail = function (bail) { + if (!arguments.length) { + bail = true; + } + this.suite.bail(bail); + return this; +}; + +/** + * Add test `file`. + * + * @api public + * @param {string} file + */ +Mocha.prototype.addFile = function (file) { + this.files.push(file); + return this; +}; + +/** + * Set reporter to `reporter`, defaults to "spec". + * + * @param {String|Function} reporter name or constructor + * @param {Object} reporterOptions optional options + * @api public + * @param {string|Function} reporter name or constructor + * @param {Object} reporterOptions optional options + */ +Mocha.prototype.reporter = function (reporter, reporterOptions) { + if (typeof reporter === 'function') { + this._reporter = reporter; + } else { + reporter = reporter || 'spec'; + var _reporter; + // Try to load a built-in reporter. + if (reporters[reporter]) { + _reporter = reporters[reporter]; + } + // Try to load reporters from process.cwd() and node_modules + if (!_reporter) { + try { + _reporter = require(reporter); + } catch (err) { + if (err.message.indexOf('Cannot find module') !== -1) { + // Try to load reporters from a path (absolute or relative) + try { + _reporter = require(path.resolve(process.cwd(), reporter)); + } catch (_err) { + err.message.indexOf('Cannot find module') !== -1 ? console.warn('"' + reporter + '" reporter not found') + : console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack); + } + } else { + console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack); + } + } + } + if (!_reporter && reporter === 'teamcity') { + console.warn('The Teamcity reporter was moved to a package named ' + + 'mocha-teamcity-reporter ' + + '(https://npmjs.org/package/mocha-teamcity-reporter).'); + } + if (!_reporter) { + throw new Error('invalid reporter "' + reporter + '"'); + } + this._reporter = _reporter; + } + this.options.reporterOptions = reporterOptions; + return this; +}; + +/** + * Set test UI `name`, defaults to "bdd". + * + * @api public + * @param {string} bdd + */ +Mocha.prototype.ui = function (name) { + name = name || 'bdd'; + this._ui = exports.interfaces[name]; + if (!this._ui) { + try { + this._ui = require(name); + } catch (err) { + throw new Error('invalid interface "' + name + '"'); + } + } + this._ui = this._ui(this.suite); + + this.suite.on('pre-require', function (context) { + exports.afterEach = context.afterEach || context.teardown; + exports.after = context.after || context.suiteTeardown; + exports.beforeEach = context.beforeEach || context.setup; + exports.before = context.before || context.suiteSetup; + exports.describe = context.describe || context.suite; + exports.it = context.it || context.test; + exports.xit = context.xit || context.test.skip; + exports.setup = context.setup || context.beforeEach; + exports.suiteSetup = context.suiteSetup || context.before; + exports.suiteTeardown = context.suiteTeardown || context.after; + exports.suite = context.suite || context.describe; + exports.teardown = context.teardown || context.afterEach; + exports.test = context.test || context.it; + exports.run = context.run; + }); + + return this; +}; + +/** + * Load registered files. + * + * @api private + */ +Mocha.prototype.loadFiles = function (fn) { + var self = this; + var suite = this.suite; + this.files.forEach(function (file) { + file = path.resolve(file); + suite.emit('pre-require', global, file, self); + suite.emit('require', require(file), file, self); + suite.emit('post-require', global, file, self); + }); + fn && fn(); +}; + +/** + * Enable growl support. + * + * @api private + */ +Mocha.prototype._growl = function (runner, reporter) { + var notify = require('growl'); + + runner.on('end', function () { + var stats = reporter.stats; + if (stats.failures) { + var msg = stats.failures + ' of ' + runner.total + ' tests failed'; + notify(msg, { name: 'mocha', title: 'Failed', image: image('error') }); + } else { + notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', { + name: 'mocha', + title: 'Passed', + image: image('ok') + }); + } + }); +}; + +/** + * Escape string and add it to grep as a regexp. + * + * @api public + * @param str + * @returns {Mocha} + */ +Mocha.prototype.fgrep = function (str) { + return this.grep(new RegExp(escapeRe(str))); +}; + +/** + * Add regexp to grep, if `re` is a string it is escaped. + * + * @param {RegExp|String} re + * @return {Mocha} + * @api public + * @param {RegExp|string} re + * @return {Mocha} + */ +Mocha.prototype.grep = function (re) { + if (utils.isString(re)) { + // extract args if it's regex-like, i.e: [string, pattern, flag] + var arg = re.match(/^\/(.*)\/(g|i|)$|.*/); + this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); + } else { + this.options.grep = re; + } + return this; +}; +/** + * Invert `.grep()` matches. + * + * @return {Mocha} + * @api public + */ +Mocha.prototype.invert = function () { + this.options.invert = true; + return this; +}; + +/** + * Ignore global leaks. + * + * @param {Boolean} ignore + * @return {Mocha} + * @api public + * @param {boolean} ignore + * @return {Mocha} + */ +Mocha.prototype.ignoreLeaks = function (ignore) { + this.options.ignoreLeaks = Boolean(ignore); + return this; +}; + +/** + * Enable global leak checking. + * + * @return {Mocha} + * @api public + */ +Mocha.prototype.checkLeaks = function () { + this.options.ignoreLeaks = false; + return this; +}; + +/** + * Display long stack-trace on failing + * + * @return {Mocha} + * @api public + */ +Mocha.prototype.fullTrace = function () { + this.options.fullStackTrace = true; + return this; +}; + +/** + * Enable growl support. + * + * @return {Mocha} + * @api public + */ +Mocha.prototype.growl = function () { + this.options.growl = true; + return this; +}; + +/** + * Ignore `globals` array or string. + * + * @param {Array|String} globals + * @return {Mocha} + * @api public + * @param {Array|string} globals + * @return {Mocha} + */ +Mocha.prototype.globals = function (globals) { + this.options.globals = (this.options.globals || []).concat(globals); + return this; +}; + +/** + * Emit color output. + * + * @param {Boolean} colors + * @return {Mocha} + * @api public + * @param {boolean} colors + * @return {Mocha} + */ +Mocha.prototype.useColors = function (colors) { + if (colors !== undefined) { + this.options.useColors = colors; + } + return this; +}; + +/** + * Use inline diffs rather than +/-. + * + * @param {Boolean} inlineDiffs + * @return {Mocha} + * @api public + * @param {boolean} inlineDiffs + * @return {Mocha} + */ +Mocha.prototype.useInlineDiffs = function (inlineDiffs) { + this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs; + return this; +}; + +/** + * Set the timeout in milliseconds. + * + * @param {Number} timeout + * @return {Mocha} + * @api public + * @param {number} timeout + * @return {Mocha} + */ +Mocha.prototype.timeout = function (timeout) { + this.suite.timeout(timeout); + return this; +}; + +/** + * Set the number of times to retry failed tests. + * + * @param {Number} retry times + * @return {Mocha} + * @api public + */ +Mocha.prototype.retries = function (n) { + this.suite.retries(n); + return this; +}; + +/** + * Set slowness threshold in milliseconds. + * + * @param {Number} slow + * @return {Mocha} + * @api public + * @param {number} slow + * @return {Mocha} + */ +Mocha.prototype.slow = function (slow) { + this.suite.slow(slow); + return this; +}; + +/** + * Enable timeouts. + * + * @param {Boolean} enabled + * @return {Mocha} + * @api public + * @param {boolean} enabled + * @return {Mocha} + */ +Mocha.prototype.enableTimeouts = function (enabled) { + this.suite.enableTimeouts(arguments.length && enabled !== undefined ? enabled : true); + return this; +}; + +/** + * Makes all tests async (accepting a callback) + * + * @return {Mocha} + * @api public + */ +Mocha.prototype.asyncOnly = function () { + this.options.asyncOnly = true; + return this; +}; + +/** + * Disable syntax highlighting (in browser). + * + * @api public + */ +Mocha.prototype.noHighlighting = function () { + this.options.noHighlighting = true; + return this; +}; + +/** + * Enable uncaught errors to propagate (in browser). + * + * @return {Mocha} + * @api public + */ +Mocha.prototype.allowUncaught = function () { + this.options.allowUncaught = true; + return this; +}; + +/** + * Delay root suite execution. + * @returns {Mocha} + */ +Mocha.prototype.delay = function delay () { + this.options.delay = true; + return this; +}; + +/** + * Tests marked only fail the suite + * @returns {Mocha} + */ +Mocha.prototype.forbidOnly = function () { + this.options.forbidOnly = true; + return this; +}; + +/** + * Pending tests and tests marked skip fail the suite + * @returns {Mocha} + */ +Mocha.prototype.forbidPending = function () { + this.options.forbidPending = true; + return this; +}; + +/** + * Run tests and invoke `fn()` when complete. + * + * @api public + * @param {Function} fn + * @return {Runner} + */ +Mocha.prototype.run = function (fn) { + if (this.files.length) { + this.loadFiles(); + } + var suite = this.suite; + var options = this.options; + options.files = this.files; + var runner = new exports.Runner(suite, options.delay); + var reporter = new this._reporter(runner, options); + runner.ignoreLeaks = options.ignoreLeaks !== false; + runner.fullStackTrace = options.fullStackTrace; + runner.hasOnly = options.hasOnly; + runner.asyncOnly = options.asyncOnly; + runner.allowUncaught = options.allowUncaught; + runner.forbidOnly = options.forbidOnly; + runner.forbidPending = options.forbidPending; + if (options.grep) { + runner.grep(options.grep, options.invert); + } + if (options.globals) { + runner.globals(options.globals); + } + if (options.growl) { + this._growl(runner, reporter); + } + if (options.useColors !== undefined) { + exports.reporters.Base.useColors = options.useColors; + } + exports.reporters.Base.inlineDiffs = options.useInlineDiffs; + + function done (failures) { + if (reporter.done) { + reporter.done(failures, fn); + } else { + fn && fn(failures); + } + } + + return runner.run(done); +}; + +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},"/lib") +},{"./context":6,"./hook":7,"./interfaces":11,"./reporters":21,"./runnable":33,"./runner":34,"./suite":35,"./test":36,"./utils":38,"_process":82,"escape-string-regexp":61,"growl":63,"path":42}],15:[function(require,module,exports){ +'use strict'; + +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @api public + * @param {string|number} val + * @param {Object} options + * @return {string|number} + */ +module.exports = function (val, options) { + options = options || {}; + if (typeof val === 'string') { + return parse(val); + } + // https://github.com/mochajs/mocha/pull/1035 + return options['long'] ? longFormat(val) : shortFormat(val); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @api private + * @param {string} str + * @return {number} + */ +function parse (str) { + var match = (/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i).exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 's': + return n * s; + case 'ms': + return n; + default: + // No default case + } +} + +/** + * Short format for `ms`. + * + * @api private + * @param {number} ms + * @return {string} + */ +function shortFormat (ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @api private + * @param {number} ms + * @return {string} + */ +function longFormat (ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; +} + +/** + * Pluralization helper. + * + * @api private + * @param {number} ms + * @param {number} n + * @param {string} name + */ +function plural (ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; +} + +},{}],16:[function(require,module,exports){ +'use strict'; + +/** + * Expose `Pending`. + */ + +module.exports = Pending; + +/** + * Initialize a new `Pending` error with the given message. + * + * @param {string} message + */ +function Pending (message) { + this.message = message; +} + +},{}],17:[function(require,module,exports){ +(function (process,global){ +'use strict'; + +/** + * Module dependencies. + */ + +var tty = require('tty'); +var diff = require('diff'); +var ms = require('../ms'); +var utils = require('../utils'); +var supportsColor = process.browser ? null : require('supports-color'); + +/** + * Expose `Base`. + */ + +exports = module.exports = Base; + +/** + * Save timer references to avoid Sinon interfering. + * See: https://github.com/mochajs/mocha/issues/237 + */ + +/* eslint-disable no-unused-vars, no-native-reassign */ +var Date = global.Date; +var setTimeout = global.setTimeout; +var setInterval = global.setInterval; +var clearTimeout = global.clearTimeout; +var clearInterval = global.clearInterval; +/* eslint-enable no-unused-vars, no-native-reassign */ + +/** + * Check if both stdio streams are associated with a tty. + */ + +var isatty = tty.isatty(1) && tty.isatty(2); + +/** + * Enable coloring by default, except in the browser interface. + */ + +exports.useColors = !process.browser && (supportsColor || (process.env.MOCHA_COLORS !== undefined)); + +/** + * Inline diffs instead of +/- + */ + +exports.inlineDiffs = false; + +/** + * Default color map. + */ + +exports.colors = { + pass: 90, + fail: 31, + 'bright pass': 92, + 'bright fail': 91, + 'bright yellow': 93, + pending: 36, + suite: 0, + 'error title': 0, + 'error message': 31, + 'error stack': 90, + checkmark: 32, + fast: 90, + medium: 33, + slow: 31, + green: 32, + light: 90, + 'diff gutter': 90, + 'diff added': 32, + 'diff removed': 31 +}; + +/** + * Default symbol map. + */ + +exports.symbols = { + ok: '✓', + err: '✖', + dot: '․', + comma: ',', + bang: '!' +}; + +// With node.js on Windows: use symbols available in terminal default fonts +if (process.platform === 'win32') { + exports.symbols.ok = '\u221A'; + exports.symbols.err = '\u00D7'; + exports.symbols.dot = '.'; +} + +/** + * Color `str` with the given `type`, + * allowing colors to be disabled, + * as well as user-defined color + * schemes. + * + * @param {string} type + * @param {string} str + * @return {string} + * @api private + */ +var color = exports.color = function (type, str) { + if (!exports.useColors) { + return String(str); + } + return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; +}; + +/** + * Expose term window size, with some defaults for when stderr is not a tty. + */ + +exports.window = { + width: 75 +}; + +if (isatty) { + exports.window.width = process.stdout.getWindowSize + ? process.stdout.getWindowSize(1)[0] + : tty.getWindowSize()[1]; +} + +/** + * Expose some basic cursor interactions that are common among reporters. + */ + +exports.cursor = { + hide: function () { + isatty && process.stdout.write('\u001b[?25l'); + }, + + show: function () { + isatty && process.stdout.write('\u001b[?25h'); + }, + + deleteLine: function () { + isatty && process.stdout.write('\u001b[2K'); + }, + + beginningOfLine: function () { + isatty && process.stdout.write('\u001b[0G'); + }, + + CR: function () { + if (isatty) { + exports.cursor.deleteLine(); + exports.cursor.beginningOfLine(); + } else { + process.stdout.write('\r'); + } + } +}; + +/** + * Output the given `failures` as a list. + * + * @param {Array} failures + * @api public + */ + +exports.list = function (failures) { + console.log(); + failures.forEach(function (test, i) { + // format + var fmt = color('error title', ' %s) %s:\n') + + color('error message', ' %s') + + color('error stack', '\n%s\n'); + + // msg + var msg; + var err = test.err; + var message; + if (err.message && typeof err.message.toString === 'function') { + message = err.message + ''; + } else if (typeof err.inspect === 'function') { + message = err.inspect() + ''; + } else { + message = ''; + } + var stack = err.stack || message; + var index = message ? stack.indexOf(message) : -1; + var actual = err.actual; + var expected = err.expected; + var escape = true; + + if (index === -1) { + msg = message; + } else { + index += message.length; + msg = stack.slice(0, index); + // remove msg from stack + stack = stack.slice(index + 1); + } + + // uncaught + if (err.uncaught) { + msg = 'Uncaught ' + msg; + } + // explicitly show diff + if (err.showDiff !== false && sameType(actual, expected) && expected !== undefined) { + escape = false; + if (!(utils.isString(actual) && utils.isString(expected))) { + err.actual = actual = utils.stringify(actual); + err.expected = expected = utils.stringify(expected); + } + + fmt = color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); + var match = message.match(/^([^:]+): expected/); + msg = '\n ' + color('error message', match ? match[1] : msg); + + if (exports.inlineDiffs) { + msg += inlineDiff(err, escape); + } else { + msg += unifiedDiff(err, escape); + } + } + + // indent stack trace + stack = stack.replace(/^/gm, ' '); + + console.log(fmt, (i + 1), test.fullTitle(), msg, stack); + }); +}; + +/** + * Initialize a new `Base` reporter. + * + * All other reporters generally + * inherit from this reporter, providing + * stats such as test duration, number + * of tests passed / failed etc. + * + * @param {Runner} runner + * @api public + */ + +function Base (runner) { + var stats = this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, failures: 0 }; + var failures = this.failures = []; + + if (!runner) { + return; + } + this.runner = runner; + + runner.stats = stats; + + runner.on('start', function () { + stats.start = new Date(); + }); + + runner.on('suite', function (suite) { + stats.suites = stats.suites || 0; + suite.root || stats.suites++; + }); + + runner.on('test end', function () { + stats.tests = stats.tests || 0; + stats.tests++; + }); + + runner.on('pass', function (test) { + stats.passes = stats.passes || 0; + + if (test.duration > test.slow()) { + test.speed = 'slow'; + } else if (test.duration > test.slow() / 2) { + test.speed = 'medium'; + } else { + test.speed = 'fast'; + } + + stats.passes++; + }); + + runner.on('fail', function (test, err) { + stats.failures = stats.failures || 0; + stats.failures++; + test.err = err; + failures.push(test); + }); + + runner.on('end', function () { + stats.end = new Date(); + stats.duration = new Date() - stats.start; + }); + + runner.on('pending', function () { + stats.pending++; + }); +} + +/** + * Output common epilogue used by many of + * the bundled reporters. + * + * @api public + */ +Base.prototype.epilogue = function () { + var stats = this.stats; + var fmt; + + console.log(); + + // passes + fmt = color('bright pass', ' ') + + color('green', ' %d passing') + + color('light', ' (%s)'); + + console.log(fmt, + stats.passes || 0, + ms(stats.duration)); + + // pending + if (stats.pending) { + fmt = color('pending', ' ') + + color('pending', ' %d pending'); + + console.log(fmt, stats.pending); + } + + // failures + if (stats.failures) { + fmt = color('fail', ' %d failing'); + + console.log(fmt, stats.failures); + + Base.list(this.failures); + console.log(); + } + + console.log(); +}; + +/** + * Pad the given `str` to `len`. + * + * @api private + * @param {string} str + * @param {string} len + * @return {string} + */ +function pad (str, len) { + str = String(str); + return Array(len - str.length + 1).join(' ') + str; +} + +/** + * Returns an inline diff between 2 strings with coloured ANSI output + * + * @api private + * @param {Error} err with actual/expected + * @param {boolean} escape + * @return {string} Diff + */ +function inlineDiff (err, escape) { + var msg = errorDiff(err, 'WordsWithSpace', escape); + + // linenos + var lines = msg.split('\n'); + if (lines.length > 4) { + var width = String(lines.length).length; + msg = lines.map(function (str, i) { + return pad(++i, width) + ' |' + ' ' + str; + }).join('\n'); + } + + // legend + msg = '\n' + + color('diff removed', 'actual') + + ' ' + + color('diff added', 'expected') + + '\n\n' + + msg + + '\n'; + + // indent + msg = msg.replace(/^/gm, ' '); + return msg; +} + +/** + * Returns a unified diff between two strings. + * + * @api private + * @param {Error} err with actual/expected + * @param {boolean} escape + * @return {string} The diff. + */ +function unifiedDiff (err, escape) { + var indent = ' '; + function cleanUp (line) { + if (escape) { + line = escapeInvisibles(line); + } + if (line[0] === '+') { + return indent + colorLines('diff added', line); + } + if (line[0] === '-') { + return indent + colorLines('diff removed', line); + } + if (line.match(/@@/)) { + return null; + } + if (line.match(/\\ No newline/)) { + return null; + } + return indent + line; + } + function notBlank (line) { + return typeof line !== 'undefined' && line !== null; + } + var msg = diff.createPatch('string', err.actual, err.expected); + var lines = msg.split('\n').splice(4); + return '\n ' + + colorLines('diff added', '+ expected') + ' ' + + colorLines('diff removed', '- actual') + + '\n\n' + + lines.map(cleanUp).filter(notBlank).join('\n'); +} + +/** + * Return a character diff for `err`. + * + * @api private + * @param {Error} err + * @param {string} type + * @param {boolean} escape + * @return {string} + */ +function errorDiff (err, type, escape) { + var actual = escape ? escapeInvisibles(err.actual) : err.actual; + var expected = escape ? escapeInvisibles(err.expected) : err.expected; + return diff['diff' + type](actual, expected).map(function (str) { + if (str.added) { + return colorLines('diff added', str.value); + } + if (str.removed) { + return colorLines('diff removed', str.value); + } + return str.value; + }).join(''); +} + +/** + * Returns a string with all invisible characters in plain text + * + * @api private + * @param {string} line + * @return {string} + */ +function escapeInvisibles (line) { + return line.replace(/\t/g, '') + .replace(/\r/g, '') + .replace(/\n/g, '\n'); +} + +/** + * Color lines for `str`, using the color `name`. + * + * @api private + * @param {string} name + * @param {string} str + * @return {string} + */ +function colorLines (name, str) { + return str.split('\n').map(function (str) { + return color(name, str); + }).join('\n'); +} + +/** + * Object#toString reference. + */ +var objToString = Object.prototype.toString; + +/** + * Check that a / b have the same type. + * + * @api private + * @param {Object} a + * @param {Object} b + * @return {boolean} + */ +function sameType (a, b) { + return objToString.call(a) === objToString.call(b); +} + +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"../ms":15,"../utils":38,"_process":82,"diff":55,"supports-color":42,"tty":5}],18:[function(require,module,exports){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var utils = require('../utils'); + +/** + * Expose `Doc`. + */ + +exports = module.exports = Doc; + +/** + * Initialize a new `Doc` reporter. + * + * @param {Runner} runner + * @api public + */ +function Doc (runner) { + Base.call(this, runner); + + var indents = 2; + + function indent () { + return Array(indents).join(' '); + } + + runner.on('suite', function (suite) { + if (suite.root) { + return; + } + ++indents; + console.log('%s
    ', indent()); + ++indents; + console.log('%s

    %s

    ', indent(), utils.escape(suite.title)); + console.log('%s
    ', indent()); + }); + + runner.on('suite end', function (suite) { + if (suite.root) { + return; + } + console.log('%s
    ', indent()); + --indents; + console.log('%s
    ', indent()); + --indents; + }); + + runner.on('pass', function (test) { + console.log('%s
    %s
    ', indent(), utils.escape(test.title)); + var code = utils.escape(utils.clean(test.body)); + console.log('%s
    %s
    ', indent(), code); + }); + + runner.on('fail', function (test, err) { + console.log('%s
    %s
    ', indent(), utils.escape(test.title)); + var code = utils.escape(utils.clean(test.body)); + console.log('%s
    %s
    ', indent(), code); + console.log('%s
    %s
    ', indent(), utils.escape(err)); + }); +} + +},{"../utils":38,"./base":17}],19:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; +var color = Base.color; + +/** + * Expose `Dot`. + */ + +exports = module.exports = Dot; + +/** + * Initialize a new `Dot` matrix test reporter. + * + * @api public + * @param {Runner} runner + */ +function Dot (runner) { + Base.call(this, runner); + + var self = this; + var width = Base.window.width * 0.75 | 0; + var n = -1; + + runner.on('start', function () { + process.stdout.write('\n'); + }); + + runner.on('pending', function () { + if (++n % width === 0) { + process.stdout.write('\n '); + } + process.stdout.write(color('pending', Base.symbols.comma)); + }); + + runner.on('pass', function (test) { + if (++n % width === 0) { + process.stdout.write('\n '); + } + if (test.speed === 'slow') { + process.stdout.write(color('bright yellow', Base.symbols.dot)); + } else { + process.stdout.write(color(test.speed, Base.symbols.dot)); + } + }); + + runner.on('fail', function () { + if (++n % width === 0) { + process.stdout.write('\n '); + } + process.stdout.write(color('fail', Base.symbols.bang)); + }); + + runner.on('end', function () { + console.log(); + self.epilogue(); + }); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(Dot, Base); + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],20:[function(require,module,exports){ +(function (global){ +'use strict'; + +/* eslint-env browser */ + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var utils = require('../utils'); +var Progress = require('../browser/progress'); +var escapeRe = require('escape-string-regexp'); +var escape = utils.escape; + +/** + * Save timer references to avoid Sinon interfering (see GH-237). + */ + +/* eslint-disable no-unused-vars, no-native-reassign */ +var Date = global.Date; +var setTimeout = global.setTimeout; +var setInterval = global.setInterval; +var clearTimeout = global.clearTimeout; +var clearInterval = global.clearInterval; +/* eslint-enable no-unused-vars, no-native-reassign */ + +/** + * Expose `HTML`. + */ + +exports = module.exports = HTML; + +/** + * Stats template. + */ + +var statsTemplate = ''; + +var playIcon = '‣'; + +/** + * Initialize a new `HTML` reporter. + * + * @api public + * @param {Runner} runner + */ +function HTML (runner) { + Base.call(this, runner); + + var self = this; + var stats = this.stats; + var stat = fragment(statsTemplate); + var items = stat.getElementsByTagName('li'); + var passes = items[1].getElementsByTagName('em')[0]; + var passesLink = items[1].getElementsByTagName('a')[0]; + var failures = items[2].getElementsByTagName('em')[0]; + var failuresLink = items[2].getElementsByTagName('a')[0]; + var duration = items[3].getElementsByTagName('em')[0]; + var canvas = stat.getElementsByTagName('canvas')[0]; + var report = fragment('
      '); + var stack = [report]; + var progress; + var ctx; + var root = document.getElementById('mocha'); + + if (canvas.getContext) { + var ratio = window.devicePixelRatio || 1; + canvas.style.width = canvas.width; + canvas.style.height = canvas.height; + canvas.width *= ratio; + canvas.height *= ratio; + ctx = canvas.getContext('2d'); + ctx.scale(ratio, ratio); + progress = new Progress(); + } + + if (!root) { + return error('#mocha div missing, add it to your document'); + } + + // pass toggle + on(passesLink, 'click', function (evt) { + evt.preventDefault(); + unhide(); + var name = (/pass/).test(report.className) ? '' : ' pass'; + report.className = report.className.replace(/fail|pass/g, '') + name; + if (report.className.trim()) { + hideSuitesWithout('test pass'); + } + }); + + // failure toggle + on(failuresLink, 'click', function (evt) { + evt.preventDefault(); + unhide(); + var name = (/fail/).test(report.className) ? '' : ' fail'; + report.className = report.className.replace(/fail|pass/g, '') + name; + if (report.className.trim()) { + hideSuitesWithout('test fail'); + } + }); + + root.appendChild(stat); + root.appendChild(report); + + if (progress) { + progress.size(40); + } + + runner.on('suite', function (suite) { + if (suite.root) { + return; + } + + // suite + var url = self.suiteURL(suite); + var el = fragment('
    • %s

    • ', url, escape(suite.title)); + + // container + stack[0].appendChild(el); + stack.unshift(document.createElement('ul')); + el.appendChild(stack[0]); + }); + + runner.on('suite end', function (suite) { + if (suite.root) { + updateStats(); + return; + } + stack.shift(); + }); + + runner.on('pass', function (test) { + var url = self.testURL(test); + var markup = '
    • %e%ems ' + + '' + playIcon + '

    • '; + var el = fragment(markup, test.speed, test.title, test.duration, url); + self.addCodeToggle(el, test.body); + appendToStack(el); + updateStats(); + }); + + runner.on('fail', function (test) { + var el = fragment('
    • %e ' + playIcon + '

    • ', + test.title, self.testURL(test)); + var stackString; // Note: Includes leading newline + var message = test.err.toString(); + + // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we + // check for the result of the stringifying. + if (message === '[object Error]') { + message = test.err.message; + } + + if (test.err.stack) { + var indexOfMessage = test.err.stack.indexOf(test.err.message); + if (indexOfMessage === -1) { + stackString = test.err.stack; + } else { + stackString = test.err.stack.substr(test.err.message.length + indexOfMessage); + } + } else if (test.err.sourceURL && test.err.line !== undefined) { + // Safari doesn't give you a stack. Let's at least provide a source line. + stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')'; + } + + stackString = stackString || ''; + + if (test.err.htmlMessage && stackString) { + el.appendChild(fragment('
      %s\n
      %e
      ', + test.err.htmlMessage, stackString)); + } else if (test.err.htmlMessage) { + el.appendChild(fragment('
      %s
      ', test.err.htmlMessage)); + } else { + el.appendChild(fragment('
      %e%e
      ', message, stackString)); + } + + self.addCodeToggle(el, test.body); + appendToStack(el); + updateStats(); + }); + + runner.on('pending', function (test) { + var el = fragment('
    • %e

    • ', test.title); + appendToStack(el); + updateStats(); + }); + + function appendToStack (el) { + // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack. + if (stack[0]) { + stack[0].appendChild(el); + } + } + + function updateStats () { + // TODO: add to stats + var percent = stats.tests / runner.total * 100 | 0; + if (progress) { + progress.update(percent).draw(ctx); + } + + // update stats + var ms = new Date() - stats.start; + text(passes, stats.passes); + text(failures, stats.failures); + text(duration, (ms / 1000).toFixed(2)); + } +} + +/** + * Makes a URL, preserving querystring ("search") parameters. + * + * @param {string} s + * @return {string} A new URL. + */ +function makeUrl (s) { + var search = window.location.search; + + // Remove previous grep query parameter if present + if (search) { + search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?'); + } + + return window.location.pathname + (search ? search + '&' : '?') + 'grep=' + encodeURIComponent(escapeRe(s)); +} + +/** + * Provide suite URL. + * + * @param {Object} [suite] + */ +HTML.prototype.suiteURL = function (suite) { + return makeUrl(suite.fullTitle()); +}; + +/** + * Provide test URL. + * + * @param {Object} [test] + */ +HTML.prototype.testURL = function (test) { + return makeUrl(test.fullTitle()); +}; + +/** + * Adds code toggle functionality for the provided test's list element. + * + * @param {HTMLLIElement} el + * @param {string} contents + */ +HTML.prototype.addCodeToggle = function (el, contents) { + var h2 = el.getElementsByTagName('h2')[0]; + + on(h2, 'click', function () { + pre.style.display = pre.style.display === 'none' ? 'block' : 'none'; + }); + + var pre = fragment('
      %e
      ', utils.clean(contents)); + el.appendChild(pre); + pre.style.display = 'none'; +}; + +/** + * Display error `msg`. + * + * @param {string} msg + */ +function error (msg) { + document.body.appendChild(fragment('
      %s
      ', msg)); +} + +/** + * Return a DOM fragment from `html`. + * + * @param {string} html + */ +function fragment (html) { + var args = arguments; + var div = document.createElement('div'); + var i = 1; + + div.innerHTML = html.replace(/%([se])/g, function (_, type) { + switch (type) { + case 's': return String(args[i++]); + case 'e': return escape(args[i++]); + // no default + } + }); + + return div.firstChild; +} + +/** + * Check for suites that do not have elements + * with `classname`, and hide them. + * + * @param {text} classname + */ +function hideSuitesWithout (classname) { + var suites = document.getElementsByClassName('suite'); + for (var i = 0; i < suites.length; i++) { + var els = suites[i].getElementsByClassName(classname); + if (!els.length) { + suites[i].className += ' hidden'; + } + } +} + +/** + * Unhide .hidden suites. + */ +function unhide () { + var els = document.getElementsByClassName('suite hidden'); + for (var i = 0; i < els.length; ++i) { + els[i].className = els[i].className.replace('suite hidden', 'suite'); + } +} + +/** + * Set an element's text contents. + * + * @param {HTMLElement} el + * @param {string} contents + */ +function text (el, contents) { + if (el.textContent) { + el.textContent = contents; + } else { + el.innerText = contents; + } +} + +/** + * Listen on `event` with callback `fn`. + */ +function on (el, event, fn) { + if (el.addEventListener) { + el.addEventListener(event, fn, false); + } else { + el.attachEvent('on' + event, fn); + } +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"../browser/progress":4,"../utils":38,"./base":17,"escape-string-regexp":61}],21:[function(require,module,exports){ +'use strict'; + +// Alias exports to a their normalized format Mocha#reporter to prevent a need +// for dynamic (try/catch) requires, which Browserify doesn't handle. +exports.Base = exports.base = require('./base'); +exports.Dot = exports.dot = require('./dot'); +exports.Doc = exports.doc = require('./doc'); +exports.TAP = exports.tap = require('./tap'); +exports.JSON = exports.json = require('./json'); +exports.HTML = exports.html = require('./html'); +exports.List = exports.list = require('./list'); +exports.Min = exports.min = require('./min'); +exports.Spec = exports.spec = require('./spec'); +exports.Nyan = exports.nyan = require('./nyan'); +exports.XUnit = exports.xunit = require('./xunit'); +exports.Markdown = exports.markdown = require('./markdown'); +exports.Progress = exports.progress = require('./progress'); +exports.Landing = exports.landing = require('./landing'); +exports.JSONStream = exports['json-stream'] = require('./json-stream'); + +},{"./base":17,"./doc":18,"./dot":19,"./html":20,"./json":23,"./json-stream":22,"./landing":24,"./list":25,"./markdown":26,"./min":27,"./nyan":28,"./progress":29,"./spec":30,"./tap":31,"./xunit":32}],22:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var JSON = require('json3'); + +/** + * Expose `List`. + */ + +exports = module.exports = List; + +/** + * Initialize a new `List` test reporter. + * + * @api public + * @param {Runner} runner + */ +function List (runner) { + Base.call(this, runner); + + var self = this; + var total = runner.total; + + runner.on('start', function () { + console.log(JSON.stringify(['start', { total: total }])); + }); + + runner.on('pass', function (test) { + console.log(JSON.stringify(['pass', clean(test)])); + }); + + runner.on('fail', function (test, err) { + test = clean(test); + test.err = err.message; + test.stack = err.stack || null; + console.log(JSON.stringify(['fail', test])); + }); + + runner.on('end', function () { + process.stdout.write(JSON.stringify(['end', self.stats])); + }); +} + +/** + * Return a plain-object representation of `test` + * free of cyclic properties etc. + * + * @api private + * @param {Object} test + * @return {Object} + */ +function clean (test) { + return { + title: test.title, + fullTitle: test.fullTitle(), + duration: test.duration, + currentRetry: test.currentRetry() + }; +} + +}).call(this,require('_process')) +},{"./base":17,"_process":82,"json3":69}],23:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); + +/** + * Expose `JSON`. + */ + +exports = module.exports = JSONReporter; + +/** + * Initialize a new `JSON` reporter. + * + * @api public + * @param {Runner} runner + */ +function JSONReporter (runner) { + Base.call(this, runner); + + var self = this; + var tests = []; + var pending = []; + var failures = []; + var passes = []; + + runner.on('test end', function (test) { + tests.push(test); + }); + + runner.on('pass', function (test) { + passes.push(test); + }); + + runner.on('fail', function (test) { + failures.push(test); + }); + + runner.on('pending', function (test) { + pending.push(test); + }); + + runner.on('end', function () { + var obj = { + stats: self.stats, + tests: tests.map(clean), + pending: pending.map(clean), + failures: failures.map(clean), + passes: passes.map(clean) + }; + + runner.testResults = obj; + + process.stdout.write(JSON.stringify(obj, null, 2)); + }); +} + +/** + * Return a plain-object representation of `test` + * free of cyclic properties etc. + * + * @api private + * @param {Object} test + * @return {Object} + */ +function clean (test) { + return { + title: test.title, + fullTitle: test.fullTitle(), + duration: test.duration, + currentRetry: test.currentRetry(), + err: errorJSON(test.err || {}) + }; +} + +/** + * Transform `error` into a JSON object. + * + * @api private + * @param {Error} err + * @return {Object} + */ +function errorJSON (err) { + var res = {}; + Object.getOwnPropertyNames(err).forEach(function (key) { + res[key] = err[key]; + }, err); + return res; +} + +}).call(this,require('_process')) +},{"./base":17,"_process":82}],24:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; +var cursor = Base.cursor; +var color = Base.color; + +/** + * Expose `Landing`. + */ + +exports = module.exports = Landing; + +/** + * Airplane color. + */ + +Base.colors.plane = 0; + +/** + * Airplane crash color. + */ + +Base.colors['plane crash'] = 31; + +/** + * Runway color. + */ + +Base.colors.runway = 90; + +/** + * Initialize a new `Landing` reporter. + * + * @api public + * @param {Runner} runner + */ +function Landing (runner) { + Base.call(this, runner); + + var self = this; + var width = Base.window.width * 0.75 | 0; + var total = runner.total; + var stream = process.stdout; + var plane = color('plane', '✈'); + var crashed = -1; + var n = 0; + + function runway () { + var buf = Array(width).join('-'); + return ' ' + color('runway', buf); + } + + runner.on('start', function () { + stream.write('\n\n\n '); + cursor.hide(); + }); + + runner.on('test end', function (test) { + // check if the plane crashed + var col = crashed === -1 ? width * ++n / total | 0 : crashed; + + // show the crash + if (test.state === 'failed') { + plane = color('plane crash', '✈'); + crashed = col; + } + + // render landing strip + stream.write('\u001b[' + (width + 1) + 'D\u001b[2A'); + stream.write(runway()); + stream.write('\n '); + stream.write(color('runway', Array(col).join('⋅'))); + stream.write(plane); + stream.write(color('runway', Array(width - col).join('⋅') + '\n')); + stream.write(runway()); + stream.write('\u001b[0m'); + }); + + runner.on('end', function () { + cursor.show(); + console.log(); + self.epilogue(); + }); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(Landing, Base); + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],25:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; +var color = Base.color; +var cursor = Base.cursor; + +/** + * Expose `List`. + */ + +exports = module.exports = List; + +/** + * Initialize a new `List` test reporter. + * + * @api public + * @param {Runner} runner + */ +function List (runner) { + Base.call(this, runner); + + var self = this; + var n = 0; + + runner.on('start', function () { + console.log(); + }); + + runner.on('test', function (test) { + process.stdout.write(color('pass', ' ' + test.fullTitle() + ': ')); + }); + + runner.on('pending', function (test) { + var fmt = color('checkmark', ' -') + + color('pending', ' %s'); + console.log(fmt, test.fullTitle()); + }); + + runner.on('pass', function (test) { + var fmt = color('checkmark', ' ' + Base.symbols.ok) + + color('pass', ' %s: ') + + color(test.speed, '%dms'); + cursor.CR(); + console.log(fmt, test.fullTitle(), test.duration); + }); + + runner.on('fail', function (test) { + cursor.CR(); + console.log(color('fail', ' %d) %s'), ++n, test.fullTitle()); + }); + + runner.on('end', self.epilogue.bind(self)); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(List, Base); + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],26:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var utils = require('../utils'); + +/** + * Constants + */ + +var SUITE_PREFIX = '$'; + +/** + * Expose `Markdown`. + */ + +exports = module.exports = Markdown; + +/** + * Initialize a new `Markdown` reporter. + * + * @api public + * @param {Runner} runner + */ +function Markdown (runner) { + Base.call(this, runner); + + var level = 0; + var buf = ''; + + function title (str) { + return Array(level).join('#') + ' ' + str; + } + + function mapTOC (suite, obj) { + var ret = obj; + var key = SUITE_PREFIX + suite.title; + + obj = obj[key] = obj[key] || { suite: suite }; + suite.suites.forEach(function (suite) { + mapTOC(suite, obj); + }); + + return ret; + } + + function stringifyTOC (obj, level) { + ++level; + var buf = ''; + var link; + for (var key in obj) { + if (key === 'suite') { + continue; + } + if (key !== SUITE_PREFIX) { + link = ' - [' + key.substring(1) + ']'; + link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n'; + buf += Array(level).join(' ') + link; + } + buf += stringifyTOC(obj[key], level); + } + return buf; + } + + function generateTOC (suite) { + var obj = mapTOC(suite, {}); + return stringifyTOC(obj, 0); + } + + generateTOC(runner.suite); + + runner.on('suite', function (suite) { + ++level; + var slug = utils.slug(suite.fullTitle()); + buf += '' + '\n'; + buf += title(suite.title) + '\n'; + }); + + runner.on('suite end', function () { + --level; + }); + + runner.on('pass', function (test) { + var code = utils.clean(test.body); + buf += test.title + '.\n'; + buf += '\n```js\n'; + buf += code + '\n'; + buf += '```\n\n'; + }); + + runner.on('end', function () { + process.stdout.write('# TOC\n'); + process.stdout.write(generateTOC(runner.suite)); + process.stdout.write(buf); + }); +} + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],27:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; + +/** + * Expose `Min`. + */ + +exports = module.exports = Min; + +/** + * Initialize a new `Min` minimal test reporter (best used with --watch). + * + * @api public + * @param {Runner} runner + */ +function Min (runner) { + Base.call(this, runner); + + runner.on('start', function () { + // clear screen + process.stdout.write('\u001b[2J'); + // set cursor position + process.stdout.write('\u001b[1;3H'); + }); + + runner.on('end', this.epilogue.bind(this)); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(Min, Base); + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],28:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; + +/** + * Expose `Dot`. + */ + +exports = module.exports = NyanCat; + +/** + * Initialize a new `Dot` matrix test reporter. + * + * @param {Runner} runner + * @api public + */ + +function NyanCat (runner) { + Base.call(this, runner); + + var self = this; + var width = Base.window.width * 0.75 | 0; + var nyanCatWidth = this.nyanCatWidth = 11; + + this.colorIndex = 0; + this.numberOfLines = 4; + this.rainbowColors = self.generateColors(); + this.scoreboardWidth = 5; + this.tick = 0; + this.trajectories = [[], [], [], []]; + this.trajectoryWidthMax = (width - nyanCatWidth); + + runner.on('start', function () { + Base.cursor.hide(); + self.draw(); + }); + + runner.on('pending', function () { + self.draw(); + }); + + runner.on('pass', function () { + self.draw(); + }); + + runner.on('fail', function () { + self.draw(); + }); + + runner.on('end', function () { + Base.cursor.show(); + for (var i = 0; i < self.numberOfLines; i++) { + write('\n'); + } + self.epilogue(); + }); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(NyanCat, Base); + +/** + * Draw the nyan cat + * + * @api private + */ + +NyanCat.prototype.draw = function () { + this.appendRainbow(); + this.drawScoreboard(); + this.drawRainbow(); + this.drawNyanCat(); + this.tick = !this.tick; +}; + +/** + * Draw the "scoreboard" showing the number + * of passes, failures and pending tests. + * + * @api private + */ + +NyanCat.prototype.drawScoreboard = function () { + var stats = this.stats; + + function draw (type, n) { + write(' '); + write(Base.color(type, n)); + write('\n'); + } + + draw('green', stats.passes); + draw('fail', stats.failures); + draw('pending', stats.pending); + write('\n'); + + this.cursorUp(this.numberOfLines); +}; + +/** + * Append the rainbow. + * + * @api private + */ + +NyanCat.prototype.appendRainbow = function () { + var segment = this.tick ? '_' : '-'; + var rainbowified = this.rainbowify(segment); + + for (var index = 0; index < this.numberOfLines; index++) { + var trajectory = this.trajectories[index]; + if (trajectory.length >= this.trajectoryWidthMax) { + trajectory.shift(); + } + trajectory.push(rainbowified); + } +}; + +/** + * Draw the rainbow. + * + * @api private + */ + +NyanCat.prototype.drawRainbow = function () { + var self = this; + + this.trajectories.forEach(function (line) { + write('\u001b[' + self.scoreboardWidth + 'C'); + write(line.join('')); + write('\n'); + }); + + this.cursorUp(this.numberOfLines); +}; + +/** + * Draw the nyan cat + * + * @api private + */ +NyanCat.prototype.drawNyanCat = function () { + var self = this; + var startWidth = this.scoreboardWidth + this.trajectories[0].length; + var dist = '\u001b[' + startWidth + 'C'; + var padding = ''; + + write(dist); + write('_,------,'); + write('\n'); + + write(dist); + padding = self.tick ? ' ' : ' '; + write('_|' + padding + '/\\_/\\ '); + write('\n'); + + write(dist); + padding = self.tick ? '_' : '__'; + var tail = self.tick ? '~' : '^'; + write(tail + '|' + padding + this.face() + ' '); + write('\n'); + + write(dist); + padding = self.tick ? ' ' : ' '; + write(padding + '"" "" '); + write('\n'); + + this.cursorUp(this.numberOfLines); +}; + +/** + * Draw nyan cat face. + * + * @api private + * @return {string} + */ + +NyanCat.prototype.face = function () { + var stats = this.stats; + if (stats.failures) { + return '( x .x)'; + } else if (stats.pending) { + return '( o .o)'; + } else if (stats.passes) { + return '( ^ .^)'; + } + return '( - .-)'; +}; + +/** + * Move cursor up `n`. + * + * @api private + * @param {number} n + */ + +NyanCat.prototype.cursorUp = function (n) { + write('\u001b[' + n + 'A'); +}; + +/** + * Move cursor down `n`. + * + * @api private + * @param {number} n + */ + +NyanCat.prototype.cursorDown = function (n) { + write('\u001b[' + n + 'B'); +}; + +/** + * Generate rainbow colors. + * + * @api private + * @return {Array} + */ +NyanCat.prototype.generateColors = function () { + var colors = []; + + for (var i = 0; i < (6 * 7); i++) { + var pi3 = Math.floor(Math.PI / 3); + var n = (i * (1.0 / 6)); + var r = Math.floor(3 * Math.sin(n) + 3); + var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); + var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); + colors.push(36 * r + 6 * g + b + 16); + } + + return colors; +}; + +/** + * Apply rainbow to the given `str`. + * + * @api private + * @param {string} str + * @return {string} + */ +NyanCat.prototype.rainbowify = function (str) { + if (!Base.useColors) { + return str; + } + var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; + this.colorIndex += 1; + return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m'; +}; + +/** + * Stdout helper. + * + * @param {string} string A message to write to stdout. + */ +function write (string) { + process.stdout.write(string); +} + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],29:[function(require,module,exports){ +(function (process){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; +var color = Base.color; +var cursor = Base.cursor; + +/** + * Expose `Progress`. + */ + +exports = module.exports = Progress; + +/** + * General progress bar color. + */ + +Base.colors.progress = 90; + +/** + * Initialize a new `Progress` bar test reporter. + * + * @api public + * @param {Runner} runner + * @param {Object} options + */ +function Progress (runner, options) { + Base.call(this, runner); + + var self = this; + var width = Base.window.width * 0.50 | 0; + var total = runner.total; + var complete = 0; + var lastN = -1; + + // default chars + options = options || {}; + options.open = options.open || '['; + options.complete = options.complete || '▬'; + options.incomplete = options.incomplete || Base.symbols.dot; + options.close = options.close || ']'; + options.verbose = false; + + // tests started + runner.on('start', function () { + console.log(); + cursor.hide(); + }); + + // tests complete + runner.on('test end', function () { + complete++; + + var percent = complete / total; + var n = width * percent | 0; + var i = width - n; + + if (n === lastN && !options.verbose) { + // Don't re-render the line if it hasn't changed + return; + } + lastN = n; + + cursor.CR(); + process.stdout.write('\u001b[J'); + process.stdout.write(color('progress', ' ' + options.open)); + process.stdout.write(Array(n).join(options.complete)); + process.stdout.write(Array(i).join(options.incomplete)); + process.stdout.write(color('progress', options.close)); + if (options.verbose) { + process.stdout.write(color('progress', ' ' + complete + ' of ' + total)); + } + }); + + // tests are complete, output some stats + // and the failures if any + runner.on('end', function () { + cursor.show(); + console.log(); + self.epilogue(); + }); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(Progress, Base); + +}).call(this,require('_process')) +},{"../utils":38,"./base":17,"_process":82}],30:[function(require,module,exports){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var inherits = require('../utils').inherits; +var color = Base.color; + +/** + * Expose `Spec`. + */ + +exports = module.exports = Spec; + +/** + * Initialize a new `Spec` test reporter. + * + * @api public + * @param {Runner} runner + */ +function Spec (runner) { + Base.call(this, runner); + + var self = this; + var indents = 0; + var n = 0; + + function indent () { + return Array(indents).join(' '); + } + + runner.on('start', function () { + console.log(); + }); + + runner.on('suite', function (suite) { + ++indents; + console.log(color('suite', '%s%s'), indent(), suite.title); + }); + + runner.on('suite end', function () { + --indents; + if (indents === 1) { + console.log(); + } + }); + + runner.on('pending', function (test) { + var fmt = indent() + color('pending', ' - %s'); + console.log(fmt, test.title); + }); + + runner.on('pass', function (test) { + var fmt; + if (test.speed === 'fast') { + fmt = indent() + + color('checkmark', ' ' + Base.symbols.ok) + + color('pass', ' %s'); + console.log(fmt, test.title); + } else { + fmt = indent() + + color('checkmark', ' ' + Base.symbols.ok) + + color('pass', ' %s') + + color(test.speed, ' (%dms)'); + console.log(fmt, test.title, test.duration); + } + }); + + runner.on('fail', function (test) { + console.log(indent() + color('fail', ' %d) %s'), ++n, test.title); + }); + + runner.on('end', self.epilogue.bind(self)); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(Spec, Base); + +},{"../utils":38,"./base":17}],31:[function(require,module,exports){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); + +/** + * Expose `TAP`. + */ + +exports = module.exports = TAP; + +/** + * Initialize a new `TAP` reporter. + * + * @api public + * @param {Runner} runner + */ +function TAP (runner) { + Base.call(this, runner); + + var n = 1; + var passes = 0; + var failures = 0; + + runner.on('start', function () { + var total = runner.grepTotal(runner.suite); + console.log('%d..%d', 1, total); + }); + + runner.on('test end', function () { + ++n; + }); + + runner.on('pending', function (test) { + console.log('ok %d %s # SKIP -', n, title(test)); + }); + + runner.on('pass', function (test) { + passes++; + console.log('ok %d %s', n, title(test)); + }); + + runner.on('fail', function (test, err) { + failures++; + console.log('not ok %d %s', n, title(test)); + if (err.stack) { + console.log(err.stack.replace(/^/gm, ' ')); + } + }); + + runner.on('end', function () { + console.log('# tests ' + (passes + failures)); + console.log('# pass ' + passes); + console.log('# fail ' + failures); + }); +} + +/** + * Return a TAP-safe title of `test` + * + * @api private + * @param {Object} test + * @return {String} + */ +function title (test) { + return test.fullTitle().replace(/#/g, ''); +} + +},{"./base":17}],32:[function(require,module,exports){ +(function (process,global){ +'use strict'; + +/** + * Module dependencies. + */ + +var Base = require('./base'); +var utils = require('../utils'); +var inherits = utils.inherits; +var fs = require('fs'); +var escape = utils.escape; +var mkdirp = require('mkdirp'); +var path = require('path'); + +/** + * Save timer references to avoid Sinon interfering (see GH-237). + */ + +/* eslint-disable no-unused-vars, no-native-reassign */ +var Date = global.Date; +var setTimeout = global.setTimeout; +var setInterval = global.setInterval; +var clearTimeout = global.clearTimeout; +var clearInterval = global.clearInterval; +/* eslint-enable no-unused-vars, no-native-reassign */ + +/** + * Expose `XUnit`. + */ + +exports = module.exports = XUnit; + +/** + * Initialize a new `XUnit` reporter. + * + * @api public + * @param {Runner} runner + */ +function XUnit (runner, options) { + Base.call(this, runner); + + var stats = this.stats; + var tests = []; + var self = this; + + if (options && options.reporterOptions && options.reporterOptions.output) { + if (!fs.createWriteStream) { + throw new Error('file output not supported in browser'); + } + mkdirp.sync(path.dirname(options.reporterOptions.output)); + self.fileStream = fs.createWriteStream(options.reporterOptions.output); + } + + runner.on('pending', function (test) { + tests.push(test); + }); + + runner.on('pass', function (test) { + tests.push(test); + }); + + runner.on('fail', function (test) { + tests.push(test); + }); + + runner.on('end', function () { + self.write(tag('testsuite', { + name: 'Mocha Tests', + tests: stats.tests, + failures: stats.failures, + errors: stats.failures, + skipped: stats.tests - stats.failures - stats.passes, + timestamp: (new Date()).toUTCString(), + time: (stats.duration / 1000) || 0 + }, false)); + + tests.forEach(function (t) { + self.test(t); + }); + + self.write(''); + }); +} + +/** + * Inherit from `Base.prototype`. + */ +inherits(XUnit, Base); + +/** + * Override done to close the stream (if it's a file). + * + * @param failures + * @param {Function} fn + */ +XUnit.prototype.done = function (failures, fn) { + if (this.fileStream) { + this.fileStream.end(function () { + fn(failures); + }); + } else { + fn(failures); + } +}; + +/** + * Write out the given line. + * + * @param {string} line + */ +XUnit.prototype.write = function (line) { + if (this.fileStream) { + this.fileStream.write(line + '\n'); + } else if (typeof process === 'object' && process.stdout) { + process.stdout.write(line + '\n'); + } else { + console.log(line); + } +}; + +/** + * Output tag for the given `test.` + * + * @param {Test} test + */ +XUnit.prototype.test = function (test) { + var attrs = { + classname: test.parent.fullTitle(), + name: test.title, + time: (test.duration / 1000) || 0 + }; + + if (test.state === 'failed') { + var err = test.err; + this.write(tag('testcase', attrs, false, tag('failure', {}, false, escape(err.message) + '\n' + escape(err.stack)))); + } else if (test.isPending()) { + this.write(tag('testcase', attrs, false, tag('skipped', {}, true))); + } else { + this.write(tag('testcase', attrs, true)); + } +}; + +/** + * HTML tag helper. + * + * @param name + * @param attrs + * @param close + * @param content + * @return {string} + */ +function tag (name, attrs, close, content) { + var end = close ? '/>' : '>'; + var pairs = []; + var tag; + + for (var key in attrs) { + if (Object.prototype.hasOwnProperty.call(attrs, key)) { + pairs.push(key + '="' + escape(attrs[key]) + '"'); + } + } + + tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end; + if (content) { + tag += content + ' Math.pow(2, 31)) { + this._enableTimeouts = false; + } + if (typeof ms === 'string') { + ms = milliseconds(ms); + } + debug('timeout %d', ms); + this._timeout = ms; + if (this.timer) { + this.resetTimeout(); + } + return this; +}; + +/** + * Set & get slow `ms`. + * + * @api private + * @param {number|string} ms + * @return {Runnable|number} ms or Runnable instance. + */ +Runnable.prototype.slow = function (ms) { + if (typeof ms === 'undefined') { + return this._slow; + } + if (typeof ms === 'string') { + ms = milliseconds(ms); + } + debug('timeout %d', ms); + this._slow = ms; + return this; +}; + +/** + * Set and get whether timeout is `enabled`. + * + * @api private + * @param {boolean} enabled + * @return {Runnable|boolean} enabled or Runnable instance. + */ +Runnable.prototype.enableTimeouts = function (enabled) { + if (!arguments.length) { + return this._enableTimeouts; + } + debug('enableTimeouts %s', enabled); + this._enableTimeouts = enabled; + return this; +}; + +/** + * Halt and mark as pending. + * + * @api public + */ +Runnable.prototype.skip = function () { + throw new Pending('sync skip'); +}; + +/** + * Check if this runnable or its parent suite is marked as pending. + * + * @api private + */ +Runnable.prototype.isPending = function () { + return this.pending || (this.parent && this.parent.isPending()); +}; + +/** + * Set number of retries. + * + * @api private + */ +Runnable.prototype.retries = function (n) { + if (!arguments.length) { + return this._retries; + } + this._retries = n; +}; + +/** + * Get current retry + * + * @api private + */ +Runnable.prototype.currentRetry = function (n) { + if (!arguments.length) { + return this._currentRetry; + } + this._currentRetry = n; +}; + +/** + * Return the full title generated by recursively concatenating the parent's + * full title. + * + * @api public + * @return {string} + */ +Runnable.prototype.fullTitle = function () { + return this.parent.fullTitle() + ' ' + this.title; +}; + +/** + * Clear the timeout. + * + * @api private + */ +Runnable.prototype.clearTimeout = function () { + clearTimeout(this.timer); +}; + +/** + * Inspect the runnable void of private properties. + * + * @api private + * @return {string} + */ +Runnable.prototype.inspect = function () { + return JSON.stringify(this, function (key, val) { + if (key[0] === '_') { + return; + } + if (key === 'parent') { + return '#'; + } + if (key === 'ctx') { + return '#'; + } + return val; + }, 2); +}; + +/** + * Reset the timeout. + * + * @api private + */ +Runnable.prototype.resetTimeout = function () { + var self = this; + var ms = this.timeout() || 1e9; + + if (!this._enableTimeouts) { + return; + } + this.clearTimeout(); + this.timer = setTimeout(function () { + if (!self._enableTimeouts) { + return; + } + self.callback(new Error('Timeout of ' + ms + + 'ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.')); + self.timedOut = true; + }, ms); +}; + +/** + * Whitelist a list of globals for this test run. + * + * @api private + * @param {string[]} globals + */ +Runnable.prototype.globals = function (globals) { + if (!arguments.length) { + return this._allowedGlobals; + } + this._allowedGlobals = globals; +}; + +/** + * Run the test and invoke `fn(err)`. + * + * @param {Function} fn + * @api private + */ +Runnable.prototype.run = function (fn) { + var self = this; + var start = new Date(); + var ctx = this.ctx; + var finished; + var emitted; + + // Sometimes the ctx exists, but it is not runnable + if (ctx && ctx.runnable) { + ctx.runnable(this); + } + + // called multiple times + function multiple (err) { + if (emitted) { + return; + } + emitted = true; + self.emit('error', err || new Error('done() called multiple times; stacktrace may be inaccurate')); + } + + // finished + function done (err) { + var ms = self.timeout(); + if (self.timedOut) { + return; + } + if (finished) { + return multiple(err || self._trace); + } + + self.clearTimeout(); + self.duration = new Date() - start; + finished = true; + if (!err && self.duration > ms && self._enableTimeouts) { + err = new Error('Timeout of ' + ms + + 'ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.'); + } + fn(err); + } + + // for .resetTimeout() + this.callback = done; + + // explicit async with `done` argument + if (this.async) { + this.resetTimeout(); + + // allows skip() to be used in an explicit async context + this.skip = function asyncSkip () { + done(new Pending('async skip call')); + // halt execution. the Runnable will be marked pending + // by the previous call, and the uncaught handler will ignore + // the failure. + throw new Pending('async skip; aborting execution'); + }; + + if (this.allowUncaught) { + return callFnAsync(this.fn); + } + try { + callFnAsync(this.fn); + } catch (err) { + emitted = true; + done(utils.getError(err)); + } + return; + } + + if (this.allowUncaught) { + if (this.isPending()) { + done(); + } else { + callFn(this.fn); + } + return; + } + + // sync or promise-returning + try { + if (this.isPending()) { + done(); + } else { + callFn(this.fn); + } + } catch (err) { + emitted = true; + done(utils.getError(err)); + } + + function callFn (fn) { + var result = fn.call(ctx); + if (result && typeof result.then === 'function') { + self.resetTimeout(); + result + .then(function () { + done(); + // Return null so libraries like bluebird do not warn about + // subsequently constructed Promises. + return null; + }, + function (reason) { + done(reason || new Error('Promise rejected with no or falsy reason')); + }); + } else { + if (self.asyncOnly) { + return done(new Error('--async-only option in use without declaring `done()` or returning a promise')); + } + + done(); + } + } + + function callFnAsync (fn) { + var result = fn.call(ctx, function (err) { + if (err instanceof Error || toString.call(err) === '[object Error]') { + return done(err); + } + if (err) { + if (Object.prototype.toString.call(err) === '[object Object]') { + return done(new Error('done() invoked with non-Error: ' + + JSON.stringify(err))); + } + return done(new Error('done() invoked with non-Error: ' + err)); + } + if (result && utils.isPromise(result)) { + return done(new Error('Resolution method is overspecified. Specify a callback *or* return a Promise; not both.')); + } + + done(); + }); + } +}; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./ms":15,"./pending":16,"./utils":38,"debug":2,"events":3,"json3":69,"lodash.create":75}],34:[function(require,module,exports){ +(function (process,global){ +'use strict'; + +/** + * Module dependencies. + */ + +var EventEmitter = require('events').EventEmitter; +var Pending = require('./pending'); +var utils = require('./utils'); +var inherits = utils.inherits; +var debug = require('debug')('mocha:runner'); +var Runnable = require('./runnable'); +var filter = utils.filter; +var indexOf = utils.indexOf; +var some = utils.some; +var keys = utils.keys; +var stackFilter = utils.stackTraceFilter(); +var stringify = utils.stringify; +var type = utils.type; +var undefinedError = utils.undefinedError; +var isArray = utils.isArray; + +/** + * Non-enumerable globals. + */ + +var globals = [ + 'setTimeout', + 'clearTimeout', + 'setInterval', + 'clearInterval', + 'XMLHttpRequest', + 'Date', + 'setImmediate', + 'clearImmediate' +]; + +/** + * Expose `Runner`. + */ + +module.exports = Runner; + +/** + * Initialize a `Runner` for the given `suite`. + * + * Events: + * + * - `start` execution started + * - `end` execution complete + * - `suite` (suite) test suite execution started + * - `suite end` (suite) all tests (and sub-suites) have finished + * - `test` (test) test execution started + * - `test end` (test) test completed + * - `hook` (hook) hook execution started + * - `hook end` (hook) hook complete + * - `pass` (test) test passed + * - `fail` (test, err) test failed + * - `pending` (test) test pending + * + * @api public + * @param {Suite} suite Root suite + * @param {boolean} [delay] Whether or not to delay execution of root suite + * until ready. + */ +function Runner (suite, delay) { + var self = this; + this._globals = []; + this._abort = false; + this._delay = delay; + this.suite = suite; + this.started = false; + this.total = suite.total(); + this.failures = 0; + this.on('test end', function (test) { + self.checkGlobals(test); + }); + this.on('hook end', function (hook) { + self.checkGlobals(hook); + }); + this._defaultGrep = /.*/; + this.grep(this._defaultGrep); + this.globals(this.globalProps().concat(extraGlobals())); +} + +/** + * Wrapper for setImmediate, process.nextTick, or browser polyfill. + * + * @param {Function} fn + * @api private + */ +Runner.immediately = global.setImmediate || process.nextTick; + +/** + * Inherit from `EventEmitter.prototype`. + */ +inherits(Runner, EventEmitter); + +/** + * Run tests with full titles matching `re`. Updates runner.total + * with number of tests matched. + * + * @param {RegExp} re + * @param {Boolean} invert + * @return {Runner} for chaining + * @api public + * @param {RegExp} re + * @param {boolean} invert + * @return {Runner} Runner instance. + */ +Runner.prototype.grep = function (re, invert) { + debug('grep %s', re); + this._grep = re; + this._invert = invert; + this.total = this.grepTotal(this.suite); + return this; +}; + +/** + * Returns the number of tests matching the grep search for the + * given suite. + * + * @param {Suite} suite + * @return {Number} + * @api public + * @param {Suite} suite + * @return {number} + */ +Runner.prototype.grepTotal = function (suite) { + var self = this; + var total = 0; + + suite.eachTest(function (test) { + var match = self._grep.test(test.fullTitle()); + if (self._invert) { + match = !match; + } + if (match) { + total++; + } + }); + + return total; +}; + +/** + * Return a list of global properties. + * + * @return {Array} + * @api private + */ +Runner.prototype.globalProps = function () { + var props = keys(global); + + // non-enumerables + for (var i = 0; i < globals.length; ++i) { + if (~indexOf(props, globals[i])) { + continue; + } + props.push(globals[i]); + } + + return props; +}; + +/** + * Allow the given `arr` of globals. + * + * @param {Array} arr + * @return {Runner} for chaining + * @api public + * @param {Array} arr + * @return {Runner} Runner instance. + */ +Runner.prototype.globals = function (arr) { + if (!arguments.length) { + return this._globals; + } + debug('globals %j', arr); + this._globals = this._globals.concat(arr); + return this; +}; + +/** + * Check for global variable leaks. + * + * @api private + */ +Runner.prototype.checkGlobals = function (test) { + if (this.ignoreLeaks) { + return; + } + var ok = this._globals; + + var globals = this.globalProps(); + var leaks; + + if (test) { + ok = ok.concat(test._allowedGlobals || []); + } + + if (this.prevGlobalsLength === globals.length) { + return; + } + this.prevGlobalsLength = globals.length; + + leaks = filterLeaks(ok, globals); + this._globals = this._globals.concat(leaks); + + if (leaks.length > 1) { + this.fail(test, new Error('global leaks detected: ' + leaks.join(', ') + '')); + } else if (leaks.length) { + this.fail(test, new Error('global leak detected: ' + leaks[0])); + } +}; + +/** + * Fail the given `test`. + * + * @api private + * @param {Test} test + * @param {Error} err + */ +Runner.prototype.fail = function (test, err) { + if (test.isPending()) { + return; + } + + ++this.failures; + test.state = 'failed'; + + if (!(err instanceof Error || err && typeof err.message === 'string')) { + err = new Error('the ' + type(err) + ' ' + stringify(err) + ' was thrown, throw an Error :)'); + } + + try { + err.stack = (this.fullStackTrace || !err.stack) + ? err.stack + : stackFilter(err.stack); + } catch (ignored) { + // some environments do not take kindly to monkeying with the stack + } + + this.emit('fail', test, err); +}; + +/** + * Fail the given `hook` with `err`. + * + * Hook failures work in the following pattern: + * - If bail, then exit + * - Failed `before` hook skips all tests in a suite and subsuites, + * but jumps to corresponding `after` hook + * - Failed `before each` hook skips remaining tests in a + * suite and jumps to corresponding `after each` hook, + * which is run only once + * - Failed `after` hook does not alter + * execution order + * - Failed `after each` hook skips remaining tests in a + * suite and subsuites, but executes other `after each` + * hooks + * + * @api private + * @param {Hook} hook + * @param {Error} err + */ +Runner.prototype.failHook = function (hook, err) { + if (hook.ctx && hook.ctx.currentTest) { + hook.originalTitle = hook.originalTitle || hook.title; + hook.title = hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"'; + } + + this.fail(hook, err); + if (this.suite.bail()) { + this.emit('end'); + } +}; + +/** + * Run hook `name` callbacks and then invoke `fn()`. + * + * @api private + * @param {string} name + * @param {Function} fn + */ + +Runner.prototype.hook = function (name, fn) { + var suite = this.suite; + var hooks = suite['_' + name]; + var self = this; + + function next (i) { + var hook = hooks[i]; + if (!hook) { + return fn(); + } + self.currentRunnable = hook; + + hook.ctx.currentTest = self.test; + + self.emit('hook', hook); + + if (!hook.listeners('error').length) { + hook.on('error', function (err) { + self.failHook(hook, err); + }); + } + + hook.run(function (err) { + var testError = hook.error(); + if (testError) { + self.fail(self.test, testError); + } + if (err) { + if (err instanceof Pending) { + if (name === 'beforeEach' || name === 'afterEach') { + self.test.pending = true; + } else { + utils.forEach(suite.tests, function (test) { + test.pending = true; + }); + // a pending hook won't be executed twice. + hook.pending = true; + } + } else { + self.failHook(hook, err); + + // stop executing hooks, notify callee of hook err + return fn(err); + } + } + self.emit('hook end', hook); + delete hook.ctx.currentTest; + next(++i); + }); + } + + Runner.immediately(function () { + next(0); + }); +}; + +/** + * Run hook `name` for the given array of `suites` + * in order, and callback `fn(err, errSuite)`. + * + * @api private + * @param {string} name + * @param {Array} suites + * @param {Function} fn + */ +Runner.prototype.hooks = function (name, suites, fn) { + var self = this; + var orig = this.suite; + + function next (suite) { + self.suite = suite; + + if (!suite) { + self.suite = orig; + return fn(); + } + + self.hook(name, function (err) { + if (err) { + var errSuite = self.suite; + self.suite = orig; + return fn(err, errSuite); + } + + next(suites.pop()); + }); + } + + next(suites.pop()); +}; + +/** + * Run hooks from the top level down. + * + * @param {String} name + * @param {Function} fn + * @api private + */ +Runner.prototype.hookUp = function (name, fn) { + var suites = [this.suite].concat(this.parents()).reverse(); + this.hooks(name, suites, fn); +}; + +/** + * Run hooks from the bottom up. + * + * @param {String} name + * @param {Function} fn + * @api private + */ +Runner.prototype.hookDown = function (name, fn) { + var suites = [this.suite].concat(this.parents()); + this.hooks(name, suites, fn); +}; + +/** + * Return an array of parent Suites from + * closest to furthest. + * + * @return {Array} + * @api private + */ +Runner.prototype.parents = function () { + var suite = this.suite; + var suites = []; + while (suite.parent) { + suite = suite.parent; + suites.push(suite); + } + return suites; +}; + +/** + * Run the current test and callback `fn(err)`. + * + * @param {Function} fn + * @api private + */ +Runner.prototype.runTest = function (fn) { + var self = this; + var test = this.test; + + if (!test) { + return; + } + if (this.asyncOnly) { + test.asyncOnly = true; + } + test.on('error', function (err) { + self.fail(test, err); + }); + if (this.allowUncaught) { + test.allowUncaught = true; + return test.run(fn); + } + try { + test.run(fn); + } catch (err) { + fn(err); + } +}; + +/** + * Run tests in the given `suite` and invoke the callback `fn()` when complete. + * + * @api private + * @param {Suite} suite + * @param {Function} fn + */ +Runner.prototype.runTests = function (suite, fn) { + var self = this; + var tests = suite.tests.slice(); + var test; + + function hookErr (_, errSuite, after) { + // before/after Each hook for errSuite failed: + var orig = self.suite; + + // for failed 'after each' hook start from errSuite parent, + // otherwise start from errSuite itself + self.suite = after ? errSuite.parent : errSuite; + + if (self.suite) { + // call hookUp afterEach + self.hookUp('afterEach', function (err2, errSuite2) { + self.suite = orig; + // some hooks may fail even now + if (err2) { + return hookErr(err2, errSuite2, true); + } + // report error suite + fn(errSuite); + }); + } else { + // there is no need calling other 'after each' hooks + self.suite = orig; + fn(errSuite); + } + } + + function next (err, errSuite) { + // if we bail after first err + if (self.failures && suite._bail) { + return fn(); + } + + if (self._abort) { + return fn(); + } + + if (err) { + return hookErr(err, errSuite, true); + } + + // next test + test = tests.shift(); + + // all done + if (!test) { + return fn(); + } + + // grep + var match = self._grep.test(test.fullTitle()); + if (self._invert) { + match = !match; + } + if (!match) { + // Run immediately only if we have defined a grep. When we + // define a grep — It can cause maximum callstack error if + // the grep is doing a large recursive loop by neglecting + // all tests. The run immediately function also comes with + // a performance cost. So we don't want to run immediately + // if we run the whole test suite, because running the whole + // test suite don't do any immediate recursive loops. Thus, + // allowing a JS runtime to breathe. + if (self._grep !== self._defaultGrep) { + Runner.immediately(next); + } else { + next(); + } + return; + } + + if (test.isPending()) { + self.emit('pending', test); + self.emit('test end', test); + return next(); + } + + // execute test and hook(s) + self.emit('test', self.test = test); + self.hookDown('beforeEach', function (err, errSuite) { + if (test.isPending()) { + self.emit('pending', test); + self.emit('test end', test); + return next(); + } + if (err) { + return hookErr(err, errSuite, false); + } + self.currentRunnable = self.test; + self.runTest(function (err) { + test = self.test; + if (err) { + var retry = test.currentRetry(); + if (err instanceof Pending) { + test.pending = true; + self.emit('pending', test); + } else if (retry < test.retries()) { + var clonedTest = test.clone(); + clonedTest.currentRetry(retry + 1); + tests.unshift(clonedTest); + + // Early return + hook trigger so that it doesn't + // increment the count wrong + return self.hookUp('afterEach', next); + } else { + self.fail(test, err); + } + self.emit('test end', test); + + if (err instanceof Pending) { + return next(); + } + + return self.hookUp('afterEach', next); + } + + test.state = 'passed'; + self.emit('pass', test); + self.emit('test end', test); + self.hookUp('afterEach', next); + }); + }); + } + + this.next = next; + this.hookErr = hookErr; + next(); +}; + +/** + * Run the given `suite` and invoke the callback `fn()` when complete. + * + * @api private + * @param {Suite} suite + * @param {Function} fn + */ +Runner.prototype.runSuite = function (suite, fn) { + var i = 0; + var self = this; + var total = this.grepTotal(suite); + var afterAllHookCalled = false; + + debug('run suite %s', suite.fullTitle()); + + if (!total || (self.failures && suite._bail)) { + return fn(); + } + + this.emit('suite', this.suite = suite); + + function next (errSuite) { + if (errSuite) { + // current suite failed on a hook from errSuite + if (errSuite === suite) { + // if errSuite is current suite + // continue to the next sibling suite + return done(); + } + // errSuite is among the parents of current suite + // stop execution of errSuite and all sub-suites + return done(errSuite); + } + + if (self._abort) { + return done(); + } + + var curr = suite.suites[i++]; + if (!curr) { + return done(); + } + + // Avoid grep neglecting large number of tests causing a + // huge recursive loop and thus a maximum call stack error. + // See comment in `this.runTests()` for more information. + if (self._grep !== self._defaultGrep) { + Runner.immediately(function () { + self.runSuite(curr, next); + }); + } else { + self.runSuite(curr, next); + } + } + + function done (errSuite) { + self.suite = suite; + self.nextSuite = next; + + if (afterAllHookCalled) { + fn(errSuite); + } else { + // mark that the afterAll block has been called once + // and so can be skipped if there is an error in it. + afterAllHookCalled = true; + + // remove reference to test + delete self.test; + + self.hook('afterAll', function () { + self.emit('suite end', suite); + fn(errSuite); + }); + } + } + + this.nextSuite = next; + + this.hook('beforeAll', function (err) { + if (err) { + return done(); + } + self.runTests(suite, next); + }); +}; + +/** + * Handle uncaught exceptions. + * + * @param {Error} err + * @api private + */ +Runner.prototype.uncaught = function (err) { + if (err) { + debug('uncaught exception %s', err === (function () { + return this; + }.call(err)) ? (err.message || err) : err); + } else { + debug('uncaught undefined exception'); + err = undefinedError(); + } + err.uncaught = true; + + var runnable = this.currentRunnable; + + if (!runnable) { + runnable = new Runnable('Uncaught error outside test suite'); + runnable.parent = this.suite; + + if (this.started) { + this.fail(runnable, err); + } else { + // Can't recover from this failure + this.emit('start'); + this.fail(runnable, err); + this.emit('end'); + } + + return; + } + + runnable.clearTimeout(); + + // Ignore errors if complete or pending + if (runnable.state || runnable.isPending()) { + return; + } + this.fail(runnable, err); + + // recover from test + if (runnable.type === 'test') { + this.emit('test end', runnable); + this.hookUp('afterEach', this.next); + return; + } + + // recover from hooks + if (runnable.type === 'hook') { + var errSuite = this.suite; + // if hook failure is in afterEach block + if (runnable.fullTitle().indexOf('after each') > -1) { + return this.hookErr(err, errSuite, true); + } + // if hook failure is in beforeEach block + if (runnable.fullTitle().indexOf('before each') > -1) { + return this.hookErr(err, errSuite, false); + } + // if hook failure is in after or before blocks + return this.nextSuite(errSuite); + } + + // bail + this.emit('end'); +}; + +/** + * Cleans up the references to all the deferred functions + * (before/after/beforeEach/afterEach) and tests of a Suite. + * These must be deleted otherwise a memory leak can happen, + * as those functions may reference variables from closures, + * thus those variables can never be garbage collected as long + * as the deferred functions exist. + * + * @param {Suite} suite + */ +function cleanSuiteReferences (suite) { + function cleanArrReferences (arr) { + for (var i = 0; i < arr.length; i++) { + delete arr[i].fn; + } + } + + if (isArray(suite._beforeAll)) { + cleanArrReferences(suite._beforeAll); + } + + if (isArray(suite._beforeEach)) { + cleanArrReferences(suite._beforeEach); + } + + if (isArray(suite._afterAll)) { + cleanArrReferences(suite._afterAll); + } + + if (isArray(suite._afterEach)) { + cleanArrReferences(suite._afterEach); + } + + for (var i = 0; i < suite.tests.length; i++) { + delete suite.tests[i].fn; + } +} + +/** + * Run the root suite and invoke `fn(failures)` + * on completion. + * + * @param {Function} fn + * @return {Runner} for chaining + * @api public + * @param {Function} fn + * @return {Runner} Runner instance. + */ +Runner.prototype.run = function (fn) { + var self = this; + var rootSuite = this.suite; + + // If there is an `only` filter + if (this.hasOnly) { + filterOnly(rootSuite); + } + + fn = fn || function () {}; + + function uncaught (err) { + self.uncaught(err); + } + + function start () { + self.started = true; + self.emit('start'); + self.runSuite(rootSuite, function () { + debug('finished running'); + self.emit('end'); + }); + } + + debug('start'); + + // references cleanup to avoid memory leaks + this.on('suite end', cleanSuiteReferences); + + // callback + this.on('end', function () { + if (self.forbidOnly && self.hasOnly) { + self.failures += self.stats.tests; + } + if (self.forbidPending) { + self.failures += self.stats.pending; + } + debug('end'); + process.removeListener('uncaughtException', uncaught); + fn(self.failures); + }); + + // uncaught exception + process.on('uncaughtException', uncaught); + + if (this._delay) { + // for reporters, I guess. + // might be nice to debounce some dots while we wait. + this.emit('waiting', rootSuite); + rootSuite.once('run', start); + } else { + start(); + } + + return this; +}; + +/** + * Cleanly abort execution. + * + * @api public + * @return {Runner} Runner instance. + */ +Runner.prototype.abort = function () { + debug('aborting'); + this._abort = true; + + return this; +}; + +/** + * Filter suites based on `isOnly` logic. + * + * @param {Array} suite + * @returns {Boolean} + * @api private + */ +function filterOnly (suite) { + if (suite._onlyTests.length) { + // If the suite contains `only` tests, run those and ignore any nested suites. + suite.tests = suite._onlyTests; + suite.suites = []; + } else { + // Otherwise, do not run any of the tests in this suite. + suite.tests = []; + utils.forEach(suite._onlySuites, function (onlySuite) { + // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite. + // Otherwise, all of the tests on this `only` suite should be run, so don't filter it. + if (hasOnly(onlySuite)) { + filterOnly(onlySuite); + } + }); + // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants. + suite.suites = filter(suite.suites, function (childSuite) { + return indexOf(suite._onlySuites, childSuite) !== -1 || filterOnly(childSuite); + }); + } + // Keep the suite only if there is something to run + return suite.tests.length || suite.suites.length; +} + +/** + * Determines whether a suite has an `only` test or suite as a descendant. + * + * @param {Array} suite + * @returns {Boolean} + * @api private + */ +function hasOnly (suite) { + return suite._onlyTests.length || suite._onlySuites.length || some(suite.suites, hasOnly); +} + +/** + * Filter leaks with the given globals flagged as `ok`. + * + * @api private + * @param {Array} ok + * @param {Array} globals + * @return {Array} + */ +function filterLeaks (ok, globals) { + return filter(globals, function (key) { + // Firefox and Chrome exposes iframes as index inside the window object + if (/^\d+/.test(key)) { + return false; + } + + // in firefox + // if runner runs in an iframe, this iframe's window.getInterface method + // not init at first it is assigned in some seconds + if (global.navigator && (/^getInterface/).test(key)) { + return false; + } + + // an iframe could be approached by window[iframeIndex] + // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak + if (global.navigator && (/^\d+/).test(key)) { + return false; + } + + // Opera and IE expose global variables for HTML element IDs (issue #243) + if (/^mocha-/.test(key)) { + return false; + } + + var matched = filter(ok, function (ok) { + if (~ok.indexOf('*')) { + return key.indexOf(ok.split('*')[0]) === 0; + } + return key === ok; + }); + return !matched.length && (!global.navigator || key !== 'onerror'); + }); +} + +/** + * Array of globals dependent on the environment. + * + * @return {Array} + * @api private + */ +function extraGlobals () { + if (typeof process === 'object' && typeof process.version === 'string') { + var parts = process.version.split('.'); + var nodeVersion = utils.reduce(parts, function (a, v) { + return a << 8 | v; + }); + + // 'errno' was renamed to process._errno in v0.9.11. + + if (nodeVersion < 0x00090B) { + return ['errno']; + } + } + + return []; +} + +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./pending":16,"./runnable":33,"./utils":38,"_process":82,"debug":2,"events":3}],35:[function(require,module,exports){ +'use strict'; + +/** + * Module dependencies. + */ + +var EventEmitter = require('events').EventEmitter; +var Hook = require('./hook'); +var utils = require('./utils'); +var inherits = utils.inherits; +var debug = require('debug')('mocha:suite'); +var milliseconds = require('./ms'); + +/** + * Expose `Suite`. + */ + +exports = module.exports = Suite; + +/** + * Create a new `Suite` with the given `title` and parent `Suite`. When a suite + * with the same title is already present, that suite is returned to provide + * nicer reporter and more flexible meta-testing. + * + * @api public + * @param {Suite} parent + * @param {string} title + * @return {Suite} + */ +exports.create = function (parent, title) { + var suite = new Suite(title, parent.ctx); + suite.parent = parent; + title = suite.fullTitle(); + parent.addSuite(suite); + return suite; +}; + +/** + * Initialize a new `Suite` with the given `title` and `ctx`. + * + * @api private + * @param {string} title + * @param {Context} parentContext + */ +function Suite (title, parentContext) { + if (!utils.isString(title)) { + throw new Error('Suite `title` should be a "string" but "' + typeof title + '" was given instead.'); + } + this.title = title; + function Context () {} + Context.prototype = parentContext; + this.ctx = new Context(); + this.suites = []; + this.tests = []; + this.pending = false; + this._beforeEach = []; + this._beforeAll = []; + this._afterEach = []; + this._afterAll = []; + this.root = !title; + this._timeout = 2000; + this._enableTimeouts = true; + this._slow = 75; + this._bail = false; + this._retries = -1; + this._onlyTests = []; + this._onlySuites = []; + this.delayed = false; +} + +/** + * Inherit from `EventEmitter.prototype`. + */ +inherits(Suite, EventEmitter); + +/** + * Return a clone of this `Suite`. + * + * @api private + * @return {Suite} + */ +Suite.prototype.clone = function () { + var suite = new Suite(this.title); + debug('clone'); + suite.ctx = this.ctx; + suite.timeout(this.timeout()); + suite.retries(this.retries()); + suite.enableTimeouts(this.enableTimeouts()); + suite.slow(this.slow()); + suite.bail(this.bail()); + return suite; +}; + +/** + * Set timeout `ms` or short-hand such as "2s". + * + * @api private + * @param {number|string} ms + * @return {Suite|number} for chaining + */ +Suite.prototype.timeout = function (ms) { + if (!arguments.length) { + return this._timeout; + } + if (ms.toString() === '0') { + this._enableTimeouts = false; + } + if (typeof ms === 'string') { + ms = milliseconds(ms); + } + debug('timeout %d', ms); + this._timeout = parseInt(ms, 10); + return this; +}; + +/** + * Set number of times to retry a failed test. + * + * @api private + * @param {number|string} n + * @return {Suite|number} for chaining + */ +Suite.prototype.retries = function (n) { + if (!arguments.length) { + return this._retries; + } + debug('retries %d', n); + this._retries = parseInt(n, 10) || 0; + return this; +}; + +/** + * Set timeout to `enabled`. + * + * @api private + * @param {boolean} enabled + * @return {Suite|boolean} self or enabled + */ +Suite.prototype.enableTimeouts = function (enabled) { + if (!arguments.length) { + return this._enableTimeouts; + } + debug('enableTimeouts %s', enabled); + this._enableTimeouts = enabled; + return this; +}; + +/** + * Set slow `ms` or short-hand such as "2s". + * + * @api private + * @param {number|string} ms + * @return {Suite|number} for chaining + */ +Suite.prototype.slow = function (ms) { + if (!arguments.length) { + return this._slow; + } + if (typeof ms === 'string') { + ms = milliseconds(ms); + } + debug('slow %d', ms); + this._slow = ms; + return this; +}; + +/** + * Sets whether to bail after first error. + * + * @api private + * @param {boolean} bail + * @return {Suite|number} for chaining + */ +Suite.prototype.bail = function (bail) { + if (!arguments.length) { + return this._bail; + } + debug('bail %s', bail); + this._bail = bail; + return this; +}; + +/** + * Check if this suite or its parent suite is marked as pending. + * + * @api private + */ +Suite.prototype.isPending = function () { + return this.pending || (this.parent && this.parent.isPending()); +}; + +/** + * Run `fn(test[, done])` before running tests. + * + * @api private + * @param {string} title + * @param {Function} fn + * @return {Suite} for chaining + */ +Suite.prototype.beforeAll = function (title, fn) { + if (this.isPending()) { + return this; + } + if (typeof title === 'function') { + fn = title; + title = fn.name; + } + title = '"before all" hook' + (title ? ': ' + title : ''); + + var hook = new Hook(title, fn); + hook.parent = this; + hook.timeout(this.timeout()); + hook.retries(this.retries()); + hook.enableTimeouts(this.enableTimeouts()); + hook.slow(this.slow()); + hook.ctx = this.ctx; + this._beforeAll.push(hook); + this.emit('beforeAll', hook); + return this; +}; + +/** + * Run `fn(test[, done])` after running tests. + * + * @api private + * @param {string} title + * @param {Function} fn + * @return {Suite} for chaining + */ +Suite.prototype.afterAll = function (title, fn) { + if (this.isPending()) { + return this; + } + if (typeof title === 'function') { + fn = title; + title = fn.name; + } + title = '"after all" hook' + (title ? ': ' + title : ''); + + var hook = new Hook(title, fn); + hook.parent = this; + hook.timeout(this.timeout()); + hook.retries(this.retries()); + hook.enableTimeouts(this.enableTimeouts()); + hook.slow(this.slow()); + hook.ctx = this.ctx; + this._afterAll.push(hook); + this.emit('afterAll', hook); + return this; +}; + +/** + * Run `fn(test[, done])` before each test case. + * + * @api private + * @param {string} title + * @param {Function} fn + * @return {Suite} for chaining + */ +Suite.prototype.beforeEach = function (title, fn) { + if (this.isPending()) { + return this; + } + if (typeof title === 'function') { + fn = title; + title = fn.name; + } + title = '"before each" hook' + (title ? ': ' + title : ''); + + var hook = new Hook(title, fn); + hook.parent = this; + hook.timeout(this.timeout()); + hook.retries(this.retries()); + hook.enableTimeouts(this.enableTimeouts()); + hook.slow(this.slow()); + hook.ctx = this.ctx; + this._beforeEach.push(hook); + this.emit('beforeEach', hook); + return this; +}; + +/** + * Run `fn(test[, done])` after each test case. + * + * @api private + * @param {string} title + * @param {Function} fn + * @return {Suite} for chaining + */ +Suite.prototype.afterEach = function (title, fn) { + if (this.isPending()) { + return this; + } + if (typeof title === 'function') { + fn = title; + title = fn.name; + } + title = '"after each" hook' + (title ? ': ' + title : ''); + + var hook = new Hook(title, fn); + hook.parent = this; + hook.timeout(this.timeout()); + hook.retries(this.retries()); + hook.enableTimeouts(this.enableTimeouts()); + hook.slow(this.slow()); + hook.ctx = this.ctx; + this._afterEach.push(hook); + this.emit('afterEach', hook); + return this; +}; + +/** + * Add a test `suite`. + * + * @api private + * @param {Suite} suite + * @return {Suite} for chaining + */ +Suite.prototype.addSuite = function (suite) { + suite.parent = this; + suite.timeout(this.timeout()); + suite.retries(this.retries()); + suite.enableTimeouts(this.enableTimeouts()); + suite.slow(this.slow()); + suite.bail(this.bail()); + this.suites.push(suite); + this.emit('suite', suite); + return this; +}; + +/** + * Add a `test` to this suite. + * + * @api private + * @param {Test} test + * @return {Suite} for chaining + */ +Suite.prototype.addTest = function (test) { + test.parent = this; + test.timeout(this.timeout()); + test.retries(this.retries()); + test.enableTimeouts(this.enableTimeouts()); + test.slow(this.slow()); + test.ctx = this.ctx; + this.tests.push(test); + this.emit('test', test); + return this; +}; + +/** + * Return the full title generated by recursively concatenating the parent's + * full title. + * + * @api public + * @return {string} + */ +Suite.prototype.fullTitle = function () { + if (this.parent) { + var full = this.parent.fullTitle(); + if (full) { + return full + ' ' + this.title; + } + } + return this.title; +}; + +/** + * Return the total number of tests. + * + * @api public + * @return {number} + */ +Suite.prototype.total = function () { + return utils.reduce(this.suites, function (sum, suite) { + return sum + suite.total(); + }, 0) + this.tests.length; +}; + +/** + * Iterates through each suite recursively to find all tests. Applies a + * function in the format `fn(test)`. + * + * @api private + * @param {Function} fn + * @return {Suite} + */ +Suite.prototype.eachTest = function (fn) { + utils.forEach(this.tests, fn); + utils.forEach(this.suites, function (suite) { + suite.eachTest(fn); + }); + return this; +}; + +/** + * This will run the root suite if we happen to be running in delayed mode. + */ +Suite.prototype.run = function run () { + if (this.root) { + this.emit('run'); + } +}; + +},{"./hook":7,"./ms":15,"./utils":38,"debug":2,"events":3}],36:[function(require,module,exports){ +'use strict'; + +/** + * Module dependencies. + */ + +var Runnable = require('./runnable'); +var create = require('lodash.create'); +var isString = require('./utils').isString; + +/** + * Expose `Test`. + */ + +module.exports = Test; + +/** + * Initialize a new `Test` with the given `title` and callback `fn`. + * + * @api private + * @param {String} title + * @param {Function} fn + */ +function Test (title, fn) { + if (!isString(title)) { + throw new Error('Test `title` should be a "string" but "' + typeof title + '" was given instead.'); + } + Runnable.call(this, title, fn); + this.pending = !fn; + this.type = 'test'; +} + +/** + * Inherit from `Runnable.prototype`. + */ +Test.prototype = create(Runnable.prototype, { + constructor: Test +}); + +Test.prototype.clone = function () { + var test = new Test(this.title, this.fn); + test.timeout(this.timeout()); + test.slow(this.slow()); + test.enableTimeouts(this.enableTimeouts()); + test.retries(this.retries()); + test.currentRetry(this.currentRetry()); + test.globals(this.globals()); + test.parent = this.parent; + test.file = this.file; + test.ctx = this.ctx; + return test; +}; + +},{"./runnable":33,"./utils":38,"lodash.create":75}],37:[function(require,module,exports){ +'use strict'; + +/** + * Pad a `number` with a ten's place zero. + * + * @param {number} number + * @return {string} + */ +function pad(number) { + var n = number.toString(); + return n.length === 1 ? '0' + n : n; +} + +/** + * Turn a `date` into an ISO string. + * + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + * + * @param {Date} date + * @return {string} + */ +function toISOString(date) { + return date.getUTCFullYear() + + '-' + pad(date.getUTCMonth() + 1) + + '-' + pad(date.getUTCDate()) + + 'T' + pad(date.getUTCHours()) + + ':' + pad(date.getUTCMinutes()) + + ':' + pad(date.getUTCSeconds()) + + '.' + String((date.getUTCMilliseconds()/1000).toFixed(3)).slice(2, 5) + + 'Z'; +} + +/* + * Exports. + */ + +module.exports = toISOString; + +},{}],38:[function(require,module,exports){ +(function (process,Buffer){ +'use strict'; + +/* eslint-env browser */ + +/** + * Module dependencies. + */ + +var JSON = require('json3'); +var basename = require('path').basename; +var debug = require('debug')('mocha:watch'); +var exists = require('fs').existsSync || require('path').existsSync; +var glob = require('glob'); +var path = require('path'); +var join = path.join; +var readdirSync = require('fs').readdirSync; +var statSync = require('fs').statSync; +var watchFile = require('fs').watchFile; +var lstatSync = require('fs').lstatSync; +var toISOString = require('./to-iso-string'); +var he = require('he'); + +/** + * Ignored directories. + */ + +var ignore = ['node_modules', '.git']; + +exports.inherits = require('util').inherits; + +/** + * Escape special characters in the given string of html. + * + * @api private + * @param {string} html + * @return {string} + */ +exports.escape = function (html) { + return he.encode(String(html), { useNamedReferences: false }); +}; + +/** + * Array#forEach (<=IE8) + * + * @api private + * @param {Array} arr + * @param {Function} fn + * @param {Object} scope + */ +exports.forEach = function (arr, fn, scope) { + for (var i = 0, l = arr.length; i < l; i++) { + fn.call(scope, arr[i], i); + } +}; + +/** + * Test if the given obj is type of string. + * + * @api private + * @param {Object} obj + * @return {boolean} + */ +exports.isString = function (obj) { + return typeof obj === 'string'; +}; + +/** + * Array#map (<=IE8) + * + * @api private + * @param {Array} arr + * @param {Function} fn + * @param {Object} scope + * @return {Array} + */ +exports.map = function (arr, fn, scope) { + var result = []; + for (var i = 0, l = arr.length; i < l; i++) { + result.push(fn.call(scope, arr[i], i, arr)); + } + return result; +}; + +/** + * Array#indexOf (<=IE8) + * + * @api private + * @param {Array} arr + * @param {Object} obj to find index of + * @param {number} start + * @return {number} + */ +var indexOf = exports.indexOf = function (arr, obj, start) { + for (var i = start || 0, l = arr.length; i < l; i++) { + if (arr[i] === obj) { + return i; + } + } + return -1; +}; + +/** + * Array#reduce (<=IE8) + * + * @api private + * @param {Array} arr + * @param {Function} fn + * @param {Object} val Initial value. + * @return {*} + */ +var reduce = exports.reduce = function (arr, fn, val) { + var rval = val; + + for (var i = 0, l = arr.length; i < l; i++) { + rval = fn(rval, arr[i], i, arr); + } + + return rval; +}; + +/** + * Array#filter (<=IE8) + * + * @api private + * @param {Array} arr + * @param {Function} fn + * @return {Array} + */ +exports.filter = function (arr, fn) { + var ret = []; + + for (var i = 0, l = arr.length; i < l; i++) { + var val = arr[i]; + if (fn(val, i, arr)) { + ret.push(val); + } + } + + return ret; +}; + +/** + * Array#some (<=IE8) + * + * @api private + * @param {Array} arr + * @param {Function} fn + * @return {Array} + */ +exports.some = function (arr, fn) { + for (var i = 0, l = arr.length; i < l; i++) { + if (fn(arr[i])) { + return true; + } + } + return false; +}; + +/** + * Object.keys (<=IE8) + * + * @api private + * @param {Object} obj + * @return {Array} keys + */ +exports.keys = typeof Object.keys === 'function' ? Object.keys : function (obj) { + var keys = []; + var has = Object.prototype.hasOwnProperty; // for `window` on <=IE8 + + for (var key in obj) { + if (has.call(obj, key)) { + keys.push(key); + } + } + + return keys; +}; + +/** + * Watch the given `files` for changes + * and invoke `fn(file)` on modification. + * + * @api private + * @param {Array} files + * @param {Function} fn + */ +exports.watch = function (files, fn) { + var options = { interval: 100 }; + files.forEach(function (file) { + debug('file %s', file); + watchFile(file, options, function (curr, prev) { + if (prev.mtime < curr.mtime) { + fn(file); + } + }); + }); +}; + +/** + * Array.isArray (<=IE8) + * + * @api private + * @param {Object} obj + * @return {Boolean} + */ +var isArray = typeof Array.isArray === 'function' ? Array.isArray : function (obj) { + return Object.prototype.toString.call(obj) === '[object Array]'; +}; + +exports.isArray = isArray; + +/** + * Buffer.prototype.toJSON polyfill. + * + * @type {Function} + */ +if (typeof Buffer !== 'undefined' && Buffer.prototype) { + Buffer.prototype.toJSON = Buffer.prototype.toJSON || function () { + return Array.prototype.slice.call(this, 0); + }; +} + +/** + * Ignored files. + * + * @api private + * @param {string} path + * @return {boolean} + */ +function ignored (path) { + return !~ignore.indexOf(path); +} + +/** + * Lookup files in the given `dir`. + * + * @api private + * @param {string} dir + * @param {string[]} [ext=['.js']] + * @param {Array} [ret=[]] + * @return {Array} + */ +exports.files = function (dir, ext, ret) { + ret = ret || []; + ext = ext || ['js']; + + var re = new RegExp('\\.(' + ext.join('|') + ')$'); + + readdirSync(dir) + .filter(ignored) + .forEach(function (path) { + path = join(dir, path); + if (lstatSync(path).isDirectory()) { + exports.files(path, ext, ret); + } else if (path.match(re)) { + ret.push(path); + } + }); + + return ret; +}; + +/** + * Compute a slug from the given `str`. + * + * @api private + * @param {string} str + * @return {string} + */ +exports.slug = function (str) { + return str + .toLowerCase() + .replace(/ +/g, '-') + .replace(/[^-\w]/g, ''); +}; + +/** + * Strip the function definition from `str`, and re-indent for pre whitespace. + * + * @param {string} str + * @return {string} + */ +exports.clean = function (str) { + str = str + .replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, '') + // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content + .replace(/^function(?:\s*|\s+[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\s*\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\s*\}|((?:.|\n)*))$/, '$1$2$3'); + + var spaces = str.match(/^\n?( *)/)[1].length; + var tabs = str.match(/^\n?(\t*)/)[1].length; + var re = new RegExp('^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs || spaces) + '}', 'gm'); + + str = str.replace(re, ''); + + return exports.trim(str); +}; + +/** + * Trim the given `str`. + * + * @api private + * @param {string} str + * @return {string} + */ +exports.trim = function (str) { + return str.replace(/^\s+|\s+$/g, ''); +}; + +/** + * Parse the given `qs`. + * + * @api private + * @param {string} qs + * @return {Object} + */ +exports.parseQuery = function (qs) { + return reduce(qs.replace('?', '').split('&'), function (obj, pair) { + var i = pair.indexOf('='); + var key = pair.slice(0, i); + var val = pair.slice(++i); + + // Due to how the URLSearchParams API treats spaces + obj[key] = decodeURIComponent(val.replace(/\+/g, '%20')); + + return obj; + }, {}); +}; + +/** + * Highlight the given string of `js`. + * + * @api private + * @param {string} js + * @return {string} + */ +function highlight (js) { + return js + .replace(//g, '>') + .replace(/\/\/(.*)/gm, '//$1') + .replace(/('.*?')/gm, '$1') + .replace(/(\d+\.\d+)/gm, '$1') + .replace(/(\d+)/gm, '$1') + .replace(/\bnew[ \t]+(\w+)/gm, 'new $1') + .replace(/\b(function|new|throw|return|var|if|else)\b/gm, '$1'); +} + +/** + * Highlight the contents of tag `name`. + * + * @api private + * @param {string} name + */ +exports.highlightTags = function (name) { + var code = document.getElementById('mocha').getElementsByTagName(name); + for (var i = 0, len = code.length; i < len; ++i) { + code[i].innerHTML = highlight(code[i].innerHTML); + } +}; + +/** + * If a value could have properties, and has none, this function is called, + * which returns a string representation of the empty value. + * + * Functions w/ no properties return `'[Function]'` + * Arrays w/ length === 0 return `'[]'` + * Objects w/ no properties return `'{}'` + * All else: return result of `value.toString()` + * + * @api private + * @param {*} value The value to inspect. + * @param {string} typeHint The type of the value + * @returns {string} + */ +function emptyRepresentation (value, typeHint) { + switch (typeHint) { + case 'function': + return '[Function]'; + case 'object': + return '{}'; + case 'array': + return '[]'; + default: + return value.toString(); + } +} + +/** + * Takes some variable and asks `Object.prototype.toString()` what it thinks it + * is. + * + * @api private + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString + * @param {*} value The value to test. + * @returns {string} Computed type + * @example + * type({}) // 'object' + * type([]) // 'array' + * type(1) // 'number' + * type(false) // 'boolean' + * type(Infinity) // 'number' + * type(null) // 'null' + * type(new Date()) // 'date' + * type(/foo/) // 'regexp' + * type('type') // 'string' + * type(global) // 'global' + * type(new String('foo') // 'object' + */ +var type = exports.type = function type (value) { + if (value === undefined) { + return 'undefined'; + } else if (value === null) { + return 'null'; + } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { + return 'buffer'; + } + return Object.prototype.toString.call(value) + .replace(/^\[.+\s(.+?)]$/, '$1') + .toLowerCase(); +}; + +/** + * Stringify `value`. Different behavior depending on type of value: + * + * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively. + * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes. + * - If `value` is an *empty* object, function, or array, return result of function + * {@link emptyRepresentation}. + * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of + * JSON.stringify(). + * + * @api private + * @see exports.type + * @param {*} value + * @return {string} + */ +exports.stringify = function (value) { + var typeHint = type(value); + + if (!~indexOf(['object', 'array', 'function'], typeHint)) { + if (typeHint === 'buffer') { + var json = value.toJSON(); + // Based on the toJSON result + return jsonStringify(json.data && json.type ? json.data : json, 2) + .replace(/,(\n|$)/g, '$1'); + } + + // IE7/IE8 has a bizarre String constructor; needs to be coerced + // into an array and back to obj. + if (typeHint === 'string' && typeof value === 'object') { + value = reduce(value.split(''), function (acc, char, idx) { + acc[idx] = char; + return acc; + }, {}); + typeHint = 'object'; + } else { + return jsonStringify(value); + } + } + + for (var prop in value) { + if (Object.prototype.hasOwnProperty.call(value, prop)) { + return jsonStringify(exports.canonicalize(value, null, typeHint), 2).replace(/,(\n|$)/g, '$1'); + } + } + + return emptyRepresentation(value, typeHint); +}; + +/** + * like JSON.stringify but more sense. + * + * @api private + * @param {Object} object + * @param {number=} spaces + * @param {number=} depth + * @returns {*} + */ +function jsonStringify (object, spaces, depth) { + if (typeof spaces === 'undefined') { + // primitive types + return _stringify(object); + } + + depth = depth || 1; + var space = spaces * depth; + var str = isArray(object) ? '[' : '{'; + var end = isArray(object) ? ']' : '}'; + var length = typeof object.length === 'number' ? object.length : exports.keys(object).length; + // `.repeat()` polyfill + function repeat (s, n) { + return new Array(n).join(s); + } + + function _stringify (val) { + switch (type(val)) { + case 'null': + case 'undefined': + val = '[' + val + ']'; + break; + case 'array': + case 'object': + val = jsonStringify(val, spaces, depth + 1); + break; + case 'boolean': + case 'regexp': + case 'symbol': + case 'number': + val = val === 0 && (1 / val) === -Infinity // `-0` + ? '-0' + : val.toString(); + break; + case 'date': + var sDate; + if (isNaN(val.getTime())) { // Invalid date + sDate = val.toString(); + } else { + sDate = val.toISOString ? val.toISOString() : toISOString(val); + } + val = '[Date: ' + sDate + ']'; + break; + case 'buffer': + var json = val.toJSON(); + // Based on the toJSON result + json = json.data && json.type ? json.data : json; + val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']'; + break; + default: + val = (val === '[Function]' || val === '[Circular]') + ? val + : JSON.stringify(val); // string + } + return val; + } + + for (var i in object) { + if (!Object.prototype.hasOwnProperty.call(object, i)) { + continue; // not my business + } + --length; + str += '\n ' + repeat(' ', space) + + (isArray(object) ? '' : '"' + i + '": ') + // key + _stringify(object[i]) + // value + (length ? ',' : ''); // comma + } + + return str + + // [], {} + (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end); +} + +/** + * Test if a value is a buffer. + * + * @api private + * @param {*} value The value to test. + * @return {boolean} True if `value` is a buffer, otherwise false + */ +exports.isBuffer = function (value) { + return typeof Buffer !== 'undefined' && Buffer.isBuffer(value); +}; + +/** + * Return a new Thing that has the keys in sorted order. Recursive. + * + * If the Thing... + * - has already been seen, return string `'[Circular]'` + * - is `undefined`, return string `'[undefined]'` + * - is `null`, return value `null` + * - is some other primitive, return the value + * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method + * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again. + * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()` + * + * @api private + * @see {@link exports.stringify} + * @param {*} value Thing to inspect. May or may not have properties. + * @param {Array} [stack=[]] Stack of seen values + * @param {string} [typeHint] Type hint + * @return {(Object|Array|Function|string|undefined)} + */ +exports.canonicalize = function canonicalize (value, stack, typeHint) { + var canonicalizedObj; + /* eslint-disable no-unused-vars */ + var prop; + /* eslint-enable no-unused-vars */ + typeHint = typeHint || type(value); + function withStack (value, fn) { + stack.push(value); + fn(); + stack.pop(); + } + + stack = stack || []; + + if (indexOf(stack, value) !== -1) { + return '[Circular]'; + } + + switch (typeHint) { + case 'undefined': + case 'buffer': + case 'null': + canonicalizedObj = value; + break; + case 'array': + withStack(value, function () { + canonicalizedObj = exports.map(value, function (item) { + return exports.canonicalize(item, stack); + }); + }); + break; + case 'function': + /* eslint-disable guard-for-in */ + for (prop in value) { + canonicalizedObj = {}; + break; + } + /* eslint-enable guard-for-in */ + if (!canonicalizedObj) { + canonicalizedObj = emptyRepresentation(value, typeHint); + break; + } + /* falls through */ + case 'object': + canonicalizedObj = canonicalizedObj || {}; + withStack(value, function () { + exports.forEach(exports.keys(value).sort(), function (key) { + canonicalizedObj[key] = exports.canonicalize(value[key], stack); + }); + }); + break; + case 'date': + case 'number': + case 'regexp': + case 'boolean': + case 'symbol': + canonicalizedObj = value; + break; + default: + canonicalizedObj = value + ''; + } + + return canonicalizedObj; +}; + +/** + * Lookup file names at the given `path`. + * + * @api public + * @param {string} path Base path to start searching from. + * @param {string[]} extensions File extensions to look for. + * @param {boolean} recursive Whether or not to recurse into subdirectories. + * @return {string[]} An array of paths. + */ +exports.lookupFiles = function lookupFiles (path, extensions, recursive) { + var files = []; + var re = new RegExp('\\.(' + extensions.join('|') + ')$'); + + if (!exists(path)) { + if (exists(path + '.js')) { + path += '.js'; + } else { + files = glob.sync(path); + if (!files.length) { + throw new Error("cannot resolve path (or pattern) '" + path + "'"); + } + return files; + } + } + + try { + var stat = statSync(path); + if (stat.isFile()) { + return path; + } + } catch (err) { + // ignore error + return; + } + + readdirSync(path).forEach(function (file) { + file = join(path, file); + try { + var stat = statSync(file); + if (stat.isDirectory()) { + if (recursive) { + files = files.concat(lookupFiles(file, extensions, recursive)); + } + return; + } + } catch (err) { + // ignore error + return; + } + if (!stat.isFile() || !re.test(file) || basename(file)[0] === '.') { + return; + } + files.push(file); + }); + + return files; +}; + +/** + * Generate an undefined error with a message warning the user. + * + * @return {Error} + */ + +exports.undefinedError = function () { + return new Error('Caught undefined error, did you throw without specifying what?'); +}; + +/** + * Generate an undefined error if `err` is not defined. + * + * @param {Error} err + * @return {Error} + */ + +exports.getError = function (err) { + return err || exports.undefinedError(); +}; + +/** + * @summary + * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`) + * @description + * When invoking this function you get a filter function that get the Error.stack as an input, + * and return a prettify output. + * (i.e: strip Mocha and internal node functions from stack trace). + * @returns {Function} + */ +exports.stackTraceFilter = function () { + // TODO: Replace with `process.browser` + var is = typeof document === 'undefined' ? { node: true } : { browser: true }; + var slash = path.sep; + var cwd; + if (is.node) { + cwd = process.cwd() + slash; + } else { + cwd = (typeof location === 'undefined' + ? window.location + : location).href.replace(/\/[^/]*$/, '/'); + slash = '/'; + } + + function isMochaInternal (line) { + return (~line.indexOf('node_modules' + slash + 'mocha' + slash)) || + (~line.indexOf('node_modules' + slash + 'mocha.js')) || + (~line.indexOf('bower_components' + slash + 'mocha.js')) || + (~line.indexOf(slash + 'mocha.js')); + } + + function isNodeInternal (line) { + return (~line.indexOf('(timers.js:')) || + (~line.indexOf('(events.js:')) || + (~line.indexOf('(node.js:')) || + (~line.indexOf('(module.js:')) || + (~line.indexOf('GeneratorFunctionPrototype.next (native)')) || + false; + } + + return function (stack) { + stack = stack.split('\n'); + + stack = reduce(stack, function (list, line) { + if (isMochaInternal(line)) { + return list; + } + + if (is.node && isNodeInternal(line)) { + return list; + } + + // Clean up cwd(absolute) + if (/\(?.+:\d+:\d+\)?$/.test(line)) { + line = line.replace(cwd, ''); + } + + list.push(line); + return list; + }, []); + + return stack.join('\n'); + }; +}; + +/** + * Crude, but effective. + * @api + * @param {*} value + * @returns {boolean} Whether or not `value` is a Promise + */ +exports.isPromise = function isPromise (value) { + return typeof value === 'object' && typeof value.then === 'function'; +}; + +/** + * It's a noop. + * @api + */ +exports.noop = function () {}; + +}).call(this,require('_process'),require("buffer").Buffer) +},{"./to-iso-string":37,"_process":82,"buffer":43,"debug":2,"fs":42,"glob":42,"he":64,"json3":69,"path":42,"util":102}],39:[function(require,module,exports){ +'use strict' + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function placeHoldersCount (b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 +} + +function byteLength (b64) { + // base64 is 4/3 + up to two characters of the original data + return (b64.length * 3 / 4) - placeHoldersCount(b64) +} + +function toByteArray (b64) { + var i, l, tmp, placeHolders, arr + var len = b64.length + placeHolders = placeHoldersCount(b64) + + arr = new Arr((len * 3 / 4) - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0; i < l; i += 4) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + +},{}],40:[function(require,module,exports){ + +},{}],41:[function(require,module,exports){ +(function (process){ +var WritableStream = require('stream').Writable +var inherits = require('util').inherits + +module.exports = BrowserStdout + + +inherits(BrowserStdout, WritableStream) + +function BrowserStdout(opts) { + if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) + + opts = opts || {} + WritableStream.call(this, opts) + this.label = (opts.label !== undefined) ? opts.label : 'stdout' +} + +BrowserStdout.prototype._write = function(chunks, encoding, cb) { + var output = chunks.toString ? chunks.toString() : chunks + if (this.label === false) { + console.log(output) + } else { + console.log(this.label+':', output) + } + process.nextTick(cb) +} + +}).call(this,require('_process')) +},{"_process":82,"stream":96,"util":102}],42:[function(require,module,exports){ +arguments[4][40][0].apply(exports,arguments) +},{"dup":40}],43:[function(require,module,exports){ +(function (global){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + +'use strict' + +var base64 = require('base64-js') +var ieee754 = require('ieee754') +var isArray = require('isarray') + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"base64-js":39,"ieee754":65,"isarray":68}],44:[function(require,module,exports){ +(function (Buffer){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + +}).call(this,{"isBuffer":require("../../is-buffer/index.js")}) +},{"../../is-buffer/index.js":67}],45:[function(require,module,exports){ +/*istanbul ignore start*/"use strict"; + +exports.__esModule = true; +exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP; +// See: http://code.google.com/p/google-diff-match-patch/wiki/API +function convertChangesToDMP(changes) { + var ret = [], + change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (var i = 0; i < changes.length; i++) { + change = changes[i]; + if (change.added) { + operation = 1; + } else if (change.removed) { + operation = -1; + } else { + operation = 0; + } + + ret.push([operation, change.value]); + } + return ret; +} + + +},{}],46:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML; +function convertChangesToXML(changes) { + var ret = []; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + + ret.push(escapeHTML(change.value)); + + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + } + return ret.join(''); +} + +function escapeHTML(s) { + var n = s; + n = n.replace(/&/g, '&'); + n = n.replace(//g, '>'); + n = n.replace(/"/g, '"'); + + return n; +} + + +},{}],47:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.arrayDiff = undefined; +exports. /*istanbul ignore end*/diffArrays = diffArrays; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +arrayDiff.tokenize = arrayDiff.join = function (value) { + return value.slice(); +}; + +function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); +} + + +},{"./base":48}],48:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports['default'] = /*istanbul ignore end*/Diff; +function Diff() {} + +Diff.prototype = { /*istanbul ignore start*/ + /*istanbul ignore end*/diff: function diff(oldString, newString) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + + var callback = options.callback; + if (typeof options === 'function') { + callback = options; + options = {}; + } + this.options = options; + + var self = this; + + function done(value) { + if (callback) { + setTimeout(function () { + callback(undefined, value); + }, 0); + return true; + } else { + return value; + } + } + + // Allow subclasses to massage the input prior to running + oldString = this.castInput(oldString); + newString = this.castInput(newString); + + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + + var newLen = newString.length, + oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ newPos: -1, components: [] }]; + + // Seed editLength = 0, i.e. the content starts with the same values + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + // Identity per the equality and tokenizer + return done([{ value: this.join(newString), count: newString.length }]); + } + + // Main worker method. checks all permutations of a given edit length for acceptance. + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + var addPath = bestPath[diagonalPath - 1], + removePath = bestPath[diagonalPath + 1], + _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + // No one else is going to attempt to use this value, clear it + bestPath[diagonalPath - 1] = undefined; + } + + var canAdd = addPath && addPath.newPos + 1 < newLen, + canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + // If this path is a terminal then prune + bestPath[diagonalPath] = undefined; + continue; + } + + // Select the diagonal that we want to branch from. We select the prior + // path whose position in the new string is the farthest from the origin + // and does not pass the bounds of the diff graph + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self.pushComponent(basePath.components, undefined, true); + } else { + basePath = addPath; // No need to clone, we've pulled it from the list + basePath.newPos++; + self.pushComponent(basePath.components, true, undefined); + } + + _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); + + // If we have hit the end of both strings, then we are done + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); + } else { + // Otherwise track this path as a potential candidate and continue. + bestPath[diagonalPath] = basePath; + } + } + + editLength++; + } + + // Performs the length of edit iteration. Is a bit fugly as this has to support the + // sync and async mode which is never fun. Loops over execEditLength until a value + // is produced. + if (callback) { + (function exec() { + setTimeout(function () { + // This should not happen, but we want to be safe. + /* istanbul ignore next */ + if (editLength > maxEditLength) { + return callback(); + } + + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + if (last && last.added === added && last.removed === removed) { + // We need to clone here as the component clone operation is just + // as shallow array clone + components[components.length - 1] = { count: last.count + 1, added: added, removed: removed }; + } else { + components.push({ count: 1, added: added, removed: removed }); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, + oldLen = oldString.length, + newPos = basePath.newPos, + oldPos = newPos - diagonalPath, + commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + + if (commonCount) { + basePath.components.push({ count: commonCount }); + } + + basePath.newPos = newPos; + return oldPos; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) { + return left === right; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) { + return value; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) { + return value.split(''); + }, + /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) { + return chars.join(''); + } +}; + +function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, + componentLen = components.length, + newPos = 0, + oldPos = 0; + + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function (value, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + + // Common case + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + + // Reverse add and remove so removes are output first to match common convention + // The diffing algorithm is tied to add then remove output and this is the simplest + // route to get the desired output with minimal overhead. + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + + // Special case handle for when one terminal is ignored. For this case we merge the + // terminal into the prior string and drop the change. + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + + return components; +} + +function clonePath(path) { + return { newPos: path.newPos, components: path.components.slice(0) }; +} + + +},{}],49:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.characterDiff = undefined; +exports. /*istanbul ignore end*/diffChars = diffChars; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +function diffChars(oldStr, newStr, callback) { + return characterDiff.diff(oldStr, newStr, callback); +} + + +},{"./base":48}],50:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.cssDiff = undefined; +exports. /*istanbul ignore end*/diffCss = diffCss; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +cssDiff.tokenize = function (value) { + return value.split(/([{}:;,]|\s+)/); +}; + +function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); +} + + +},{"./base":48}],51:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.jsonDiff = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + +exports. /*istanbul ignore end*/diffJson = diffJson; +/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +/*istanbul ignore end*/ +var /*istanbul ignore start*/_line = require('./line') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/ + +var objectPrototypeToString = Object.prototype.toString; + +var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a +// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: +jsonDiff.useLongestToken = true; + +jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff. /*istanbul ignore end*/tokenize; +jsonDiff.castInput = function (value) { + /*istanbul ignore start*/var /*istanbul ignore end*/undefinedReplacement = this.options.undefinedReplacement; + + + return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), function (k, v) { + if (typeof v === 'undefined') { + return undefinedReplacement; + } + + return v; + }, ' '); +}; +jsonDiff.equals = function (left, right) { + return (/*istanbul ignore start*/_base2['default']. /*istanbul ignore end*/prototype.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) + ); +}; + +function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); +} + +// This function handles the presence of circular references by bailing out when encountering an +// object that is already on the "stack" of items being processed. +function canonicalize(obj, stack, replacementStack) { + stack = stack || []; + replacementStack = replacementStack || []; + + var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + + var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + if ('[object Array]' === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + + if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], + key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (key in obj) { + /* istanbul ignore else */ + if (obj.hasOwnProperty(key)) { + sortedKeys.push(key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + key = sortedKeys[i]; + canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} + + +},{"./base":48,"./line":52}],52:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.lineDiff = undefined; +exports. /*istanbul ignore end*/diffLines = diffLines; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +/*istanbul ignore end*/ +var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +lineDiff.tokenize = function (value) { + var retLines = [], + linesAndNewlines = value.split(/(\n|\r\n)/); + + // Ignore the final empty token that occurs if the string ends with a new line + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + + // Merge the content and line separators into single tokens + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + + return retLines; +}; + +function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); +} +function diffTrimmedLines(oldStr, newStr, callback) { + var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); + return lineDiff.diff(oldStr, newStr, options); +} + + +},{"../util/params":60,"./base":48}],53:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.sentenceDiff = undefined; +exports. /*istanbul ignore end*/diffSentences = diffSentences; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +sentenceDiff.tokenize = function (value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; + +function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); +} + + +},{"./base":48}],54:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.wordDiff = undefined; +exports. /*istanbul ignore end*/diffWords = diffWords; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace; + +var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +/*istanbul ignore end*/ +var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/ + +// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode +// +// Ranges and exceptions: +// Latin-1 Supplement, 0080–00FF +// - U+00D7 × Multiplication sign +// - U+00F7 ÷ Division sign +// Latin Extended-A, 0100–017F +// Latin Extended-B, 0180–024F +// IPA Extensions, 0250–02AF +// Spacing Modifier Letters, 02B0–02FF +// - U+02C7 ˇ ˇ Caron +// - U+02D8 ˘ ˘ Breve +// - U+02D9 ˙ ˙ Dot Above +// - U+02DA ˚ ˚ Ring Above +// - U+02DB ˛ ˛ Ogonek +// - U+02DC ˜ ˜ Small Tilde +// - U+02DD ˝ ˝ Double Acute Accent +// Latin Extended Additional, 1E00–1EFF +var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + +var reWhitespace = /\S/; + +var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; +wordDiff.equals = function (left, right) { + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); +}; +wordDiff.tokenize = function (value) { + var tokens = value.split(/(\s+|\b)/); + + // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + for (var i = 0; i < tokens.length - 1; i++) { + // If we have an empty string in the next field and we have only word chars before and after, merge + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + + return tokens; +}; + +function diffWords(oldStr, newStr, callback) { + var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); + return wordDiff.diff(oldStr, newStr, options); +} +function diffWordsWithSpace(oldStr, newStr, callback) { + return wordDiff.diff(oldStr, newStr, callback); +} + + +},{"../util/params":60,"./base":48}],55:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined; +/*istanbul ignore end*/ +var /*istanbul ignore start*/_base = require('./diff/base') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _base2 = _interopRequireDefault(_base); + +/*istanbul ignore end*/ +var /*istanbul ignore start*/_character = require('./diff/character') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_word = require('./diff/word') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_line = require('./diff/line') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_sentence = require('./diff/sentence') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_css = require('./diff/css') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_json = require('./diff/json') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_array = require('./diff/array') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_apply = require('./patch/apply') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_parse = require('./patch/parse') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_create = require('./patch/create') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_dmp = require('./convert/dmp') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_xml = require('./convert/xml') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +exports. /*istanbul ignore end*/Diff = _base2['default']; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson; +/*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays; +/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches; +/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP; +/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML; +/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize; /* See LICENSE file for terms of use */ + +/* + * Text diff implementation. + * + * This library supports the following APIS: + * JsDiff.diffChars: Character by character diff + * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace + * JsDiff.diffLines: Line based diff + * + * JsDiff.diffCss: Diff targeted at CSS content + * + * These methods are based on the implementation proposed in + * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). + * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 + */ + + +},{"./convert/dmp":45,"./convert/xml":46,"./diff/array":47,"./diff/base":48,"./diff/character":49,"./diff/css":50,"./diff/json":51,"./diff/line":52,"./diff/sentence":53,"./diff/word":54,"./patch/apply":56,"./patch/create":57,"./patch/parse":58}],56:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports. /*istanbul ignore end*/applyPatch = applyPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches; + +var /*istanbul ignore start*/_parse = require('./parse') /*istanbul ignore end*/; + +var /*istanbul ignore start*/_distanceIterator = require('../util/distance-iterator') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +var _distanceIterator2 = _interopRequireDefault(_distanceIterator); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/*istanbul ignore end*/function applyPatch(source, uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + if (Array.isArray(uniDiff)) { + if (uniDiff.length > 1) { + throw new Error('applyPatch only works with a single input.'); + } + + uniDiff = uniDiff[0]; + } + + // Apply the diff to the input + var lines = source.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], + hunks = uniDiff.hunks, + compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/line === patchContent + ); + }, + errorCount = 0, + fuzzFactor = options.fuzzFactor || 0, + minLine = 0, + offset = 0, + removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + /** + * Checks if the hunk exactly fits on the provided location + */ + function hunkFits(hunk, toPos) { + for (var j = 0; j < hunk.lines.length; j++) { + var line = hunk.lines[j], + operation = line[0], + content = line.substr(1); + + if (operation === ' ' || operation === '-') { + // Context sanity check + if (!compareLine(toPos + 1, lines[toPos], operation, content)) { + errorCount++; + + if (errorCount > fuzzFactor) { + return false; + } + } + toPos++; + } + } + + return true; + } + + // Search best fit offsets for each hunk based on the previous ones + for (var i = 0; i < hunks.length; i++) { + var hunk = hunks[i], + maxLine = lines.length - hunk.oldLines, + localOffset = 0, + toPos = offset + hunk.oldStart - 1; + + var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine); + + for (; localOffset !== undefined; localOffset = iterator()) { + if (hunkFits(hunk, toPos + localOffset)) { + hunk.offset = offset += localOffset; + break; + } + } + + if (localOffset === undefined) { + return false; + } + + // Set lower text limit to end of the current hunk, so next ones don't try + // to fit over already patched text + minLine = hunk.offset + hunk.oldStart + hunk.oldLines; + } + + // Apply patch hunks + for (var _i = 0; _i < hunks.length; _i++) { + var _hunk = hunks[_i], + _toPos = _hunk.offset + _hunk.newStart - 1; + if (_hunk.newLines == 0) { + _toPos++; + } + + for (var j = 0; j < _hunk.lines.length; j++) { + var line = _hunk.lines[j], + operation = line[0], + content = line.substr(1), + delimiter = _hunk.linedelimiters[j]; + + if (operation === ' ') { + _toPos++; + } else if (operation === '-') { + lines.splice(_toPos, 1); + delimiters.splice(_toPos, 1); + /* istanbul ignore else */ + } else if (operation === '+') { + lines.splice(_toPos, 0, content); + delimiters.splice(_toPos, 0, delimiter); + _toPos++; + } else if (operation === '\\') { + var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; + if (previousOperation === '+') { + removeEOFNL = true; + } else if (previousOperation === '-') { + addEOFNL = true; + } + } + } + } + + // Handle EOFNL insertion/removal + if (removeEOFNL) { + while (!lines[lines.length - 1]) { + lines.pop(); + delimiters.pop(); + } + } else if (addEOFNL) { + lines.push(''); + delimiters.push('\n'); + } + for (var _k = 0; _k < lines.length - 1; _k++) { + lines[_k] = lines[_k] + delimiters[_k]; + } + return lines.join(''); +} + +// Wrapper that supports multiple file patches via callbacks. +function applyPatches(uniDiff, options) { + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + var currentIndex = 0; + function processIndex() { + var index = uniDiff[currentIndex++]; + if (!index) { + return options.complete(); + } + + options.loadFile(index, function (err, data) { + if (err) { + return options.complete(err); + } + + var updatedContent = applyPatch(data, index, options); + options.patched(index, updatedContent, function (err) { + if (err) { + return options.complete(err); + } + + processIndex(); + }); + }); + } + processIndex(); +} + + +},{"../util/distance-iterator":59,"./parse":58}],57:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports. /*istanbul ignore end*/structuredPatch = structuredPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch; +/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch; + +var /*istanbul ignore start*/_line = require('../diff/line') /*istanbul ignore end*/; + +/*istanbul ignore start*/ +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); } } + +/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === 'undefined') { + options.context = 4; + } + + var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options); + diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier + + function contextLines(lines) { + return lines.map(function (entry) { + return ' ' + entry; + }); + } + + var hunks = []; + var oldRangeStart = 0, + newRangeStart = 0, + curRange = [], + oldLine = 1, + newLine = 1; + /*istanbul ignore start*/ + var _loop = function _loop( /*istanbul ignore end*/i) { + var current = diff[i], + lines = current.lines || current.value.replace(/\n$/, '').split('\n'); + current.lines = lines; + + if (current.added || current.removed) { + /*istanbul ignore start*/ + var _curRange; + + /*istanbul ignore end*/ + // If we have previous context, start with that + if (!oldRangeStart) { + var prev = diff[i - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + + // Output our changes + /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) { + return (current.added ? '+' : '-') + entry; + }))); + + // Track the updated file position + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + // Identical context lines. Track line changes + if (oldRangeStart) { + // Close out any changes that have been output (or join overlapping) + if (lines.length <= options.context * 2 && i < diff.length - 2) { + /*istanbul ignore start*/ + var _curRange2; + + /*istanbul ignore end*/ + // Overlapping + /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines))); + } else { + /*istanbul ignore start*/ + var _curRange3; + + /*istanbul ignore end*/ + // end the range and output + var contextSize = Math.min(lines.length, options.context); + /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize)))); + + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i >= diff.length - 2 && lines.length <= options.context) { + // EOF is inside this hunk + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + if (lines.length == 0 && !oldEOFNewline) { + // special case: old has no eol and no trailing context; no-nl can end up before adds + curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); + } else if (!oldEOFNewline || !newEOFNewline) { + curRange.push('\\ No newline at end of file'); + } + } + hunks.push(hunk); + + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + + for (var i = 0; i < diff.length; i++) { + /*istanbul ignore start*/ + _loop( /*istanbul ignore end*/i); + } + + return { + oldFileName: oldFileName, newFileName: newFileName, + oldHeader: oldHeader, newHeader: newHeader, + hunks: hunks + }; +} + +function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); + + var ret = []; + if (oldFileName == newFileName) { + ret.push('Index: ' + oldFileName); + } + ret.push('==================================================================='); + ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); + ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); + + for (var i = 0; i < diff.hunks.length; i++) { + var hunk = diff.hunks[i]; + ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); + ret.push.apply(ret, hunk.lines); + } + + return ret.join('\n') + '\n'; +} + +function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); +} + + +},{"../diff/line":52}],58:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports. /*istanbul ignore end*/parsePatch = parsePatch; +function parsePatch(uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], + list = [], + i = 0; + + function parseIndex() { + var index = {}; + list.push(index); + + // Parse diff metadata + while (i < diffstr.length) { + var line = diffstr[i]; + + // File header found, end parsing diff metadata + if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { + break; + } + + // Diff index + var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); + if (header) { + index.index = header[1]; + } + + i++; + } + + // Parse file headers if they are defined. Unified diff requires them, but + // there's no technical issues to have an isolated hunk without file header + parseFileHeader(index); + parseFileHeader(index); + + // Parse hunks + index.hunks = []; + + while (i < diffstr.length) { + var _line = diffstr[i]; + + if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { + break; + } else if (/^@@/.test(_line)) { + index.hunks.push(parseHunk()); + } else if (_line && options.strict) { + // Ignore unexpected content unless in strict mode + throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); + } else { + i++; + } + } + } + + // Parses the --- and +++ headers, if none are found, no lines + // are consumed. + function parseFileHeader(index) { + var headerPattern = /^(---|\+\+\+)\s+([\S ]*)(?:\t(.*?)\s*)?$/; + var fileHeader = headerPattern.exec(diffstr[i]); + if (fileHeader) { + var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; + index[keyPrefix + 'FileName'] = fileHeader[2]; + index[keyPrefix + 'Header'] = fileHeader[3]; + + i++; + } + } + + // Parses a hunk + // This assumes that we are at the start of a hunk. + function parseHunk() { + var chunkHeaderIndex = i, + chunkHeaderLine = diffstr[i++], + chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); + + var hunk = { + oldStart: +chunkHeader[1], + oldLines: +chunkHeader[2] || 1, + newStart: +chunkHeader[3], + newLines: +chunkHeader[4] || 1, + lines: [], + linedelimiters: [] + }; + + var addCount = 0, + removeCount = 0; + for (; i < diffstr.length; i++) { + // Lines starting with '---' could be mistaken for the "remove line" operation + // But they could be the header for the next file. Therefore prune such cases out. + if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { + break; + } + var operation = diffstr[i][0]; + + if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { + hunk.lines.push(diffstr[i]); + hunk.linedelimiters.push(delimiters[i] || '\n'); + + if (operation === '+') { + addCount++; + } else if (operation === '-') { + removeCount++; + } else if (operation === ' ') { + addCount++; + removeCount++; + } + } else { + break; + } + } + + // Handle the empty block count case + if (!addCount && hunk.newLines === 1) { + hunk.newLines = 0; + } + if (!removeCount && hunk.oldLines === 1) { + hunk.oldLines = 0; + } + + // Perform optional sanity checking + if (options.strict) { + if (addCount !== hunk.newLines) { + throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + if (removeCount !== hunk.oldLines) { + throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + } + + return hunk; + } + + while (i < diffstr.length) { + parseIndex(); + } + + return list; +} + + +},{}],59:[function(require,module,exports){ +/*istanbul ignore start*/"use strict"; + +exports.__esModule = true; + +exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) { + var wantForward = true, + backwardExhausted = false, + forwardExhausted = false, + localOffset = 1; + + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } + + // Check if trying to fit beyond text length, and if not, check it fits + // after offset location (or desired location on first iteration) + if (start + localOffset <= maxLine) { + return localOffset; + } + + forwardExhausted = true; + } + + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } + + // Check if trying to fit before text beginning, and if not, check it fits + // before offset location + if (minLine <= start - localOffset) { + return -localOffset++; + } + + backwardExhausted = true; + return iterator(); + } + + // We tried to fit hunk before text beginning and beyond text lenght, then + // hunk can't fit on the text. Return undefined + }; +}; + + +},{}],60:[function(require,module,exports){ +/*istanbul ignore start*/'use strict'; + +exports.__esModule = true; +exports. /*istanbul ignore end*/generateOptions = generateOptions; +function generateOptions(options, defaults) { + if (typeof options === 'function') { + defaults.callback = options; + } else if (options) { + for (var name in options) { + /* istanbul ignore else */ + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; + } + } + } + return defaults; +} + + +},{}],61:[function(require,module,exports){ +'use strict'; + +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + +module.exports = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + + return str.replace(matchOperatorsRe, '\\$&'); +}; + +},{}],62:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } else { + // At least give some kind of context to the user + var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); + err.context = er; + throw err; + } + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + args = Array.prototype.slice.call(arguments, 1); + handler.apply(this, args); + } + } else if (isObject(handler)) { + args = Array.prototype.slice.call(arguments, 1); + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else if (listeners) { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.prototype.listenerCount = function(type) { + if (this._events) { + var evlistener = this._events[type]; + + if (isFunction(evlistener)) + return 1; + else if (evlistener) + return evlistener.length; + } + return 0; +}; + +EventEmitter.listenerCount = function(emitter, type) { + return emitter.listenerCount(type); +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}],63:[function(require,module,exports){ +(function (process){ +// Growl - Copyright TJ Holowaychuk (MIT Licensed) + +/** + * Module dependencies. + */ + +var exec = require('child_process').exec + , fs = require('fs') + , path = require('path') + , exists = fs.existsSync || path.existsSync + , os = require('os') + , quote = JSON.stringify + , cmd; + +function which(name) { + var paths = process.env.PATH.split(':'); + var loc; + + for (var i = 0, len = paths.length; i < len; ++i) { + loc = path.join(paths[i], name); + if (exists(loc)) return loc; + } +} + +switch(os.type()) { + case 'Darwin': + if (which('terminal-notifier')) { + cmd = { + type: "Darwin-NotificationCenter" + , pkg: "terminal-notifier" + , msg: '-message' + , title: '-title' + , subtitle: '-subtitle' + , icon: '-appIcon' + , sound: '-sound' + , url: '-open' + , priority: { + cmd: '-execute' + , range: [] + } + }; + } else { + cmd = { + type: "Darwin-Growl" + , pkg: "growlnotify" + , msg: '-m' + , sticky: '--sticky' + , priority: { + cmd: '--priority' + , range: [ + -2 + , -1 + , 0 + , 1 + , 2 + , "Very Low" + , "Moderate" + , "Normal" + , "High" + , "Emergency" + ] + } + }; + } + break; + case 'Linux': + if (which('growl')) { + cmd = { + type: "Linux-Growl" + , pkg: "growl" + , msg: '-m' + , title: '-title' + , subtitle: '-subtitle' + , host: { + cmd: '-H' + , hostname: '192.168.33.1' + } + }; + } else { + cmd = { + type: "Linux" + , pkg: "notify-send" + , msg: '' + , sticky: '-t 0' + , icon: '-i' + , priority: { + cmd: '-u' + , range: [ + "low" + , "normal" + , "critical" + ] + } + }; + } + break; + case 'Windows_NT': + cmd = { + type: "Windows" + , pkg: "growlnotify" + , msg: '' + , sticky: '/s:true' + , title: '/t:' + , icon: '/i:' + , url: '/cu:' + , priority: { + cmd: '/p:' + , range: [ + -2 + , -1 + , 0 + , 1 + , 2 + ] + } + }; + break; +} + +/** + * Expose `growl`. + */ + +exports = module.exports = growl; + +/** + * Node-growl version. + */ + +exports.version = '1.4.1' + +/** + * Send growl notification _msg_ with _options_. + * + * Options: + * + * - title Notification title + * - sticky Make the notification stick (defaults to false) + * - priority Specify an int or named key (default is 0) + * - name Application name (defaults to growlnotify) + * - sound Sound efect ( in OSx defined in preferences -> sound -> effects) * works only in OSX > 10.8x + * - image + * - path to an icon sets --iconpath + * - path to an image sets --image + * - capitalized word sets --appIcon + * - filename uses extname as --icon + * - otherwise treated as --icon + * + * Examples: + * + * growl('New email') + * growl('5 new emails', { title: 'Thunderbird' }) + * growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' }) + * growl('Email sent', function(){ + * // ... notification sent + * }) + * + * @param {string} msg + * @param {object} options + * @param {function} fn + * @api public + */ + +function growl(msg, options, fn) { + var image + , args + , options = options || {} + , fn = fn || function(){}; + + if (options.exec) { + cmd = { + type: "Custom" + , pkg: options.exec + , range: [] + }; + } + + // noop + if (!cmd) return fn(new Error('growl not supported on this platform')); + args = [cmd.pkg]; + + // image + if (image = options.image) { + switch(cmd.type) { + case 'Darwin-Growl': + var flag, ext = path.extname(image).substr(1) + flag = flag || ext == 'icns' && 'iconpath' + flag = flag || /^[A-Z]/.test(image) && 'appIcon' + flag = flag || /^png|gif|jpe?g$/.test(ext) && 'image' + flag = flag || ext && (image = ext) && 'icon' + flag = flag || 'icon' + args.push('--' + flag, quote(image)) + break; + case 'Darwin-NotificationCenter': + args.push(cmd.icon, quote(image)); + break; + case 'Linux': + args.push(cmd.icon, quote(image)); + // libnotify defaults to sticky, set a hint for transient notifications + if (!options.sticky) args.push('--hint=int:transient:1'); + break; + case 'Windows': + args.push(cmd.icon + quote(image)); + break; + } + } + + // sticky + if (options.sticky) args.push(cmd.sticky); + + // priority + if (options.priority) { + var priority = options.priority + ''; + var checkindexOf = cmd.priority.range.indexOf(priority); + if (~cmd.priority.range.indexOf(priority)) { + args.push(cmd.priority, options.priority); + } + } + + //sound + if(options.sound && cmd.type === 'Darwin-NotificationCenter'){ + args.push(cmd.sound, options.sound) + } + + // name + if (options.name && cmd.type === "Darwin-Growl") { + args.push('--name', options.name); + } + + switch(cmd.type) { + case 'Darwin-Growl': + args.push(cmd.msg); + args.push(quote(msg).replace(/\\n/g, '\n')); + if (options.title) args.push(quote(options.title)); + break; + case 'Darwin-NotificationCenter': + args.push(cmd.msg); + var stringifiedMsg = quote(msg); + var escapedMsg = stringifiedMsg.replace(/\\n/g, '\n'); + args.push(escapedMsg); + if (options.title) { + args.push(cmd.title); + args.push(quote(options.title)); + } + if (options.subtitle) { + args.push(cmd.subtitle); + args.push(quote(options.subtitle)); + } + if (options.url) { + args.push(cmd.url); + args.push(quote(options.url)); + } + break; + case 'Linux-Growl': + args.push(cmd.msg); + args.push(quote(msg).replace(/\\n/g, '\n')); + if (options.title) args.push(quote(options.title)); + if (cmd.host) { + args.push(cmd.host.cmd, cmd.host.hostname) + } + break; + case 'Linux': + if (options.title) { + args.push(quote(options.title)); + args.push(cmd.msg); + args.push(quote(msg).replace(/\\n/g, '\n')); + } else { + args.push(quote(msg).replace(/\\n/g, '\n')); + } + break; + case 'Windows': + args.push(quote(msg).replace(/\\n/g, '\n')); + if (options.title) args.push(cmd.title + quote(options.title)); + if (options.url) args.push(cmd.url + quote(options.url)); + break; + case 'Custom': + args[0] = (function(origCommand) { + var message = options.title + ? options.title + ': ' + msg + : msg; + var command = origCommand.replace(/(^|[^%])%s/g, '$1' + quote(message)); + if (command === origCommand) args.push(quote(message)); + return command; + })(args[0]); + break; + } + + // execute + exec(args.join(' '), fn); +}; + +}).call(this,require('_process')) +},{"_process":82,"child_process":42,"fs":42,"os":80,"path":42}],64:[function(require,module,exports){ +(function (global){ +/*! https://mths.be/he v1.1.1 by @mathias | MIT license */ +;(function(root) { + + // Detect free variables `exports`. + var freeExports = typeof exports == 'object' && exports; + + // Detect free variable `module`. + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; + + // Detect free variable `global`, from Node.js or Browserified code, + // and use it as `root`. + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /*--------------------------------------------------------------------------*/ + + // All astral symbols. + var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + // All ASCII symbols (not just printable ASCII) except those listed in the + // first column of the overrides table. + // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides + var regexAsciiWhitelist = /[\x01-\x7F]/g; + // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or + // code points listed in the first column of the overrides table on + // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. + var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; + + var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; + var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; + + var regexEscape = /["&'<>`]/g; + var escapeMap = { + '"': '"', + '&': '&', + '\'': ''', + '<': '<', + // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the + // following is not strictly necessary unless it’s part of a tag or an + // unquoted attribute value. We’re only escaping it to support those + // situations, and for XML support. + '>': '>', + // In Internet Explorer ≤ 8, the backtick character can be used + // to break out of (un)quoted attribute values or HTML comments. + // See http://html5sec.org/#102, http://html5sec.org/#108, and + // http://html5sec.org/#133. + '`': '`' + }; + + var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; + var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g; + var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; + var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; + var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; + var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; + + /*--------------------------------------------------------------------------*/ + + var stringFromCharCode = String.fromCharCode; + + var object = {}; + var hasOwnProperty = object.hasOwnProperty; + var has = function(object, propertyName) { + return hasOwnProperty.call(object, propertyName); + }; + + var contains = function(array, value) { + var index = -1; + var length = array.length; + while (++index < length) { + if (array[index] == value) { + return true; + } + } + return false; + }; + + var merge = function(options, defaults) { + if (!options) { + return defaults; + } + var result = {}; + var key; + for (key in defaults) { + // A `hasOwnProperty` check is not needed here, since only recognized + // option names are used anyway. Any others are ignored. + result[key] = has(options, key) ? options[key] : defaults[key]; + } + return result; + }; + + // Modified version of `ucs2encode`; see https://mths.be/punycode. + var codePointToSymbol = function(codePoint, strict) { + var output = ''; + if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { + // See issue #4: + // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is + // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD + // REPLACEMENT CHARACTER.” + if (strict) { + parseError('character reference outside the permissible Unicode range'); + } + return '\uFFFD'; + } + if (has(decodeMapNumeric, codePoint)) { + if (strict) { + parseError('disallowed character reference'); + } + return decodeMapNumeric[codePoint]; + } + if (strict && contains(invalidReferenceCodePoints, codePoint)) { + parseError('disallowed character reference'); + } + if (codePoint > 0xFFFF) { + codePoint -= 0x10000; + output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + output += stringFromCharCode(codePoint); + return output; + }; + + var hexEscape = function(codePoint) { + return '&#x' + codePoint.toString(16).toUpperCase() + ';'; + }; + + var decEscape = function(codePoint) { + return '&#' + codePoint + ';'; + }; + + var parseError = function(message) { + throw Error('Parse error: ' + message); + }; + + /*--------------------------------------------------------------------------*/ + + var encode = function(string, options) { + options = merge(options, encode.options); + var strict = options.strict; + if (strict && regexInvalidRawCodePoint.test(string)) { + parseError('forbidden code point'); + } + var encodeEverything = options.encodeEverything; + var useNamedReferences = options.useNamedReferences; + var allowUnsafeSymbols = options.allowUnsafeSymbols; + var escapeCodePoint = options.decimal ? decEscape : hexEscape; + + var escapeBmpSymbol = function(symbol) { + return escapeCodePoint(symbol.charCodeAt(0)); + }; + + if (encodeEverything) { + // Encode ASCII symbols. + string = string.replace(regexAsciiWhitelist, function(symbol) { + // Use named references if requested & possible. + if (useNamedReferences && has(encodeMap, symbol)) { + return '&' + encodeMap[symbol] + ';'; + } + return escapeBmpSymbol(symbol); + }); + // Shorten a few escapes that represent two symbols, of which at least one + // is within the ASCII range. + if (useNamedReferences) { + string = string + .replace(/>\u20D2/g, '>⃒') + .replace(/<\u20D2/g, '<⃒') + .replace(/fj/g, 'fj'); + } + // Encode non-ASCII symbols. + if (useNamedReferences) { + // Encode non-ASCII symbols that can be replaced with a named reference. + string = string.replace(regexEncodeNonAscii, function(string) { + // Note: there is no need to check `has(encodeMap, string)` here. + return '&' + encodeMap[string] + ';'; + }); + } + // Note: any remaining non-ASCII symbols are handled outside of the `if`. + } else if (useNamedReferences) { + // Apply named character references. + // Encode `<>"'&` using named character references. + if (!allowUnsafeSymbols) { + string = string.replace(regexEscape, function(string) { + return '&' + encodeMap[string] + ';'; // no need to check `has()` here + }); + } + // Shorten escapes that represent two symbols, of which at least one is + // `<>"'&`. + string = string + .replace(/>\u20D2/g, '>⃒') + .replace(/<\u20D2/g, '<⃒'); + // Encode non-ASCII symbols that can be replaced with a named reference. + string = string.replace(regexEncodeNonAscii, function(string) { + // Note: there is no need to check `has(encodeMap, string)` here. + return '&' + encodeMap[string] + ';'; + }); + } else if (!allowUnsafeSymbols) { + // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled + // using named character references. + string = string.replace(regexEscape, escapeBmpSymbol); + } + return string + // Encode astral symbols. + .replace(regexAstralSymbols, function($0) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + var high = $0.charCodeAt(0); + var low = $0.charCodeAt(1); + var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; + return escapeCodePoint(codePoint); + }) + // Encode any remaining BMP symbols that are not printable ASCII symbols + // using a hexadecimal escape. + .replace(regexBmpWhitelist, escapeBmpSymbol); + }; + // Expose default options (so they can be overridden globally). + encode.options = { + 'allowUnsafeSymbols': false, + 'encodeEverything': false, + 'strict': false, + 'useNamedReferences': false, + 'decimal' : false + }; + + var decode = function(html, options) { + options = merge(options, decode.options); + var strict = options.strict; + if (strict && regexInvalidEntity.test(html)) { + parseError('malformed character reference'); + } + return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { + var codePoint; + var semicolon; + var decDigits; + var hexDigits; + var reference; + var next; + if ($1) { + // Decode decimal escapes, e.g. `𝌆`. + decDigits = $1; + semicolon = $2; + if (strict && !semicolon) { + parseError('character reference was not terminated by a semicolon'); + } + codePoint = parseInt(decDigits, 10); + return codePointToSymbol(codePoint, strict); + } + if ($3) { + // Decode hexadecimal escapes, e.g. `𝌆`. + hexDigits = $3; + semicolon = $4; + if (strict && !semicolon) { + parseError('character reference was not terminated by a semicolon'); + } + codePoint = parseInt(hexDigits, 16); + return codePointToSymbol(codePoint, strict); + } + if ($5) { + // Decode named character references with trailing `;`, e.g. `©`. + reference = $5; + if (has(decodeMap, reference)) { + return decodeMap[reference]; + } else { + // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands + if (strict) { + parseError( + 'named character reference was not terminated by a semicolon' + ); + } + return $0; + } + } + // If we’re still here, it’s a legacy reference for sure. No need for an + // extra `if` check. + // Decode named character references without trailing `;`, e.g. `&` + // This is only a parse error if it gets converted to `&`, or if it is + // followed by `=` in an attribute context. + reference = $6; + next = $7; + if (next && options.isAttributeValue) { + if (strict && next == '=') { + parseError('`&` did not start a character reference'); + } + return $0; + } else { + if (strict) { + parseError( + 'named character reference was not terminated by a semicolon' + ); + } + // Note: there is no need to check `has(decodeMapLegacy, reference)`. + return decodeMapLegacy[reference] + (next || ''); + } + }); + }; + // Expose default options (so they can be overridden globally). + decode.options = { + 'isAttributeValue': false, + 'strict': false + }; + + var escape = function(string) { + return string.replace(regexEscape, function($0) { + // Note: there is no need to check `has(escapeMap, $0)` here. + return escapeMap[$0]; + }); + }; + + /*--------------------------------------------------------------------------*/ + + var he = { + 'version': '1.1.1', + 'encode': encode, + 'decode': decode, + 'escape': escape, + 'unescape': decode + }; + + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + false + ) { + define(function() { + return he; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ + freeModule.exports = he; + } else { // in Narwhal or RingoJS v0.7.0- + for (var key in he) { + has(he, key) && (freeExports[key] = he[key]); + } + } + } else { // in Rhino or a web browser + root.he = he; + } + +}(this)); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],65:[function(require,module,exports){ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + +},{}],66:[function(require,module,exports){ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + +},{}],67:[function(require,module,exports){ +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} + +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} + +},{}],68:[function(require,module,exports){ +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + +},{}],69:[function(require,module,exports){ +(function (global){ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = false; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; + + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; + + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; + + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } + + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } + + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } + } + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; + } + + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); + }; + } + + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; + }; + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } + + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } + } + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } + } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; + + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; + + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; + } + result += useCharIndex ? symbols[index] : value.charAt(index); + } + } + return result + '"'; + }; + + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); + } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; + } else { + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); + } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; + } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; + + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); + } + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); + } + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); + }; + } + + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; + + // Internal: Stores the parser state. + var Index, Source; + + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; + + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } + } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); + } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; + + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); + } + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; + } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; + + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; + }; + } + } + + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],70:[function(require,module,exports){ +/** + * lodash 3.2.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseCopy = require('lodash._basecopy'), + keys = require('lodash.keys'); + +/** + * The base implementation of `_.assign` without support for argument juggling, + * multiple sources, and `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return source == null + ? object + : baseCopy(source, keys(source), object); +} + +module.exports = baseAssign; + +},{"lodash._basecopy":71,"lodash.keys":78}],71:[function(require,module,exports){ +/** + * lodash 3.0.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property names to copy. + * @param {Object} [object={}] The object to copy properties to. + * @returns {Object} Returns `object`. + */ +function baseCopy(source, props, object) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + object[key] = source[key]; + } + return object; +} + +module.exports = baseCopy; + +},{}],72:[function(require,module,exports){ +/** + * lodash 3.0.3 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} prototype The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(prototype) { + if (isObject(prototype)) { + object.prototype = prototype; + var result = new object; + object.prototype = undefined; + } + return result || {}; + }; +}()); + +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = baseCreate; + +},{}],73:[function(require,module,exports){ +/** + * lodash 3.9.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** `Object#toString` result references. */ +var funcTag = '[object Function]'; + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); +} + +module.exports = getNative; + +},{}],74:[function(require,module,exports){ +/** + * lodash 3.0.9 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +/** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ +var getLength = baseProperty('length'); + +/** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; +} + +/** + * Checks if the provided arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object)) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = isIterateeCall; + +},{}],75:[function(require,module,exports){ +/** + * lodash 3.1.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseAssign = require('lodash._baseassign'), + baseCreate = require('lodash._basecreate'), + isIterateeCall = require('lodash._isiterateecall'); + +/** + * Creates an object that inherits from the given `prototype` object. If a + * `properties` object is provided its own enumerable properties are assigned + * to the created object. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ +function create(prototype, properties, guard) { + var result = baseCreate(prototype); + if (guard && isIterateeCall(prototype, properties, guard)) { + properties = undefined; + } + return properties ? baseAssign(result, properties) : result; +} + +module.exports = create; + +},{"lodash._baseassign":70,"lodash._basecreate":72,"lodash._isiterateecall":74}],76:[function(require,module,exports){ +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && + (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); +} + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +module.exports = isArguments; + +},{}],77:[function(require,module,exports){ +/** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]', + funcTag = '[object Function]'; + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeIsArray = getNative(Array, 'isArray'); + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ +var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; +}; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); +} + +module.exports = isArray; + +},{}],78:[function(require,module,exports){ +/** + * lodash 3.1.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var getNative = require('lodash._getnative'), + isArguments = require('lodash.isarguments'), + isArray = require('lodash.isarray'); + +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeKeys = getNative(Object, 'keys'); + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +/** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ +var getLength = baseProperty('length'); + +/** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; +} + +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? undefined : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object != 'function' && isArrayLike(object))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; +}; + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + length = (length && isLength(length) && + (isArray(object) || isArguments(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + isProto = typeof Ctor == 'function' && Ctor.prototype === object, + result = Array(length), + skipIndexes = length > 0; + + while (++index < length) { + result[index] = (index + ''); + } + for (var key in object) { + if (!(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = keys; + +},{"lodash._getnative":73,"lodash.isarguments":76,"lodash.isarray":77}],79:[function(require,module,exports){ +(function (process){ +var path = require('path'); +var fs = require('fs'); +var _0777 = parseInt('0777', 8); + +module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; + +function mkdirP (p, opts, f, made) { + if (typeof opts === 'function') { + f = opts; + opts = {}; + } + else if (!opts || typeof opts !== 'object') { + opts = { mode: opts }; + } + + var mode = opts.mode; + var xfs = opts.fs || fs; + + if (mode === undefined) { + mode = _0777 & (~process.umask()); + } + if (!made) made = null; + + var cb = f || function () {}; + p = path.resolve(p); + + xfs.mkdir(p, mode, function (er) { + if (!er) { + made = made || p; + return cb(null, made); + } + switch (er.code) { + case 'ENOENT': + mkdirP(path.dirname(p), opts, function (er, made) { + if (er) cb(er, made); + else mkdirP(p, opts, cb, made); + }); + break; + + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + xfs.stat(p, function (er2, stat) { + // if the stat fails, then that's super weird. + // let the original error be the failure reason. + if (er2 || !stat.isDirectory()) cb(er, made) + else cb(null, made); + }); + break; + } + }); +} + +mkdirP.sync = function sync (p, opts, made) { + if (!opts || typeof opts !== 'object') { + opts = { mode: opts }; + } + + var mode = opts.mode; + var xfs = opts.fs || fs; + + if (mode === undefined) { + mode = _0777 & (~process.umask()); + } + if (!made) made = null; + + p = path.resolve(p); + + try { + xfs.mkdirSync(p, mode); + made = made || p; + } + catch (err0) { + switch (err0.code) { + case 'ENOENT' : + made = sync(path.dirname(p), opts, made); + sync(p, opts, made); + break; + + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + var stat; + try { + stat = xfs.statSync(p); + } + catch (err1) { + throw err0; + } + if (!stat.isDirectory()) throw err0; + break; + } + } + + return made; +}; + +}).call(this,require('_process')) +},{"_process":82,"fs":42,"path":42}],80:[function(require,module,exports){ +exports.endianness = function () { return 'LE' }; + +exports.hostname = function () { + if (typeof location !== 'undefined') { + return location.hostname + } + else return ''; +}; + +exports.loadavg = function () { return [] }; + +exports.uptime = function () { return 0 }; + +exports.freemem = function () { + return Number.MAX_VALUE; +}; + +exports.totalmem = function () { + return Number.MAX_VALUE; +}; + +exports.cpus = function () { return [] }; + +exports.type = function () { return 'Browser' }; + +exports.release = function () { + if (typeof navigator !== 'undefined') { + return navigator.appVersion; + } + return ''; +}; + +exports.networkInterfaces += exports.getNetworkInterfaces += function () { return {} }; + +exports.arch = function () { return 'javascript' }; + +exports.platform = function () { return 'browser' }; + +exports.tmpdir = exports.tmpDir = function () { + return '/tmp'; +}; + +exports.EOL = '\n'; + +},{}],81:[function(require,module,exports){ +(function (process){ +'use strict'; + +if (!process.version || + process.version.indexOf('v0.') === 0 || + process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { + module.exports = nextTick; +} else { + module.exports = process.nextTick; +} + +function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== 'function') { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } +} + +}).call(this,require('_process')) +},{"_process":82}],82:[function(require,module,exports){ +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],83:[function(require,module,exports){ +module.exports = require('./lib/_stream_duplex.js'); + +},{"./lib/_stream_duplex.js":84}],84:[function(require,module,exports){ +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + +'use strict'; + +/**/ + +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; +}; +/**/ + +module.exports = Duplex; + +/**/ +var processNextTick = require('process-nextick-args'); +/**/ + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +var keys = objectKeys(Writable.prototype); +for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; +} + +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + this.once('end', onend); +} + +// the no-half-open enforcer +function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + processNextTick(onEndNT, this); +} + +function onEndNT(self) { + self.end(); +} + +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} +},{"./_stream_readable":86,"./_stream_writable":88,"core-util-is":44,"inherits":66,"process-nextick-args":81}],85:[function(require,module,exports){ +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +'use strict'; + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; +},{"./_stream_transform":87,"core-util-is":44,"inherits":66}],86:[function(require,module,exports){ +(function (process){ +'use strict'; + +module.exports = Readable; + +/**/ +var processNextTick = require('process-nextick-args'); +/**/ + +/**/ +var isArray = require('isarray'); +/**/ + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = require('events').EventEmitter; + +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ +var Buffer = require('safe-buffer').Buffer; +/**/ + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +/**/ +var debugUtil = require('util'); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ + +var BufferList = require('./internal/streams/BufferList'); +var StringDecoder; + +util.inherits(Readable, Stream); + +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') { + return emitter.prependListener(event, fn); + } else { + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; + } +} + +function ReadableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + options = options || {}; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // when piping, we only care about 'readable' events that happen + // after read()ing all the bytes and not getting any pushback. + this.ranOut = false; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + if (!(this instanceof Readable)) return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + if (options && typeof options.read === 'function') this._read = options.read; + + Stream.call(this); +} + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + + if (!state.objectMode && typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + } + + return readableAddChunk(this, state, chunk, encoding, false); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + var state = this._readableState; + return readableAddChunk(this, state, chunk, '', true); +}; + +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +function readableAddChunk(stream, state, chunk, encoding, addToFront) { + var er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (state.ended && !addToFront) { + var e = new Error('stream.push() after EOF'); + stream.emit('error', e); + } else if (state.endEmitted && addToFront) { + var _e = new Error('stream.unshift() after end event'); + stream.emit('error', _e); + } else { + var skipAdd; + if (state.decoder && !addToFront && !encoding) { + chunk = state.decoder.write(chunk); + skipAdd = !state.objectMode && chunk.length === 0; + } + + if (!addToFront) state.reading = false; + + // Don't add to the buffer if we've decoded to an empty string chunk and + // we're not in object mode + if (!skipAdd) { + // if we want the data now, just emit it. + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + } + + maybeReadMore(stream, state); + } + } else if (!addToFront) { + state.reading = false; + } + + return needMoreData(state); +} + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; + +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + + if (ret !== null) this.emit('data', ret); + + return ret; +}; + +function chunkInvalid(state, chunk) { + var er = null; + if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); + } +} + +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + processNextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; + +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable) { + debug('onunpipe'); + if (readable === src) { + cleanup(); + } + } + + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} + +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this); + }return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + + dest.emit('unpipe', this); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + processNextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this, state); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + processNextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } + + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; + +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var state = this._readableState; + var paused = false; + + var self = this; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) self.push(chunk); + } + + self.push(null); + }); + + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + + var ret = self.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + self._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + + return self; +}; + +// exposed for testing purposes only. +Readable._fromList = fromList; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } + + return ret; +} + +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; +} + +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + + if (!state.endEmitted) { + state.ended = true; + processNextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} + +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} + +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} +}).call(this,require('_process')) +},{"./_stream_duplex":84,"./internal/streams/BufferList":89,"./internal/streams/stream":90,"_process":82,"core-util-is":44,"events":62,"inherits":66,"isarray":68,"process-nextick-args":81,"safe-buffer":95,"string_decoder/":97,"util":40}],87:[function(require,module,exports){ +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + +'use strict'; + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +util.inherits(Transform, Duplex); + +function TransformState(stream) { + this.afterTransform = function (er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; + this.writeencoding = null; +} + +function afterTransform(stream, er, data) { + var ts = stream._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); + + ts.writechunk = null; + ts.writecb = null; + + if (data !== null && data !== undefined) stream.push(data); + + cb(er); + + var rs = stream._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + stream._read(rs.highWaterMark); + } +} + +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = new TransformState(this); + + var stream = this; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.once('prefinish', function () { + if (typeof this._flush === 'function') this._flush(function (er, data) { + done(stream, er, data); + });else done(stream); + }); +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + + if (data !== null && data !== undefined) stream.push(data); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + var ws = stream._writableState; + var ts = stream._transformState; + + if (ws.length) throw new Error('Calling transform done when ws.length != 0'); + + if (ts.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} +},{"./_stream_duplex":84,"core-util-is":44,"inherits":66}],88:[function(require,module,exports){ +(function (process){ +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + +'use strict'; + +module.exports = Writable; + +/**/ +var processNextTick = require('process-nextick-args'); +/**/ + +/**/ +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; +/**/ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/**/ + +/**/ +var internalUtil = { + deprecate: require('util-deprecate') +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ +var Buffer = require('safe-buffer').Buffer; +/**/ + +util.inherits(Writable, Stream); + +function nop() {} + +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +function WritableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + options = options || {}; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; + + // cast to ints. + this.highWaterMark = ~~this.highWaterMark; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function (object) { + if (realHasInstance.call(this, object)) return true; + + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function (object) { + return object instanceof this; + }; +} + +function Writable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + if (options) { + if (typeof options.write === 'function') this._write = options.write; + + if (typeof options.writev === 'function') this._writev = options.writev; + } + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); +}; + +function writeAfterEnd(stream, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + processNextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + processNextTick(cb, er); + valid = false; + } + return valid; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = Buffer.isBuffer(chunk); + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + + if (typeof cb !== 'function') cb = nop; + + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + + return ret; +}; + +Writable.prototype.cork = function () { + var state = this._writableState; + + state.corked++; +}; + +Writable.prototype.uncork = function () { + var state = this._writableState; + + if (state.corked) { + state.corked--; + + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; + +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + chunk = decodeChunk(state, chunk, encoding); + if (Buffer.isBuffer(chunk)) encoding = 'buffer'; + } + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + + return ret; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) processNextTick(cb, er);else cb(er); + + stream._writableState.errorEmitted = true; + stream.emit('error', er); +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); + + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + + var count = 0; + while (entry) { + buffer[count] = entry; + entry = entry.next; + count += 1; + } + + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + + if (entry === null) state.lastBufferedRequest = null; + } + + state.bufferedRequestCount = 0; + state.bufferedRequest = entry; + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); +}; + +Writable.prototype._writev = null; + +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); +}; + +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} + +function prefinish(stream, state) { + if (!state.prefinished) { + state.prefinished = true; + stream.emit('prefinish'); + } +} + +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + if (state.pendingcb === 0) { + prefinish(stream, state); + state.finished = true; + stream.emit('finish'); + } else { + prefinish(stream, state); + } + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) processNextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function (err) { + var entry = _this.entry; + _this.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = _this; + } else { + state.corkedRequestsFree = _this; + } + }; +} +}).call(this,require('_process')) +},{"./_stream_duplex":84,"./internal/streams/stream":90,"_process":82,"core-util-is":44,"inherits":66,"process-nextick-args":81,"safe-buffer":95,"util-deprecate":99}],89:[function(require,module,exports){ +'use strict'; + +/**/ + +var Buffer = require('safe-buffer').Buffer; +/**/ + +module.exports = BufferList; + +function BufferList() { + this.head = null; + this.tail = null; + this.length = 0; +} + +BufferList.prototype.push = function (v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; +}; + +BufferList.prototype.unshift = function (v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; +}; + +BufferList.prototype.shift = function () { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; +}; + +BufferList.prototype.clear = function () { + this.head = this.tail = null; + this.length = 0; +}; + +BufferList.prototype.join = function (s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; +}; + +BufferList.prototype.concat = function (n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + p.data.copy(ret, i); + i += p.data.length; + p = p.next; + } + return ret; +}; +},{"safe-buffer":95}],90:[function(require,module,exports){ +module.exports = require('events').EventEmitter; + +},{"events":62}],91:[function(require,module,exports){ +module.exports = require('./readable').PassThrough + +},{"./readable":92}],92:[function(require,module,exports){ +exports = module.exports = require('./lib/_stream_readable.js'); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = require('./lib/_stream_writable.js'); +exports.Duplex = require('./lib/_stream_duplex.js'); +exports.Transform = require('./lib/_stream_transform.js'); +exports.PassThrough = require('./lib/_stream_passthrough.js'); + +},{"./lib/_stream_duplex.js":84,"./lib/_stream_passthrough.js":85,"./lib/_stream_readable.js":86,"./lib/_stream_transform.js":87,"./lib/_stream_writable.js":88}],93:[function(require,module,exports){ +module.exports = require('./readable').Transform + +},{"./readable":92}],94:[function(require,module,exports){ +module.exports = require('./lib/_stream_writable.js'); + +},{"./lib/_stream_writable.js":88}],95:[function(require,module,exports){ +module.exports = require('buffer') + +},{"buffer":43}],96:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +module.exports = Stream; + +var EE = require('events').EventEmitter; +var inherits = require('inherits'); + +inherits(Stream, EE); +Stream.Readable = require('readable-stream/readable.js'); +Stream.Writable = require('readable-stream/writable.js'); +Stream.Duplex = require('readable-stream/duplex.js'); +Stream.Transform = require('readable-stream/transform.js'); +Stream.PassThrough = require('readable-stream/passthrough.js'); + +// Backwards-compat with node 0.4.x +Stream.Stream = Stream; + + + +// old-style streams. Note that the pipe method (the only relevant +// part of this class) is overridden in the Readable class. + +function Stream() { + EE.call(this); +} + +Stream.prototype.pipe = function(dest, options) { + var source = this; + + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } + } + } + + source.on('data', ondata); + + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + + dest.on('drain', ondrain); + + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); + } + + var didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; + + dest.end(); + } + + + function onclose() { + if (didOnEnd) return; + didOnEnd = true; + + if (typeof dest.destroy === 'function') dest.destroy(); + } + + // don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, 'error') === 0) { + throw er; // Unhandled stream error in pipe. + } + } + + source.on('error', onerror); + dest.on('error', onerror); + + // remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); + + source.removeListener('end', onend); + source.removeListener('close', onclose); + + source.removeListener('error', onerror); + dest.removeListener('error', onerror); + + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); + + dest.removeListener('close', cleanup); + } + + source.on('end', cleanup); + source.on('close', cleanup); + + dest.on('close', cleanup); + + dest.emit('pipe', source); + + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; +}; + +},{"events":62,"inherits":66,"readable-stream/duplex.js":83,"readable-stream/passthrough.js":91,"readable-stream/readable.js":92,"readable-stream/transform.js":93,"readable-stream/writable.js":94}],97:[function(require,module,exports){ +'use strict'; + +var Buffer = require('safe-buffer').Buffer; + +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } +}; + +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; + +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} + +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} + +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; + +StringDecoder.prototype.end = utf8End; + +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; + +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; + +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return -1; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'.repeat(p); + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'.repeat(p + 1); + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'.repeat(p + 2); + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character for each buffered byte of a (partial) +// character needs to be added to the output. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed); + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} + +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} + +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); +} + +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} + +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} + +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} +},{"safe-buffer":98}],98:[function(require,module,exports){ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} + +},{"buffer":43}],99:[function(require,module,exports){ +(function (global){ + +/** + * Module exports. + */ + +module.exports = deprecate; + +/** + * Mark that a method should not be used. + * Returns a modified function which warns once by default. + * + * If `localStorage.noDeprecation = true` is set, then it is a no-op. + * + * If `localStorage.throwDeprecation = true` is set, then deprecated functions + * will throw an Error when invoked. + * + * If `localStorage.traceDeprecation = true` is set, then deprecated functions + * will invoke `console.trace()` instead of `console.error()`. + * + * @param {Function} fn - the function to deprecate + * @param {String} msg - the string to print to the console when `fn` is invoked + * @returns {Function} a new "deprecated" version of `fn` + * @api public + */ + +function deprecate (fn, msg) { + if (config('noDeprecation')) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg); + } else if (config('traceDeprecation')) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +} + +/** + * Checks `localStorage` for boolean values for the given `name`. + * + * @param {String} name + * @returns {Boolean} + * @api private + */ + +function config (name) { + // accessing global.localStorage can trigger a DOMException in sandboxed iframes + try { + if (!global.localStorage) return false; + } catch (_) { + return false; + } + var val = global.localStorage[name]; + if (null == val) return false; + return String(val).toLowerCase() === 'true'; +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],100:[function(require,module,exports){ +arguments[4][66][0].apply(exports,arguments) +},{"dup":66}],101:[function(require,module,exports){ +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; +} +},{}],102:[function(require,module,exports){ +(function (process,global){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; + + +// Mark that a method should not be used. +// Returns a modified function which warns once by default. +// If --no-deprecation is set, then it is a no-op. +exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +}; + + +var debugs = {}; +var debugEnviron; +exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; +}; + + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; + + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return Array.isArray(ar); +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = require('./support/isBuffer'); + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; + + +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = require('inherits'); + +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./support/isBuffer":101,"_process":82,"inherits":100}]},{},[1]); diff --git a/bower_components/neon-animation/.bower.json b/bower_components/neon-animation/.bower.json new file mode 100644 index 00000000..b353dd13 --- /dev/null +++ b/bower_components/neon-animation/.bower.json @@ -0,0 +1,90 @@ +{ + "name": "neon-animation", + "description": "A system for animating Polymer-based web components", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer", + "web-animations" + ], + "main": [ + "neon-animated-pages.html", + "neon-animatable-behavior.html", + "neon-animation-behavior.html", + "neon-animation-runner-behavior.html", + "neon-shared-element-animatable-behavior.html", + "neon-shared-element-animation-behavior.html", + "neon-animatable.html", + "neon-animations.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/neon-animation" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/neon-animation", + "ignore": [], + "demos": { + "Demo": "demo/index.html" + }, + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "iron-selector": "PolymerElements/iron-selector#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "app-layout": "PolymerElements/app-layout#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "iron-selector": "PolymerElements/iron-selector#^1.0.0", + "polymer": "Polymer/polymer#^1.9", + "web-animations-js": "web-animations/web-animations-js#^2.2.0" + }, + "devDependencies": { + "app-layout": "PolymerElements/app-layout#^0.10.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "paper-item": "PolymerElements/paper-item#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "version": "2.2.1", + "_release": "2.2.1", + "_resolution": { + "type": "version", + "tag": "v2.2.1", + "commit": "e7508084d0a99cc9fedad1964efb4e69c8527629" + }, + "_source": "https://github.com/PolymerElements/neon-animation.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/neon-animation" +} \ No newline at end of file diff --git a/bower_components/neon-animation/.github/CODEOWNERS b/bower_components/neon-animation/.github/CODEOWNERS new file mode 100644 index 00000000..9ef9eb64 --- /dev/null +++ b/bower_components/neon-animation/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @e111077 +/.travis.yml @azakus diff --git a/bower_components/neon-animation/.github/ISSUE_TEMPLATE.md b/bower_components/neon-animation/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..08943a1e --- /dev/null +++ b/bower_components/neon-animation/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/neon-animation/.gitignore b/bower_components/neon-animation/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/neon-animation/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/neon-animation/.travis.yml b/bower_components/neon-animation/.travis.yml new file mode 100644 index 00000000..dfdc7d99 --- /dev/null +++ b/bower_components/neon-animation/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +env: + global: + - secure: >- + coZBjQTrTsejOS2utVzo0hhyYRF40H2KoN30G44tRxVKV/0orSm1HJbvG2YDb/tmAFtEObJmNlYonu1I3G9RVncn9y69nRf8BjLHrpOIhNvesug7kPUuprj5KRoLo9O0UyIYmUh6i4YGt1aAeR/Wq/XVifSNIXnAVguzntbSmqvWJdqj8+FHmNzyo5269+tnOzTruXByrUcSZnvNgHjCYFZOY00a29cyK6fTdd0Qbzi9cvhEDfx1j6uXzYah7bdA8caunW1HvxwI+jiV8yEVySB7eku+SHA+8JJUIIZEL1iCASAqqVbTUoOxtfgbTXQRJdVAuDNj1J+AqFVtuJpJl4xvX97dF9FVQvgyLW9fpeb7rojdU0TSazBpVi7LLvocQjofp8bbAtbJ8Z0BN+/3DgM33uDTF8DeBGj2WmR+49F2oPnYh7FwjhbiOVqkOKyolqrRpK0PYczVdHusR6+cONkGcLzO9G5nakWzE9diJSW+nw9qD3bVL99ZzHK+6U7+R75KJdxj0V7VA1lkvWRlchxXrpsEoM0AQEUf97LsvkTpXPQ4Wf9XkCxFRAicSTeDijLCPy3ti0L6D6x9sBZwV5d3ODnkdxCAy2aY7g2YEWuuBDZC+W1ggQ3Xe705GwbBNk22HikA6XOVX9lb3xm7SnenfDGkFhNDzRijoGg96jU= + - secure: >- + hJ6VMaJqDh5HPdeERIqoOcdWZJTAOTeS/Lr6FLCWEOOvYPxwRi/L1pKbVuYf2ugeS2Z0TEvAS7RdfjRuC+NGFhsmpnpBlxAyJhVKcXrhHKVtoFK04xaCD2wDMkPaZiDZQRGF/H6/PyuoB4Tqss3aN/DC9eSMwY9HFfoeYRIwiJeb8Kq09pBtvoxU151VQt+jlmyCVw7rhNDTAazaCGKicgvbAtxSJ6xNswNfqOrtCYB+WW5CpUE+qqTjjbistSQJu3hjk2UwFMLJZXtJWdkcD88vNdHy3mtNZQNtE8x+ckNVqgJ98DyAN7HLUU0GvzTOiOGFfwr+bpl6Td8klR2YoQOW4ypluAetcDN9X7tKOxDQaaI8AyPLXPWi9JcESEGAeLzpfkWZ6clrQmqfLdVDsqYKPldF9m7Ozjdhq40r3qFdQAdEI29dBOKOalaZXgWnvU2wu5FBtWnBMSk89zOYC5wGR0E+wOMMMRu90LuMQY40Myhqso5iUFL5qhrn41I8ZfFi0EyOgEeKzYH3zrdo7/msEkCXxI0SKfG1CGSQSOT2luO6Xu6xIuf7qoWYKJiJQ40ObsRKn0cA4GQpNZe/dgKMRH2zzfKW6d2BSAsZGTDJG14XcDi9d/zz7djgboMjc/A6sH8L3c8BkbUa4wuyJRNu7VBZQHq5yrnHpxC6SbA= +dist: trusty diff --git a/bower_components/neon-animation/CONTRIBUTING.md b/bower_components/neon-animation/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/neon-animation/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/neon-animation/README.md b/bower_components/neon-animation/README.md new file mode 100644 index 00000000..a8d1a416 --- /dev/null +++ b/bower_components/neon-animation/README.md @@ -0,0 +1,299 @@ +## Changes in 2.0 +* ⚠️ This Element is now deprecated ⚠️ + * Please use the web animations api or CSS animations +* Web animations polyfill is now a dev dependency + +# neon-animation + +`neon-animation` is a suite of elements and behaviors to implement pluggable animated transitions for Polymer Elements using [Web Animations](https://w3c.github.io/web-animations/). + +*Warning: The API may change.* + +* [A basic animatable element](#basic) +* [Animation configuration](#configuration) + * [Animation types](#configuration-types) + * [Configuration properties](#configuration-properties) + * [Using multiple animations](#configuration-multiple) + * [Running animations encapsulated in children nodes](#configuration-encapsulation) +* [Page transitions](#page-transitions) + * [Shared element animations](#shared-element) + * [Declarative page transitions](#declarative-page) +* [Included animations](#animations) + + +## A basic animatable element + +Elements that can be animated should implement the `Polymer.NeonAnimatableBehavior` behavior, or `Polymer.NeonAnimationRunnerBehavior` if they're also responsible for running an animation. + +```js +Polymer({ + is: 'my-animatable', + behaviors: [ + Polymer.NeonAnimationRunnerBehavior + ], + properties: { + animationConfig: { + value: function() { + return { + // provided by neon-animation/animations/scale-down-animation.html + name: 'scale-down-animation', + node: this + } + } + } + }, + listeners: { + // this event is fired when the animation finishes + 'neon-animation-finish': '_onNeonAnimationFinish' + }, + animate: function() { + // run scale-down-animation + this.playAnimation(); + }, + _onNeonAnimationFinish: function() { + console.log('animation done!'); + } +}); +``` + + + +## Animation configuration + + +### Animation types + +An element might run different animations, for example it might do something different when it enters the view and when it exits from view. You can set the `animationConfig` property to a map from an animation type to configuration. + +```js +Polymer({ + is: 'my-dialog', + behaviors: [ + Polymer.NeonAnimationRunnerBehavior + ], + properties: { + opened: { + type: Boolean + }, + animationConfig: { + value: function() { + return { + 'entry': { + // provided by neon-animation/animations/scale-up-animation.html + name: 'scale-up-animation', + node: this + }, + 'exit': { + // provided by neon-animation/animations/fade-out-animation.html + name: 'fade-out-animation', + node: this + } + } + } + } + }, + listeners: { + 'neon-animation-finish': '_onNeonAnimationFinish' + }, + show: function() { + this.opened = true; + this.style.display = 'inline-block'; + // run scale-up-animation + this.playAnimation('entry'); + }, + hide: function() { + this.opened = false; + // run fade-out-animation + this.playAnimation('exit'); + }, + _onNeonAnimationFinish: function() { + if (!this.opened) { + this.style.display = 'none'; + } + } +}); +``` + + +You can also use the convenience properties `entryAnimation` and `exitAnimation` to set `entry` and `exit` animations: + +```js +properties: { + entryAnimation: { + value: 'scale-up-animation' + }, + exitAnimation: { + value: 'fade-out-animation' + } +} +``` + + +### Configuration properties + +You can pass additional parameters to configure an animation in the animation configuration object. +All animations should accept the following properties: + + * `name`: The name of an animation, ie. an element implementing `Polymer.NeonAnimationBehavior`. + * `node`: The target node to apply the animation to. Defaults to `this`. + * `timing`: Timing properties to use in this animation. They match the [Web Animations Animation Effect Timing interface](https://w3c.github.io/web-animations/#the-animationeffecttiming-interface). The + properties include the following: + * `duration`: The duration of the animation in milliseconds. + * `delay`: The delay before the start of the animation in milliseconds. + * `easing`: A timing function for the animation. Matches the CSS timing function values. + +Animations may define additional configuration properties and they are listed in their documentation. + + +### Using multiple animations + +Set the animation configuration to an array to combine animations, like this: + +```js +animationConfig: { + value: function() { + return { + // fade-in-animation is run with a 50ms delay from slide-down-animation + 'entry': [{ + name: 'slide-down-animation', + node: this + }, { + name: 'fade-in-animation', + node: this, + timing: {delay: 50} + }] + } + } +} +``` + + +### Running animations encapsulated in children nodes + +You can include animations in the configuration that are encapsulated in a child element that implement `Polymer.NeonAnimatableBehavior` with the `animatable` property. + +```js +animationConfig: { + value: function() { + return { + // run fade-in-animation on this, and the entry animation on this.$.myAnimatable + 'entry': [ + {name: 'fade-in-animation', node: this}, + {animatable: this.$.myAnimatable, type: 'entry'} + ] + } + } +} +``` + + +## Page transitions + +*The artist formerly known as ``* + +The `neon-animated-pages` element manages a set of pages to switch between, and runs animations between the page transitions. It implements the `Polymer.IronSelectableBehavior` behavior. Each child node should implement `Polymer.NeonAnimatableBehavior` and define the `entry` and `exit` animations. During a page transition, the `entry` animation is run on the new page and the `exit` animation is run on the old page. + + +### Shared element animations + +Shared element animations work on multiple nodes. For example, a "hero" animation is used during a page transition to make two elements from separate pages appear to animate as a single element. Shared element animation configurations have an `id` property that identify they belong in the same animation. Elements containing shared elements also have a `sharedElements` property defines a map from `id` to element, the element involved with the animation. + +In the incoming page: + +```js +properties: { + animationConfig: { + value: function() { + return { + // the incoming page defines the 'entry' animation + 'entry': { + name: 'hero-animation', + id: 'hero', + toPage: this + } + } + } + }, + sharedElements: { + value: function() { + return { + 'hero': this.$.hero + } + } + } +} +``` + +In the outgoing page: + +```js +properties: { + animationConfig: { + value: function() { + return { + // the outgoing page defines the 'exit' animation + 'exit': { + name: 'hero-animation', + id: 'hero', + fromPage: this + } + } + } + }, + sharedElements: { + value: function() { + return { + 'hero': this.$.otherHero + } + } + } +} +``` + + +### Declarative page transitions + +For convenience, if you define the `entry-animation` and `exit-animation` attributes on ``, those animations will apply for all page transitions. + +For example: + +```js + + 1 + 2 + 3 + 4 + 5 + +``` + +The new page will slide in from the right, and the old page slide away to the left. + + +## Included animations + +Single element animations: + + * `fade-in-animation` Animates opacity from `0` to `1`; + * `fade-out-animation` Animates opacity from `1` to `0`; + * `scale-down-animation` Animates transform from `scale(1)` to `scale(0)`; + * `scale-up-animation` Animates transform from `scale(0)` to `scale(1)`; + * `slide-down-animation` Animates transform from `none` to `translateY(100%)`; + * `slide-up-animation` Animates transform from `none` to `translateY(-100%)`; + * `slide-from-top-animation` Animates transform from `translateY(-100%)` to `none`; + * `slide-from-bottom-animation` Animates transform from `translateY(100%)` to `none`; + * `slide-left-animation` Animates transform from `none` to `translateX(-100%)`; + * `slide-right-animation` Animates transform from `none` to `translateX(100%)`; + * `slide-from-left-animation` Animates transform from `translateX(-100%)` to `none`; + * `slide-from-right-animation` Animates transform from `translateX(100%)` to `none`; + * `transform-animation` Animates a custom transform. + +Note that there is a restriction that only one transform animation can be applied on the same element at a time. Use the custom `transform-animation` to combine transform properties. + +Shared element animations + + * `hero-animation` Animates an element such that it looks like it scales and transforms from another element. + * `ripple-animation` Animates an element to full screen such that it looks like it ripples from another element. + +Group animations + * `cascaded-animation` Applys an animation to an array of elements with a delay between each. diff --git a/bower_components/neon-animation/animations/cascaded-animation.d.ts b/bower_components/neon-animation/animations/cascaded-animation.d.ts new file mode 100644 index 00000000..5bcd3a01 --- /dev/null +++ b/bower_components/neon-animation/animations/cascaded-animation.d.ts @@ -0,0 +1,36 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/cascaded-animation.html + */ + +/// +/// + +/** + * `` applies an animation on an array of elements with a delay between each. + * the delay defaults to 50ms. + * + * Configuration: + * ``` + * { + * name: 'cascaded-animation', + * animation: , + * nodes: , + * nodeDelay: , + * timing: + * } + * ``` + */ +interface CascadedAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + complete(): void; + configure(config: {animation: string, nodes: Element[], nodeDelay?: number, timing?: object|null}): any; +} + +interface HTMLElementTagNameMap { + "cascaded-animation": CascadedAnimationElement; +} diff --git a/bower_components/neon-animation/animations/cascaded-animation.html b/bower_components/neon-animation/animations/cascaded-animation.html new file mode 100644 index 00000000..39c8713a --- /dev/null +++ b/bower_components/neon-animation/animations/cascaded-animation.html @@ -0,0 +1,94 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/fade-in-animation.d.ts b/bower_components/neon-animation/animations/fade-in-animation.d.ts new file mode 100644 index 00000000..b261d804 --- /dev/null +++ b/bower_components/neon-animation/animations/fade-in-animation.d.ts @@ -0,0 +1,32 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/fade-in-animation.html + */ + +/// +/// + +/** + * `` animates the opacity of an element from 0 to 1. + * + * Configuration: + * ``` + * { + * name: 'fade-in-animation', + * node: + * timing: + * } + * ``` + */ +interface FadeInAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "fade-in-animation": FadeInAnimationElement; +} diff --git a/bower_components/neon-animation/animations/fade-in-animation.html b/bower_components/neon-animation/animations/fade-in-animation.html new file mode 100644 index 00000000..c18849ec --- /dev/null +++ b/bower_components/neon-animation/animations/fade-in-animation.html @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/fade-out-animation.d.ts b/bower_components/neon-animation/animations/fade-out-animation.d.ts new file mode 100644 index 00000000..1e2f371e --- /dev/null +++ b/bower_components/neon-animation/animations/fade-out-animation.d.ts @@ -0,0 +1,32 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/fade-out-animation.html + */ + +/// +/// + +/** + * `` animates the opacity of an element from 1 to 0. + * + * Configuration: + * ``` + * { + * name: 'fade-out-animation', + * node: + * timing: + * } + * ``` + */ +interface FadeOutAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "fade-out-animation": FadeOutAnimationElement; +} diff --git a/bower_components/neon-animation/animations/fade-out-animation.html b/bower_components/neon-animation/animations/fade-out-animation.html new file mode 100644 index 00000000..abd20b18 --- /dev/null +++ b/bower_components/neon-animation/animations/fade-out-animation.html @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/hero-animation.d.ts b/bower_components/neon-animation/animations/hero-animation.d.ts new file mode 100644 index 00000000..fa29c928 --- /dev/null +++ b/bower_components/neon-animation/animations/hero-animation.d.ts @@ -0,0 +1,41 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/hero-animation.html + */ + +/// +/// + +/** + * `` is a shared element animation that scales and transform an element such that it + * appears to be shared between two pages. Use this in ``. The source page + * should use this animation in an 'exit' animation and set the `fromPage` configuration property to + * itself, and the destination page should use this animation in an `entry` animation and set the + * `toPage` configuration property to itself. They should also define the hero elements in the + * `sharedElements` property (not a configuration property, see + * `Polymer.NeonSharedElementAnimatableBehavior`). + * + * Configuration: + * ``` + * { + * name: 'hero-animation', + * id: , + * timing: , + * toPage: , /* define for the destination page *\/ + * fromPage: , /* define for the source page *\/ + * } + * ``` + */ +interface HeroAnimationElement extends Polymer.Element, Polymer.NeonSharedElementAnimationBehavior { + complete(config: any): any; + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "hero-animation": HeroAnimationElement; +} diff --git a/bower_components/neon-animation/animations/hero-animation.html b/bower_components/neon-animation/animations/hero-animation.html new file mode 100644 index 00000000..71488832 --- /dev/null +++ b/bower_components/neon-animation/animations/hero-animation.html @@ -0,0 +1,82 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/opaque-animation.d.ts b/bower_components/neon-animation/animations/opaque-animation.d.ts new file mode 100644 index 00000000..96c48ece --- /dev/null +++ b/bower_components/neon-animation/animations/opaque-animation.d.ts @@ -0,0 +1,25 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/opaque-animation.html + */ + +/// +/// + +/** + * `` makes an element `opacity:1` for the duration of the animation. Used to prevent + * webkit/safari from drawing a frame before an animation for elements that animate from display:none. + */ +interface OpaqueAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + complete(config: any): void; + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "opaque-animation": OpaqueAnimationElement; +} diff --git a/bower_components/neon-animation/animations/opaque-animation.html b/bower_components/neon-animation/animations/opaque-animation.html new file mode 100644 index 00000000..bfe7d646 --- /dev/null +++ b/bower_components/neon-animation/animations/opaque-animation.html @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/reverse-ripple-animation.d.ts b/bower_components/neon-animation/animations/reverse-ripple-animation.d.ts new file mode 100644 index 00000000..2e2c2e99 --- /dev/null +++ b/bower_components/neon-animation/animations/reverse-ripple-animation.d.ts @@ -0,0 +1,42 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/reverse-ripple-animation.html + */ + +/// +/// + +/** + * `` scales and transform an element such that it appears to ripple down from this element, to either + * a shared element, or a screen position. + * + * If using as a shared element animation in ``, use this animation in an `exit` + * animation in the source page and in an `entry` animation in the destination page. Also, define the + * reverse-ripple elements in the `sharedElements` property (not a configuration property, see + * `Polymer.NeonSharedElementAnimatableBehavior`). + * If using a screen position, define the `gesture` property. + * Configuration: + * ``` + * { + * name: 'reverse-ripple-animation`. + * id: , /* set this or gesture *\/ + * gesture: {x: , y: }, /* set this or id *\/ + * timing: , + * toPage: , /* define for the destination page *\/ + * fromPage: , /* define for the source page *\/ + * } + * ``` + */ +interface ReverseRippleAnimationElement extends Polymer.Element, Polymer.NeonSharedElementAnimationBehavior { + complete(): void; + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "reverse-ripple-animation": ReverseRippleAnimationElement; +} diff --git a/bower_components/neon-animation/animations/reverse-ripple-animation.html b/bower_components/neon-animation/animations/reverse-ripple-animation.html new file mode 100644 index 00000000..c20044a7 --- /dev/null +++ b/bower_components/neon-animation/animations/reverse-ripple-animation.html @@ -0,0 +1,86 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/ripple-animation.d.ts b/bower_components/neon-animation/animations/ripple-animation.d.ts new file mode 100644 index 00000000..6b8cf598 --- /dev/null +++ b/bower_components/neon-animation/animations/ripple-animation.d.ts @@ -0,0 +1,44 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/ripple-animation.html + */ + +/// +/// + +/** + * `` scales and transform an element such that it appears to ripple from either + * a shared element, or from a screen position, to full screen. + * + * If using as a shared element animation in ``, use this animation in an `exit` + * animation in the source page and in an `entry` animation in the destination page. Also, define the + * hero elements in the `sharedElements` property (not a configuration property, see + * `Polymer.NeonSharedElementAnimatableBehavior`). + * + * If using a screen position, define the `gesture` property. + * + * Configuration: + * ``` + * { + * name: 'ripple-animation`. + * id: , /* set this or gesture *\/ + * gesture: {x: , y: }, /* set this or id *\/ + * timing: , + * toPage: , /* define for the destination page *\/ + * fromPage: , /* define for the source page *\/ + * } + * ``` + */ +interface RippleAnimationElement extends Polymer.Element, Polymer.NeonSharedElementAnimationBehavior { + complete(): void; + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "ripple-animation": RippleAnimationElement; +} diff --git a/bower_components/neon-animation/animations/ripple-animation.html b/bower_components/neon-animation/animations/ripple-animation.html new file mode 100644 index 00000000..dd8d2a8e --- /dev/null +++ b/bower_components/neon-animation/animations/ripple-animation.html @@ -0,0 +1,92 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/scale-down-animation.d.ts b/bower_components/neon-animation/animations/scale-down-animation.d.ts new file mode 100644 index 00000000..fd68fff3 --- /dev/null +++ b/bower_components/neon-animation/animations/scale-down-animation.d.ts @@ -0,0 +1,35 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/scale-down-animation.html + */ + +/// +/// + +/** + * `` animates the scale transform of an element from 1 to 0. By default it + * scales in both the x and y axes. + * + * Configuration: + * ``` + * { + * name: 'scale-down-animation', + * node: , + * axis: 'x' | 'y' | '', + * transformOrigin: , + * timing: + * } + * ``` + */ +interface ScaleDownAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "scale-down-animation": ScaleDownAnimationElement; +} diff --git a/bower_components/neon-animation/animations/scale-down-animation.html b/bower_components/neon-animation/animations/scale-down-animation.html new file mode 100644 index 00000000..91e40840 --- /dev/null +++ b/bower_components/neon-animation/animations/scale-down-animation.html @@ -0,0 +1,64 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/scale-up-animation.d.ts b/bower_components/neon-animation/animations/scale-up-animation.d.ts new file mode 100644 index 00000000..23cec443 --- /dev/null +++ b/bower_components/neon-animation/animations/scale-up-animation.d.ts @@ -0,0 +1,35 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/scale-up-animation.html + */ + +/// +/// + +/** + * `` animates the scale transform of an element from 0 to 1. By default it + * scales in both the x and y axes. + * + * Configuration: + * ``` + * { + * name: 'scale-up-animation', + * node: , + * axis: 'x' | 'y' | '', + * transformOrigin: , + * timing: + * } + * ``` + */ +interface ScaleUpAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "scale-up-animation": ScaleUpAnimationElement; +} diff --git a/bower_components/neon-animation/animations/scale-up-animation.html b/bower_components/neon-animation/animations/scale-up-animation.html new file mode 100644 index 00000000..a6c92202 --- /dev/null +++ b/bower_components/neon-animation/animations/scale-up-animation.html @@ -0,0 +1,64 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-down-animation.d.ts b/bower_components/neon-animation/animations/slide-down-animation.d.ts new file mode 100644 index 00000000..e03b9877 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-down-animation.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-down-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from `none` `translateY(100%)`. + * The `transformOrigin` defaults to `50% 0`. + * + * Configuration: + * ``` + * { + * name: 'slide-down-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideDownAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-down-animation": SlideDownAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-down-animation.html b/bower_components/neon-animation/animations/slide-down-animation.html new file mode 100644 index 00000000..cf56ae59 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-down-animation.html @@ -0,0 +1,58 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-from-bottom-animation.d.ts b/bower_components/neon-animation/animations/slide-from-bottom-animation.d.ts new file mode 100644 index 00000000..c1fe2203 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-bottom-animation.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-from-bottom-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from `none` to `translateY(100%)`. + * The `transformOrigin` defaults to `50% 0`. + * + * Configuration: + * ``` + * { + * name: 'slide-from-bottom-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideFromBottomAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-from-bottom-animation": SlideFromBottomAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-from-bottom-animation.html b/bower_components/neon-animation/animations/slide-from-bottom-animation.html new file mode 100644 index 00000000..8e7ba763 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-bottom-animation.html @@ -0,0 +1,58 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-from-left-animation.d.ts b/bower_components/neon-animation/animations/slide-from-left-animation.d.ts new file mode 100644 index 00000000..b3f0b2e2 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-left-animation.d.ts @@ -0,0 +1,35 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-from-left-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from + * `translateX(-100%)` to `none`. + * The `transformOrigin` defaults to `0 50%`. + * + * Configuration: + * ``` + * { + * name: 'slide-from-left-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideFromLeftAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-from-left-animation": SlideFromLeftAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-from-left-animation.html b/bower_components/neon-animation/animations/slide-from-left-animation.html new file mode 100644 index 00000000..14d63bdd --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-left-animation.html @@ -0,0 +1,59 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-from-right-animation.d.ts b/bower_components/neon-animation/animations/slide-from-right-animation.d.ts new file mode 100644 index 00000000..2dea2e6a --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-right-animation.d.ts @@ -0,0 +1,35 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-from-right-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from + * `translateX(100%)` to `none`. + * The `transformOrigin` defaults to `0 50%`. + * + * Configuration: + * ``` + * { + * name: 'slide-from-right-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideFromRightAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-from-right-animation": SlideFromRightAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-from-right-animation.html b/bower_components/neon-animation/animations/slide-from-right-animation.html new file mode 100644 index 00000000..f6190bac --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-right-animation.html @@ -0,0 +1,59 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-from-top-animation.d.ts b/bower_components/neon-animation/animations/slide-from-top-animation.d.ts new file mode 100644 index 00000000..7e5d4714 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-top-animation.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-from-top-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from `translateY(-100%)` to + * `none`. The `transformOrigin` defaults to `50% 0`. + * + * Configuration: + * ``` + * { + * name: 'slide-from-top-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideFromTopAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-from-top-animation": SlideFromTopAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-from-top-animation.html b/bower_components/neon-animation/animations/slide-from-top-animation.html new file mode 100644 index 00000000..cf69eaae --- /dev/null +++ b/bower_components/neon-animation/animations/slide-from-top-animation.html @@ -0,0 +1,58 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-left-animation.d.ts b/bower_components/neon-animation/animations/slide-left-animation.d.ts new file mode 100644 index 00000000..d34e8479 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-left-animation.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-left-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from `none` to `translateX(-100%)`. + * The `transformOrigin` defaults to `0 50%`. + * + * Configuration: + * ``` + * { + * name: 'slide-left-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideLeftAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-left-animation": SlideLeftAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-left-animation.html b/bower_components/neon-animation/animations/slide-left-animation.html new file mode 100644 index 00000000..040cfee0 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-left-animation.html @@ -0,0 +1,58 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-right-animation.d.ts b/bower_components/neon-animation/animations/slide-right-animation.d.ts new file mode 100644 index 00000000..769d4c17 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-right-animation.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-right-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from `none` to `translateX(100%)`. + * The `transformOrigin` defaults to `0 50%`. + * + * Configuration: + * ``` + * { + * name: 'slide-right-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideRightAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-right-animation": SlideRightAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-right-animation.html b/bower_components/neon-animation/animations/slide-right-animation.html new file mode 100644 index 00000000..7a9342b1 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-right-animation.html @@ -0,0 +1,58 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/slide-up-animation.d.ts b/bower_components/neon-animation/animations/slide-up-animation.d.ts new file mode 100644 index 00000000..4231f8a9 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-up-animation.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/slide-up-animation.html + */ + +/// +/// + +/** + * `` animates the transform of an element from `translateY(0)` to + * `translateY(-100%)`. The `transformOrigin` defaults to `50% 0`. + * + * Configuration: + * ``` + * { + * name: 'slide-up-animation', + * node: , + * transformOrigin: , + * timing: + * } + * ``` + */ +interface SlideUpAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: any): any; +} + +interface HTMLElementTagNameMap { + "slide-up-animation": SlideUpAnimationElement; +} diff --git a/bower_components/neon-animation/animations/slide-up-animation.html b/bower_components/neon-animation/animations/slide-up-animation.html new file mode 100644 index 00000000..eac7a377 --- /dev/null +++ b/bower_components/neon-animation/animations/slide-up-animation.html @@ -0,0 +1,58 @@ + + + + + + + + diff --git a/bower_components/neon-animation/animations/transform-animation.d.ts b/bower_components/neon-animation/animations/transform-animation.d.ts new file mode 100644 index 00000000..03ec4bd5 --- /dev/null +++ b/bower_components/neon-animation/animations/transform-animation.d.ts @@ -0,0 +1,36 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * animations/transform-animation.html + */ + +/// +/// + +/** + * `` animates a custom transform on an element. Use this to animate multiple + * transform properties, or to apply a custom transform value. + * + * Configuration: + * ``` + * { + * name: 'transform-animation', + * node: , + * transformOrigin: , + * transformFrom: , + * transformTo: , + * timing: + * } + * ``` + */ +interface TransformAnimationElement extends Polymer.Element, Polymer.NeonAnimationBehavior { + configure(config: {node: Element, transformOrigin?: string, transformFrom?: string, transformTo?: string, timing?: object|null}): any; +} + +interface HTMLElementTagNameMap { + "transform-animation": TransformAnimationElement; +} diff --git a/bower_components/neon-animation/animations/transform-animation.html b/bower_components/neon-animation/animations/transform-animation.html new file mode 100644 index 00000000..84927271 --- /dev/null +++ b/bower_components/neon-animation/animations/transform-animation.html @@ -0,0 +1,69 @@ + + + + + + + + diff --git a/bower_components/neon-animation/bower.json b/bower_components/neon-animation/bower.json new file mode 100644 index 00000000..2dd5c0f5 --- /dev/null +++ b/bower_components/neon-animation/bower.json @@ -0,0 +1,80 @@ +{ + "name": "neon-animation", + "description": "A system for animating Polymer-based web components", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer", + "web-animations" + ], + "main": [ + "neon-animated-pages.html", + "neon-animatable-behavior.html", + "neon-animation-behavior.html", + "neon-animation-runner-behavior.html", + "neon-shared-element-animatable-behavior.html", + "neon-shared-element-animation-behavior.html", + "neon-animatable.html", + "neon-animations.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/neon-animation" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/neon-animation", + "ignore": [], + "demos": { + "Demo": "demo/index.html" + }, + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "iron-selector": "PolymerElements/iron-selector#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "app-layout": "PolymerElements/app-layout#1 - 2", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "iron-selector": "PolymerElements/iron-selector#^1.0.0", + "polymer": "Polymer/polymer#^1.9", + "web-animations-js": "web-animations/web-animations-js#^2.2.0" + }, + "devDependencies": { + "app-layout": "PolymerElements/app-layout#^0.10.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "paper-item": "PolymerElements/paper-item#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/neon-animation/demo/card/index.html b/bower_components/neon-animation/demo/card/index.html new file mode 100644 index 00000000..ec246dbc --- /dev/null +++ b/bower_components/neon-animation/demo/card/index.html @@ -0,0 +1,174 @@ + + + + + neon-animated-pages demo: card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/card/x-card.html b/bower_components/neon-animation/demo/card/x-card.html new file mode 100644 index 00000000..12979bb1 --- /dev/null +++ b/bower_components/neon-animation/demo/card/x-card.html @@ -0,0 +1,100 @@ + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/card/x-cards-list.html b/bower_components/neon-animation/demo/card/x-cards-list.html new file mode 100644 index 00000000..a3ba2ca6 --- /dev/null +++ b/bower_components/neon-animation/demo/card/x-cards-list.html @@ -0,0 +1,81 @@ + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/declarative/index.html b/bower_components/neon-animation/demo/declarative/index.html new file mode 100644 index 00000000..3bac789d --- /dev/null +++ b/bower_components/neon-animation/demo/declarative/index.html @@ -0,0 +1,150 @@ + + + + + neon-animated-pages demo: declarative + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/doc/index.html b/bower_components/neon-animation/demo/doc/index.html new file mode 100644 index 00000000..a15bfa58 --- /dev/null +++ b/bower_components/neon-animation/demo/doc/index.html @@ -0,0 +1,76 @@ + + + + + neon-animation demo: basic + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/doc/my-animatable.html b/bower_components/neon-animation/demo/doc/my-animatable.html new file mode 100644 index 00000000..86dcb19e --- /dev/null +++ b/bower_components/neon-animation/demo/doc/my-animatable.html @@ -0,0 +1,68 @@ + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/doc/my-dialog.html b/bower_components/neon-animation/demo/doc/my-dialog.html new file mode 100644 index 00000000..5ccdff82 --- /dev/null +++ b/bower_components/neon-animation/demo/doc/my-dialog.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/dropdown/animated-dropdown.html b/bower_components/neon-animation/demo/dropdown/animated-dropdown.html new file mode 100644 index 00000000..8c09f37a --- /dev/null +++ b/bower_components/neon-animation/demo/dropdown/animated-dropdown.html @@ -0,0 +1,90 @@ + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/dropdown/index.html b/bower_components/neon-animation/demo/dropdown/index.html new file mode 100644 index 00000000..de81a322 --- /dev/null +++ b/bower_components/neon-animation/demo/dropdown/index.html @@ -0,0 +1,61 @@ + + + + + neon-animated-pages demo: dropdown + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/grid/animated-grid.html b/bower_components/neon-animation/demo/grid/animated-grid.html new file mode 100644 index 00000000..3688ace6 --- /dev/null +++ b/bower_components/neon-animation/demo/grid/animated-grid.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/grid/fullsize-page-with-card.html b/bower_components/neon-animation/demo/grid/fullsize-page-with-card.html new file mode 100644 index 00000000..8f334ec4 --- /dev/null +++ b/bower_components/neon-animation/demo/grid/fullsize-page-with-card.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/grid/index.html b/bower_components/neon-animation/demo/grid/index.html new file mode 100644 index 00000000..d88ec2d7 --- /dev/null +++ b/bower_components/neon-animation/demo/grid/index.html @@ -0,0 +1,74 @@ + + + + + neon-animated-pages demo: grid + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/index.html b/bower_components/neon-animation/demo/index.html new file mode 100644 index 00000000..1ca9f2d5 --- /dev/null +++ b/bower_components/neon-animation/demo/index.html @@ -0,0 +1,46 @@ + + + + + neon-animated pages demo + + + + + + + + + + + +
      +
      +

      Sample demos

      + +
      +
      + + diff --git a/bower_components/neon-animation/demo/list/full-view.html b/bower_components/neon-animation/demo/list/full-view.html new file mode 100644 index 00000000..da52eb31 --- /dev/null +++ b/bower_components/neon-animation/demo/list/full-view.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/list/index.html b/bower_components/neon-animation/demo/list/index.html new file mode 100644 index 00000000..6e100bd2 --- /dev/null +++ b/bower_components/neon-animation/demo/list/index.html @@ -0,0 +1,38 @@ + + + + + neon-animated-pages demo: list + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/list/list-demo.html b/bower_components/neon-animation/demo/list/list-demo.html new file mode 100644 index 00000000..21897e4c --- /dev/null +++ b/bower_components/neon-animation/demo/list/list-demo.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/list/list-view.html b/bower_components/neon-animation/demo/list/list-view.html new file mode 100644 index 00000000..2620a355 --- /dev/null +++ b/bower_components/neon-animation/demo/list/list-view.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/load/animated-grid.html b/bower_components/neon-animation/demo/load/animated-grid.html new file mode 100644 index 00000000..260a4395 --- /dev/null +++ b/bower_components/neon-animation/demo/load/animated-grid.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/load/full-page.html b/bower_components/neon-animation/demo/load/full-page.html new file mode 100644 index 00000000..d7a789a6 --- /dev/null +++ b/bower_components/neon-animation/demo/load/full-page.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/load/index.html b/bower_components/neon-animation/demo/load/index.html new file mode 100644 index 00000000..1e1f1317 --- /dev/null +++ b/bower_components/neon-animation/demo/load/index.html @@ -0,0 +1,51 @@ + + + + + neon-animated-pages demo: load + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/shared-styles.html b/bower_components/neon-animation/demo/shared-styles.html new file mode 100644 index 00000000..4e48c8c4 --- /dev/null +++ b/bower_components/neon-animation/demo/shared-styles.html @@ -0,0 +1,47 @@ + + + + + diff --git a/bower_components/neon-animation/demo/tiles/circles-page.html b/bower_components/neon-animation/demo/tiles/circles-page.html new file mode 100644 index 00000000..3d7fdddc --- /dev/null +++ b/bower_components/neon-animation/demo/tiles/circles-page.html @@ -0,0 +1,115 @@ + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/tiles/index.html b/bower_components/neon-animation/demo/tiles/index.html new file mode 100644 index 00000000..3a46ab08 --- /dev/null +++ b/bower_components/neon-animation/demo/tiles/index.html @@ -0,0 +1,80 @@ + + + + + neon-animated-pages demo: tiles + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/demo/tiles/squares-page.html b/bower_components/neon-animation/demo/tiles/squares-page.html new file mode 100644 index 00000000..5382fb1e --- /dev/null +++ b/bower_components/neon-animation/demo/tiles/squares-page.html @@ -0,0 +1,102 @@ + + + + + + + + + + diff --git a/bower_components/neon-animation/gen-tsd.json b/bower_components/neon-animation/gen-tsd.json new file mode 100644 index 00000000..c2e13678 --- /dev/null +++ b/bower_components/neon-animation/gen-tsd.json @@ -0,0 +1,5 @@ +{ + "removeReferences": [ + "../web-animations-js/web-animations-next-lite.min.d.ts" + ] +} diff --git a/bower_components/neon-animation/guides/neon-animation.md b/bower_components/neon-animation/guides/neon-animation.md new file mode 100644 index 00000000..69727b86 --- /dev/null +++ b/bower_components/neon-animation/guides/neon-animation.md @@ -0,0 +1,314 @@ +--- +title: neon-animation +summary: "A short guide to neon-animation and neon-animated-pages" +tags: ['animation','core-animated-pages'] +elements: ['neon-animation','neon-animated-pages'] +updated: 2015-05-26 +--- + +# neon-animation + +`neon-animation` is a suite of elements and behaviors to implement pluggable animated transitions for Polymer Elements using [Web Animations](https://w3c.github.io/web-animations/). + +*Warning: The API may change.* + +* [A basic animatable element](#basic) +* [Animation configuration](#configuration) + * [Animation types](#configuration-types) + * [Configuration properties](#configuration-properties) + * [Using multiple animations](#configuration-multiple) + * [Running animations encapsulated in children nodes](#configuration-encapsulation) +* [Page transitions](#page-transitions) + * [Shared element animations](#shared-element) + * [Declarative page transitions](#declarative-page) +* [Included animations](#animations) +* [Demos](#demos) + + +## A basic animatable element + +Elements that can be animated should implement the `Polymer.NeonAnimatableBehavior` behavior, or `Polymer.NeonAnimationRunnerBehavior` if they're also responsible for running an animation. + +```js +Polymer({ + is: 'my-animatable', + behaviors: [ + Polymer.NeonAnimationRunnerBehavior + ], + properties: { + animationConfig: { + value: function() { + return { + // provided by neon-animation/animations/scale-down-animation.html + name: 'scale-down-animation', + node: this + } + } + } + }, + listeners: { + // this event is fired when the animation finishes + 'neon-animation-finish': '_onNeonAnimationFinish' + }, + animate: function() { + // run scale-down-animation + this.playAnimation(); + }, + _onNeonAnimationFinish: function() { + console.log('animation done!'); + } +}); +``` + +[Live demo](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/doc/basic.html) + + +## Animation configuration + + +### Animation types + +An element might run different animations, for example it might do something different when it enters the view and when it exits from view. You can set the `animationConfig` property to a map from an animation type to configuration. + +```js +Polymer({ + is: 'my-dialog', + behaviors: [ + Polymer.NeonAnimationRunnerBehavior + ], + properties: { + opened: { + type: Boolean + }, + animationConfig: { + value: function() { + return { + 'entry': { + // provided by neon-animation/animations/scale-up-animation.html + name: 'scale-up-animation', + node: this + }, + 'exit': { + // provided by neon-animation-animations/fade-out-animation.html + name: 'fade-out-animation', + node: this + } + } + } + } + }, + listeners: { + 'neon-animation-finish': '_onNeonAnimationFinish' + }, + show: function() { + this.opened = true; + this.style.display = 'inline-block'; + // run scale-up-animation + this.playAnimation('entry'); + }, + hide: function() { + this.opened = false; + // run fade-out-animation + this.playAnimation('exit'); + }, + _onNeonAnimationFinish: function() { + if (!this.opened) { + this.style.display = 'none'; + } + } +}); +``` + +[Live demo](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/doc/types.html) + +You can also use the convenience properties `entryAnimation` and `exitAnimation` to set `entry` and `exit` animations: + +```js +properties: { + entryAnimation: { + value: 'scale-up-animation' + }, + exitAnimation: { + value: 'fade-out-animation' + } +} +``` + + +### Configuration properties + +You can pass additional parameters to configure an animation in the animation configuration object. +All animations should accept the following properties: + + * `name`: The name of an animation, ie. an element implementing `Polymer.NeonAnimationBehavior`. + * `node`: The target node to apply the animation to. Defaults to `this`. + * `timing`: Timing properties to use in this animation. They match the [Web Animations Animation Effect Timing interface](https://w3c.github.io/web-animations/#the-animationeffecttiming-interface). The + properties include the following: + * `duration`: The duration of the animation in milliseconds. + * `delay`: The delay before the start of the animation in milliseconds. + * `easing`: A timing function for the animation. Matches the CSS timing function values. + +Animations may define additional configuration properties and they are listed in their documentation. + + +### Using multiple animations + +Set the animation configuration to an array to combine animations, like this: + +```js +animationConfig: { + value: function() { + return { + // fade-in-animation is run with a 50ms delay from slide-down-animation + 'entry': [{ + name: 'slide-down-animation', + node: this + }, { + name: 'fade-in-animation', + node: this, + timing: {delay: 50} + }] + } + } +} +``` + + +### Running animations encapsulated in children nodes + +You can include animations in the configuration that are encapsulated in a child element that implement `Polymer.NeonAnimatableBehavior` with the `animatable` property. + +```js +animationConfig: { + value: function() { + return { + // run fade-in-animation on this, and the entry animation on this.$.myAnimatable + 'entry': [ + {name: 'fade-in-animation', node: this}, + {animatable: this.$.myAnimatable, type: 'entry'} + ] + } + } +} +``` + + +## Page transitions + +*The artist formerly known as ``* + +The `neon-animated-pages` element manages a set of pages to switch between, and runs animations between the page transitions. It implements the `Polymer.IronSelectableBehavior` behavior. Each child node should implement `Polymer.NeonAnimatableBehavior` and define the `entry` and `exit` animations. During a page transition, the `entry` animation is run on the new page and the `exit` animation is run on the old page. + + +### Shared element animations + +Shared element animations work on multiple nodes. For example, a "hero" animation is used during a page transition to make two elements from separate pages appear to animate as a single element. Shared element animation configurations have an `id` property that identify they belong in the same animation. Elements containing shared elements also have a `sharedElements` property defines a map from `id` to element, the element involved with the animation. + +In the incoming page: + +```js +properties: { + animationConfig: { + value: function() { + return { + // the incoming page defines the 'entry' animation + 'entry': { + name: 'hero-animation', + id: 'hero', + toPage: this + } + } + } + }, + sharedElements: { + value: function() { + return { + 'hero': this.$.hero + } + } + } +} +``` + +In the outgoing page: + +```js +properties: { + animationConfig: { + value: function() { + return { + // the outgoing page defines the 'exit' animation + 'exit': { + name: 'hero-animation', + id: 'hero', + fromPage: this + } + } + } + }, + sharedElements: { + value: function() { + return { + 'hero': this.$.otherHero + } + } + } +} +``` + + +### Declarative page transitions + +For convenience, if you define the `entry-animation` and `exit-animation` attributes on ``, those animations will apply for all page transitions. + +For example: + +```js + + 1 + 2 + 3 + 4 + 5 + +``` + +The new page will slide in from the right, and the old page slide away to the left. + + +## Included animations + +Single element animations: + + * `fade-in-animation` Animates opacity from `0` to `1`; + * `fade-out-animation` Animates opacity from `1` to `0`; + * `scale-down-animation` Animates transform from `scale(1)` to `scale(0)`; + * `scale-up-animation` Animates transform from `scale(0)` to `scale(1)`; + * `slide-down-animation` Animates transform from `none` to `translateY(100%)`; + * `slide-up-animation` Animates transform from `none` to `translateY(-100%)`; + * `slide-from-top-animation` Animates transform from `translateY(-100%)` to `none`; + * `slide-from-bottom-animation` Animates transform from `translateY(100%)` to `none`; + * `slide-left-animation` Animates transform from `none` to `translateX(-100%)`; + * `slide-right-animation` Animates transform from `none` to `translateX(100%)`; + * `slide-from-left-animation` Animates transform from `translateX(-100%)` to `none`; + * `slide-from-right-animation` Animates transform from `translateX(100%)` to `none`; + * `transform-animation` Animates a custom transform. + +Note that there is a restriction that only one transform animation can be applied on the same element at a time. Use the custom `transform-animation` to combine transform properties. + +Shared element animations + + * `hero-animation` Animates an element such that it looks like it scales and transforms from another element. + * `ripple-animation` Animates an element to full screen such that it looks like it ripples from another element. + +Group animations + * `cascaded-animation` Applys an animation to an array of elements with a delay between each. + + +## Demos + + * [Grid to full screen](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/grid/index.html) + * [Animation on load](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/load/index.html) + * [List item to detail](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/list/index.html) (For narrow width) + * [Dots to squares](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/tiles/index.html) + * [Declarative](http://morethanreal.github.io/neon-animation-demo/bower_components/neon-animation/demo/declarative/index.html) diff --git a/bower_components/neon-animation/index.html b/bower_components/neon-animation/index.html new file mode 100644 index 00000000..6f5feedf --- /dev/null +++ b/bower_components/neon-animation/index.html @@ -0,0 +1,30 @@ + + + + + + + + + neon-animation + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/neon-animatable-behavior.d.ts b/bower_components/neon-animation/neon-animatable-behavior.d.ts new file mode 100644 index 00000000..c59411a0 --- /dev/null +++ b/bower_components/neon-animation/neon-animatable-behavior.d.ts @@ -0,0 +1,53 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animatable-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * `Polymer.NeonAnimatableBehavior` is implemented by elements containing animations for use with + * elements implementing `Polymer.NeonAnimationRunnerBehavior`. + */ + interface NeonAnimatableBehavior { + + /** + * Animation configuration. See README for more info. + */ + animationConfig: object|null|undefined; + + /** + * Convenience property for setting an 'entry' animation. Do not set `animationConfig.entry` + * manually if using this. The animated node is set to `this` if using this property. + */ + entryAnimation: string|null|undefined; + + /** + * Convenience property for setting an 'exit' animation. Do not set `animationConfig.exit` + * manually if using this. The animated node is set to `this` if using this property. + */ + exitAnimation: string|null|undefined; + _entryAnimationChanged(): void; + _exitAnimationChanged(): void; + _copyProperties(config1: any, config2: any): void; + _cloneConfig(config: any): any; + _getAnimationConfigRecursive(type: any, map: any, allConfigs: any): void; + + /** + * An element implementing `Polymer.NeonAnimationRunnerBehavior` calls this method to configure + * an animation with an optional type. Elements implementing `Polymer.NeonAnimatableBehavior` + * should define the property `animationConfig`, which is either a configuration object + * or a map of animation type to array of configuration objects. + */ + getAnimationConfig(type: any): any; + } + + const NeonAnimatableBehavior: object; +} diff --git a/bower_components/neon-animation/neon-animatable-behavior.html b/bower_components/neon-animation/neon-animatable-behavior.html new file mode 100644 index 00000000..f07d9c3e --- /dev/null +++ b/bower_components/neon-animation/neon-animatable-behavior.html @@ -0,0 +1,150 @@ + + + + + diff --git a/bower_components/neon-animation/neon-animatable.d.ts b/bower_components/neon-animation/neon-animatable.d.ts new file mode 100644 index 00000000..2cc07034 --- /dev/null +++ b/bower_components/neon-animation/neon-animatable.d.ts @@ -0,0 +1,32 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animatable.html + */ + +/// +/// +/// + +/** + * `` is a simple container element implementing `Polymer.NeonAnimatableBehavior`. This is a convenience element for use with ``. + * + * ``` + * + * 1 + * 2 + * + * ``` + */ +interface NeonAnimatableElement extends Polymer.Element, Polymer.NeonAnimatableBehavior, Polymer.IronResizableBehavior { +} + +interface HTMLElementTagNameMap { + "neon-animatable": NeonAnimatableElement; +} diff --git a/bower_components/neon-animation/neon-animatable.html b/bower_components/neon-animation/neon-animatable.html new file mode 100644 index 00000000..26566fc9 --- /dev/null +++ b/bower_components/neon-animation/neon-animatable.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/neon-animated-pages.d.ts b/bower_components/neon-animation/neon-animated-pages.d.ts new file mode 100644 index 00000000..e164ee90 --- /dev/null +++ b/bower_components/neon-animation/neon-animated-pages.d.ts @@ -0,0 +1,38 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animated-pages.html + */ + +/// +/// +/// +/// + +/** + * Material design: [Meaningful transitions](https://www.google.com/design/spec/animation/meaningful-transitions.html) + * + * `neon-animated-pages` manages a set of pages and runs an animation when switching between them. Its + * children pages should implement `Polymer.NeonAnimatableBehavior` and define `entry` and `exit` + * animations to be run when switching to or switching out of the page. + */ +interface NeonAnimatedPagesElement extends Polymer.Element, Polymer.IronResizableBehavior, Polymer.IronSelectableBehavior, Polymer.NeonAnimationRunnerBehavior { + activateEvent: string|null|undefined; + + /** + * if true, the initial page selection will also be animated according to its animation config. + */ + animateInitialSelection: boolean|null|undefined; + _onIronSelect(event: any): void; + _completeSelectedChanged(oldPage?: object|null, selectedPage?: object|null): void; + _onNeonAnimationFinish(event: any): void; + _notifyPageResize(): void; +} + +interface HTMLElementTagNameMap { + "neon-animated-pages": NeonAnimatedPagesElement; +} diff --git a/bower_components/neon-animation/neon-animated-pages.html b/bower_components/neon-animation/neon-animated-pages.html new file mode 100644 index 00000000..ddb4d707 --- /dev/null +++ b/bower_components/neon-animation/neon-animated-pages.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/neon-animation-behavior.d.ts b/bower_components/neon-animation/neon-animation-behavior.d.ts new file mode 100644 index 00000000..153f3145 --- /dev/null +++ b/bower_components/neon-animation/neon-animation-behavior.d.ts @@ -0,0 +1,50 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animation-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * Use `Polymer.NeonAnimationBehavior` to implement an animation. + */ + interface NeonAnimationBehavior { + + /** + * Defines the animation timing. + */ + animationTiming: object|null|undefined; + + /** + * Can be used to determine that elements implement this behavior. + * + */ + isNeonAnimation: boolean; + created(): void; + + /** + * Returns the animation timing by mixing in properties from `config` to the defaults defined + * by the animation. + */ + timingFromConfig(config: any): any; + + /** + * Sets `transform` and `transformOrigin` properties along with the prefixed versions. + */ + setPrefixedProperty(node: any, property: any, value: any): void; + + /** + * Called when the animation finishes. + */ + complete(config: any): void; + } + + const NeonAnimationBehavior: object; +} diff --git a/bower_components/neon-animation/neon-animation-behavior.html b/bower_components/neon-animation/neon-animation-behavior.html new file mode 100644 index 00000000..e51727e5 --- /dev/null +++ b/bower_components/neon-animation/neon-animation-behavior.html @@ -0,0 +1,92 @@ + + + + + diff --git a/bower_components/neon-animation/neon-animation-runner-behavior.d.ts b/bower_components/neon-animation/neon-animation-runner-behavior.d.ts new file mode 100644 index 00000000..162b649c --- /dev/null +++ b/bower_components/neon-animation/neon-animation-runner-behavior.d.ts @@ -0,0 +1,36 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animation-runner-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * `Polymer.NeonAnimationRunnerBehavior` adds a method to run animations. + */ + interface NeonAnimationRunnerBehavior extends Polymer.NeonAnimatableBehavior { + _configureAnimations(configs: any): any; + _shouldComplete(activeEntries: any): any; + _complete(activeEntries: any): void; + + /** + * Plays an animation with an optional `type`. + */ + playAnimation(type?: string, cookie?: object): void; + + /** + * Cancels the currently running animations. + */ + cancelAnimation(): void; + } + + const NeonAnimationRunnerBehavior: object; +} diff --git a/bower_components/neon-animation/neon-animation-runner-behavior.html b/bower_components/neon-animation/neon-animation-runner-behavior.html new file mode 100644 index 00000000..425f8b13 --- /dev/null +++ b/bower_components/neon-animation/neon-animation-runner-behavior.html @@ -0,0 +1,155 @@ + + + + + diff --git a/bower_components/neon-animation/neon-animation.d.ts b/bower_components/neon-animation/neon-animation.d.ts new file mode 100644 index 00000000..7b02b1da --- /dev/null +++ b/bower_components/neon-animation/neon-animation.d.ts @@ -0,0 +1,19 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animation.html + */ + +/// +/// +/// +/// +/// +/// +/// +/// + diff --git a/bower_components/neon-animation/neon-animation.html b/bower_components/neon-animation/neon-animation.html new file mode 100644 index 00000000..da645048 --- /dev/null +++ b/bower_components/neon-animation/neon-animation.html @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/bower_components/neon-animation/neon-animations.d.ts b/bower_components/neon-animation/neon-animations.d.ts new file mode 100644 index 00000000..0bc3ec3c --- /dev/null +++ b/bower_components/neon-animation/neon-animations.d.ts @@ -0,0 +1,30 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-animations.html + */ + +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + diff --git a/bower_components/neon-animation/neon-animations.html b/bower_components/neon-animation/neon-animations.html new file mode 100644 index 00000000..67c4df4c --- /dev/null +++ b/bower_components/neon-animation/neon-animations.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/neon-shared-element-animatable-behavior.d.ts b/bower_components/neon-animation/neon-shared-element-animatable-behavior.d.ts new file mode 100644 index 00000000..5f9ca6ed --- /dev/null +++ b/bower_components/neon-animation/neon-shared-element-animatable-behavior.d.ts @@ -0,0 +1,29 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-shared-element-animatable-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.NeonSharedElementAnimatableBehavior` to implement elements containing shared element + * animations. + */ + interface NeonSharedElementAnimatableBehavior extends Polymer.NeonAnimatableBehavior { + + /** + * A map of shared element id to node. + */ + sharedElements: object|null|undefined; + } + + const NeonSharedElementAnimatableBehavior: object; +} diff --git a/bower_components/neon-animation/neon-shared-element-animatable-behavior.html b/bower_components/neon-animation/neon-shared-element-animatable-behavior.html new file mode 100644 index 00000000..e63173d3 --- /dev/null +++ b/bower_components/neon-animation/neon-shared-element-animatable-behavior.html @@ -0,0 +1,43 @@ + + + + + + diff --git a/bower_components/neon-animation/neon-shared-element-animation-behavior.d.ts b/bower_components/neon-animation/neon-shared-element-animation-behavior.d.ts new file mode 100644 index 00000000..607ab8e2 --- /dev/null +++ b/bower_components/neon-animation/neon-shared-element-animation-behavior.d.ts @@ -0,0 +1,33 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * neon-shared-element-animation-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.NeonSharedElementAnimationBehavior` to implement shared element animations. + */ + interface NeonSharedElementAnimationBehavior extends Polymer.NeonAnimationBehavior { + + /** + * Cached copy of shared elements. + */ + sharedElements: object|null|undefined; + + /** + * Finds shared elements based on `config`. + */ + findSharedElements(config: any): any; + } + + const NeonSharedElementAnimationBehavior: object; +} diff --git a/bower_components/neon-animation/neon-shared-element-animation-behavior.html b/bower_components/neon-animation/neon-shared-element-animation-behavior.html new file mode 100644 index 00000000..d8f2bdd7 --- /dev/null +++ b/bower_components/neon-animation/neon-shared-element-animation-behavior.html @@ -0,0 +1,72 @@ + + + + + + diff --git a/bower_components/neon-animation/package-lock.json b/bower_components/neon-animation/package-lock.json new file mode 100644 index 00000000..77dd6c5e --- /dev/null +++ b/bower_components/neon-animation/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/neon-animation", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/neon-animation/package.json b/bower_components/neon-animation/package.json new file mode 100644 index 00000000..2dd963b3 --- /dev/null +++ b/bower_components/neon-animation/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/neon-animation", + "private": true, + "description": "A system for animating Polymer-based web components", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/neon-animation" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/neon-animation/test/index.html b/bower_components/neon-animation/test/index.html new file mode 100644 index 00000000..a2fcb70d --- /dev/null +++ b/bower_components/neon-animation/test/index.html @@ -0,0 +1,28 @@ + + + + neon-animation tests + + + + + + + diff --git a/bower_components/neon-animation/test/neon-animated-pages-descendant-selection.html b/bower_components/neon-animation/test/neon-animated-pages-descendant-selection.html new file mode 100644 index 00000000..c4babecb --- /dev/null +++ b/bower_components/neon-animation/test/neon-animated-pages-descendant-selection.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/test/neon-animated-pages-lazy.html b/bower_components/neon-animation/test/neon-animated-pages-lazy.html new file mode 100644 index 00000000..3d5c6a3f --- /dev/null +++ b/bower_components/neon-animation/test/neon-animated-pages-lazy.html @@ -0,0 +1,74 @@ + + + + + + neon-animated-pages tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/test/neon-animated-pages.html b/bower_components/neon-animation/test/neon-animated-pages.html new file mode 100644 index 00000000..aba30843 --- /dev/null +++ b/bower_components/neon-animation/test/neon-animated-pages.html @@ -0,0 +1,103 @@ + + + + + + neon-animated-pages tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/test/test-resizable-pages.html b/bower_components/neon-animation/test/test-resizable-pages.html new file mode 100644 index 00000000..266f10e0 --- /dev/null +++ b/bower_components/neon-animation/test/test-resizable-pages.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/neon-animation/web-animations.d.ts b/bower_components/neon-animation/web-animations.d.ts new file mode 100644 index 00000000..c2f6397e --- /dev/null +++ b/bower_components/neon-animation/web-animations.d.ts @@ -0,0 +1,10 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * web-animations.html + */ + diff --git a/bower_components/neon-animation/web-animations.html b/bower_components/neon-animation/web-animations.html new file mode 100644 index 00000000..c8718540 --- /dev/null +++ b/bower_components/neon-animation/web-animations.html @@ -0,0 +1,11 @@ + + + diff --git a/bower_components/paper-badge/.bower.json b/bower_components/paper-badge/.bower.json new file mode 100644 index 00000000..dd9b7d8b --- /dev/null +++ b/bower_components/paper-badge/.bower.json @@ -0,0 +1,71 @@ +{ + "name": "paper-badge", + "version": "2.1.0", + "description": "Material design status message for elements", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "badge", + "notification" + ], + "main": "paper-badge.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-badge.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-badge", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "cdd2b90f046807ffdccb0295a3e4ac58e074f351" + }, + "_source": "https://github.com/PolymerElements/paper-badge.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-badge" +} \ No newline at end of file diff --git a/bower_components/paper-badge/.github/CODEOWNERS b/bower_components/paper-badge/.github/CODEOWNERS new file mode 100644 index 00000000..9ef9eb64 --- /dev/null +++ b/bower_components/paper-badge/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @e111077 +/.travis.yml @azakus diff --git a/bower_components/paper-badge/.github/ISSUE_TEMPLATE.md b/bower_components/paper-badge/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0f8b7470 --- /dev/null +++ b/bower_components/paper-badge/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-badge/.gitignore b/bower_components/paper-badge/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-badge/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-badge/.travis.yml b/bower_components/paper-badge/.travis.yml new file mode 100644 index 00000000..87aadd49 --- /dev/null +++ b/bower_components/paper-badge/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + P5amxIreBifPK/n9Dtc2xP71a3D+RYr6fQ6LBA/04IWlEnGrCDk3wmxLrGZ+4bxBBlh3JBAV/8JaqP+1gtvyDTsKT0f2M86ZooJ9lMmdhi4dM38bnSk7tmRmH4ye413DdWjbdLyemaQavEHM0X99CCpuhYX0SFYEPziyHAqx4OYkj4v2sclcnU0RL4wEMXO+Wm8sTv79FtwIb7MI+11rhi7/lZs9/CRqqstAes+6/Zj0YOJE6ao1hWH273pEkAGa4qwwun3o/hgFF6jqGS+xCcR2J4sVWjRs4BrrKm0P+3gKynzjxjJlItbr4c6v2rbr5+WKbQzSMhFyNwymxlLcTTK7KvAEnZgysGnu5zyCQQzqDUz/nzK69Hx1KZMvoCqg2rzAc4y2Ms76pnCa11H2/1w0StJuy9xO8GktQLSa/F26BrgeHoL8cENVbXoVJ4yGxqCnRwPCjM182MR8MbmAFsyAajDtQQZaF0ViQIJMXKFgkrBYfxS4AFQteDGsUFvrTSN6vLuXvrqPIYhVJOSOYL2JQkRFYhrcr5KogzmRhKPSvrxoDNajlyOcINgnYhIz3ufs3qIXQRDHvc+dHzgFeDRfcVvAOfCTuBaV91wOSxOd7GZ5FyjuYjRf4J8DWCXbXg0SrUMSnP74vLFxaS+SbZhCWxzOx+3XBWC/g9PodL8= + - secure: >- + MIBN8tQGl00/bNAY662LsjTUD8QGeKMHvX8VBR7BA4pl20pO6QgylERcUb+VReP19mfomL74viYhBxEJBrEz31u3/Z53XCYe3OqvgfoRzY2S/DNIaJ5sK2f+3T61vfT1sKsF8BScWvlznYL5y1x/CJv3OzPA1+xV/wD8YzGAuP4jZzgLtHSPLeXo3kffbs/7Hd4weGQeYbPLnSGNahvDJE5b0qgHf52XDe3Q2E6Cf0gxwHh/zfv6cnTTVP+1PghQHyIKD6MoAYJGecqG9flJ+agB6Nsijy4QgSEGoRz6S0q2WRPGRYdxE/i8WpGyesq5pFxIS2Gx1cQ05A7qB9tWGXfUuUxzGIdYbBDK4MP05WIbQpP6R5/kXPfjm2RECquKmdkM8wWUJ7mI0jel1AE7hai3nxgMq5flB8qfk9S6qH4/LtrWCyA2me2WVo3lBUFQmZBNqlUeYO4zCwuzk7euAOtP5KiOPP/c+jStNf/PsPlkzMnjPOinHf9VaMhfPf0xXHyHV/XLbkZtUbbUvB9iQr/7ET+MVrLF+TfuWZ8SIRCNMP0Mzj9tHodNIcgoROUJubkfdyv/mx8KaZyYzv2i91a6Por5ndb875XQOsDN3XqGBuTpKVVK+mfAYhaB0eNNdiusESzbwMDHUC1J6zQ003TW1jHqHVRWxpMaS0cRJ6E= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-badge/CONTRIBUTING.md b/bower_components/paper-badge/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-badge/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-badge/README.md b/bower_components/paper-badge/README.md new file mode 100644 index 00000000..2107e07e --- /dev/null +++ b/bower_components/paper-badge/README.md @@ -0,0 +1,69 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/paper-badge.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-badge) + +_[Demo and API docs](https://elements.polymer-project.org/elements/paper-badge)_ + +## Changes in 2.0 +* Target updates target in an animation frame rather than 1 ms. + +## <paper-badge> + +`` is a circular text badge that is displayed on the top right +corner of an element, representing a status or a notification. It will badge +the anchor element specified in the `for` attribute, or, if that doesn't exist, +centered to the parent node containing it. + +Badges can also contain an icon by adding the `icon` attribute and setting +it to the id of the desired icon. Please note that you should still set the +`label` attribute in order to keep the element accessible. Also note that you will need to import +the `iron-iconset` that includes the icons you want to use. See [iron-icon](../iron-icon) +for more information on how to import and use icon sets. + +Example: + +```html +
      + Inbox + +
      + +
      + Status + +
      + +
      + + +
      +``` + +### Styling + +The following custom properties and mixins are available for styling: + +| Custom property | Description | Default | +| --- | --- | --- | +| `--paper-badge-background` | The background color of the badge | `--accent-color` | +| `--paper-badge-opacity` | The opacity of the badge | `1.0` | +| `--paper-badge-text-color` | The color of the badge text | `white` | +| `--paper-badge-width` | The width of the badge circle | `20px` | +| `--paper-badge-height` | The height of the badge circle | `20px` | +| `--paper-badge-margin-left` | Optional spacing added to the left of the badge. | `0px` | +| `--paper-badge-margin-bottom` | Optional spacing added to the bottom of the badge. | `0px` | +| `--paper-badge` | Mixin applied to the badge | `{}` | + + diff --git a/bower_components/paper-badge/bower.json b/bower_components/paper-badge/bower.json new file mode 100644 index 00000000..6330e8b4 --- /dev/null +++ b/bower_components/paper-badge/bower.json @@ -0,0 +1,62 @@ +{ + "name": "paper-badge", + "version": "2.0.0", + "description": "Material design status message for elements", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "badge", + "notification" + ], + "main": "paper-badge.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-badge.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-badge", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-badge/demo/index.html b/bower_components/paper-badge/demo/index.html new file mode 100644 index 00000000..a0002c02 --- /dev/null +++ b/bower_components/paper-badge/demo/index.html @@ -0,0 +1,119 @@ + + + + + paper-badge demo + + + + + + + + + + + + + + + + + + + + + +
      +

      Badges can be applied to specific elements

      + + + + +

      Badges can be applied to direct siblings

      + + + + +

      Badges can be customized using custom properties

      + + + +
      + + diff --git a/bower_components/paper-badge/demo/test-button.html b/bower_components/paper-badge/demo/test-button.html new file mode 100644 index 00000000..bd5bb9ec --- /dev/null +++ b/bower_components/paper-badge/demo/test-button.html @@ -0,0 +1,44 @@ + + + + + + + + + + + + + diff --git a/bower_components/paper-badge/index.html b/bower_components/paper-badge/index.html new file mode 100644 index 00000000..df666ea5 --- /dev/null +++ b/bower_components/paper-badge/index.html @@ -0,0 +1,28 @@ + + + + + + + + + paper-badge + + + + + + + + + + + diff --git a/bower_components/paper-badge/package-lock.json b/bower_components/paper-badge/package-lock.json new file mode 100644 index 00000000..06409e06 --- /dev/null +++ b/bower_components/paper-badge/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/paper-badge", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-badge/package.json b/bower_components/paper-badge/package.json new file mode 100644 index 00000000..ec8eee89 --- /dev/null +++ b/bower_components/paper-badge/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/paper-badge", + "private": true, + "description": "Material design status message for elements", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-badge.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/paper-badge/paper-badge.d.ts b/bower_components/paper-badge/paper-badge.d.ts new file mode 100644 index 00000000..f7d0c80c --- /dev/null +++ b/bower_components/paper-badge/paper-badge.d.ts @@ -0,0 +1,115 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-badge.html + */ + +/// +/// +/// +/// +/// +/// + +/** + * `` is a circular text badge that is displayed on the top right + * corner of an element, representing a status or a notification. It will badge + * the anchor element specified in the `for` attribute, or, if that doesn't exist, + * centered to the parent node containing it. + * + * Badges can also contain an icon by adding the `icon` attribute and setting + * it to the id of the desired icon. Please note that you should still set the + * `label` attribute in order to keep the element accessible. Also note that you will need to import + * the `iron-iconset` that includes the icons you want to use. See [iron-icon](../iron-icon) + * for more information on how to import and use icon sets. + * + * Example: + * + *
      + * Inbox + * + *
      + * + *
      + * Status + * + *
      + * + *
      + * + * + *
      + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-badge-background` | The background color of the badge | `--accent-color` + * `--paper-badge-opacity` | The opacity of the badge | `1.0` + * `--paper-badge-text-color` | The color of the badge text | `white` + * `--paper-badge-width` | The width of the badge circle | `20px` + * `--paper-badge-height` | The height of the badge circle | `20px` + * `--paper-badge-margin-left` | Optional spacing added to the left of the badge. | `0px` + * `--paper-badge-margin-bottom` | Optional spacing added to the bottom of the badge. | `0px` + * `--paper-badge` | Mixin applied to the badge | `{}` + */ +interface PaperBadgeElement extends Polymer.Element, Polymer.IronResizableBehavior { + + /** + * The id of the element that the badge is anchored to. This element + * must be a sibling of the badge. + */ + for: string|null|undefined; + + /** + * The label displayed in the badge. The label is centered, and ideally + * should have very few characters. + */ + label: string|null|undefined; + + /** + * An iron-icon ID. When given, the badge content will use an + * `` element displaying the given icon ID rather than the + * label text. However, the label text will still be used for + * accessibility purposes. + */ + icon: string|null|undefined; + _boundNotifyResize: Function|null|undefined; + _boundUpdateTarget: Function|null|undefined; + + /** + * Returns the target element that this badge is anchored to. It is + * either the element given by the `for` attribute, or the immediate parent + * of the badge. + * + */ + readonly target: any; + attached(): void; + attributeChanged(name: any): void; + _forChanged(): void; + _labelChanged(): void; + _updateTarget(): void; + _computeIsIconBadge(icon: any): any; + + /** + * Repositions the badge relative to its anchor element. This is called + * automatically when the badge is attached or an `iron-resize` event is + * fired (for exmaple if the window has resized, or your target is a + * custom element that implements IronResizableBehavior). + * + * You should call this in all other cases when the achor's position + * might have changed (for example, if it's visibility has changed, or + * you've manually done a page re-layout). + */ + updatePosition(): void; +} + +interface HTMLElementTagNameMap { + "paper-badge": PaperBadgeElement; +} diff --git a/bower_components/paper-badge/paper-badge.html b/bower_components/paper-badge/paper-badge.html new file mode 100644 index 00000000..20fe17f7 --- /dev/null +++ b/bower_components/paper-badge/paper-badge.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-badge/test/basic.html b/bower_components/paper-badge/test/basic.html new file mode 100644 index 00000000..3ab071be --- /dev/null +++ b/bower_components/paper-badge/test/basic.html @@ -0,0 +1,300 @@ + + + + + + paper-badge tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-badge/test/index.html b/bower_components/paper-badge/test/index.html new file mode 100644 index 00000000..8235e37f --- /dev/null +++ b/bower_components/paper-badge/test/index.html @@ -0,0 +1,24 @@ + + + + paper-badge tests + + + + + + + diff --git a/bower_components/paper-badge/test/test-button.html b/bower_components/paper-badge/test/test-button.html new file mode 100644 index 00000000..514b1847 --- /dev/null +++ b/bower_components/paper-badge/test/test-button.html @@ -0,0 +1,36 @@ + + + + + + + + + + diff --git a/bower_components/paper-behaviors/.bower.json b/bower_components/paper-behaviors/.bower.json new file mode 100644 index 00000000..a2f8ef18 --- /dev/null +++ b/bower_components/paper-behaviors/.bower.json @@ -0,0 +1,75 @@ +{ + "name": "paper-behaviors", + "version": "2.1.1", + "description": "Common behaviors across the paper elements", + "authors": [ + "The Polymer Authors" + ], + "main": [ + "paper-button-behavior.html", + "paper-checked-element-behavior.html", + "paper-inky-focus-behavior.html" + ], + "keywords": [ + "web-components", + "web-component", + "polymer", + "paper", + "behavior" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-behaviors" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-behaviors", + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#1 - 2", + "paper-ripple": "PolymerElements/paper-ripple#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^1.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "b955fec09e39c888b9afb932e6ee4bc4a1260f40" + }, + "_source": "https://github.com/PolymerElements/paper-behaviors.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/paper-behaviors" +} \ No newline at end of file diff --git a/bower_components/paper-behaviors/.github/CODEOWNERS b/bower_components/paper-behaviors/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/paper-behaviors/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md b/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..0a145b76 --- /dev/null +++ b/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-behaviors/.gitignore b/bower_components/paper-behaviors/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-behaviors/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-behaviors/.travis.yml b/bower_components/paper-behaviors/.travis.yml new file mode 100644 index 00000000..9b65e9c7 --- /dev/null +++ b/bower_components/paper-behaviors/.travis.yml @@ -0,0 +1,35 @@ +language: node_js +sudo: required +before_script: + - npm install -g bower polymer-cli@next + - polymer install --variants + - sudo mv /usr/bin/google-chrome /usr/bin/google-chrome-old + - sudo mv /usr/bin/google-chrome-beta /usr/bin/google-chrome + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + TYkyKHfqK31bPGX+x388nfvBWtoGhD7lwYYLdunZi2pwvR2N3ngzblklwK/ADgYVDC0y+lZaJsrODvQW2cUxVdQP8p+DifXoOig5b8S2H7HFFFf83gaXv0SJ50rIaKLQmXfBdI0ICFzeQOeJ9TlKvtF3/yn/LDpYftuzgbXIyp4= + - secure: >- + eUlJabqBW3P+MRieHvRcr446jhpV2YYRfZasOh3zh2vkAVsi5R5mPJXVBwk6xP4tdNPbRo0M3boKnMHjoK8AgFolxQwXpVaoOt/oiFUsBFIUNcwKnSdfnadQa6ON5VoDmPd9UhDwES/gq7i906XkV/1jwRKKhPkx1DCyCBfuTvM= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-beta + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-behaviors/CONTRIBUTING.md b/bower_components/paper-behaviors/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-behaviors/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-behaviors/README.md b/bower_components/paper-behaviors/README.md new file mode 100644 index 00000000..43475db7 --- /dev/null +++ b/bower_components/paper-behaviors/README.md @@ -0,0 +1,44 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/paper-behaviors.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-behaviors) + +_[Demo and API docs](https://elements.polymer-project.org/elements/paper-behaviors)_ + + + + +##Polymer.PaperCheckedElementBehavior + +Use `Polymer.PaperCheckedElementBehavior` to implement a custom element +that has a `checked` property similar to `Polymer.IronCheckedElementBehavior` +and is compatible with having a ripple effect. + + + +##Polymer.PaperInkyFocusBehavior + +`Polymer.PaperInkyFocusBehavior` implements a ripple when the element has keyboard focus. + + + +##Polymer.PaperRippleBehavior + +`Polymer.PaperRippleBehavior` dynamically implements a ripple +when the element has focus via pointer or keyboard. + +NOTE: This behavior is intended to be used in conjunction with and after +`Polymer.IronButtonState` and `Polymer.IronControlState`. + + diff --git a/bower_components/paper-behaviors/bower.json b/bower_components/paper-behaviors/bower.json new file mode 100644 index 00000000..e6437e2b --- /dev/null +++ b/bower_components/paper-behaviors/bower.json @@ -0,0 +1,66 @@ +{ + "name": "paper-behaviors", + "version": "2.1.1", + "description": "Common behaviors across the paper elements", + "authors": [ + "The Polymer Authors" + ], + "main": [ + "paper-button-behavior.html", + "paper-checked-element-behavior.html", + "paper-inky-focus-behavior.html" + ], + "keywords": [ + "web-components", + "web-component", + "polymer", + "paper", + "behavior" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-behaviors" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-behaviors", + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#1 - 2", + "paper-ripple": "PolymerElements/paper-ripple#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#1 - 2", + "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^1.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-behaviors/demo/index.html b/bower_components/paper-behaviors/demo/index.html new file mode 100644 index 00000000..0303fefc --- /dev/null +++ b/bower_components/paper-behaviors/demo/index.html @@ -0,0 +1,45 @@ + + + + + + + + + paper-behaviors demo + + + + + + + + + +

      Normal

      + Hello World + +

      Toggles

      + Hello World + +

      Disabled

      + Hello World + +

      Radio button with focus state

      + + + diff --git a/bower_components/paper-behaviors/demo/paper-button.html b/bower_components/paper-behaviors/demo/paper-button.html new file mode 100644 index 00000000..f4d7fe02 --- /dev/null +++ b/bower_components/paper-behaviors/demo/paper-button.html @@ -0,0 +1,63 @@ + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/demo/paper-radio-button.html b/bower_components/paper-behaviors/demo/paper-radio-button.html new file mode 100644 index 00000000..68c27dcf --- /dev/null +++ b/bower_components/paper-behaviors/demo/paper-radio-button.html @@ -0,0 +1,110 @@ + + + + + + + + + + diff --git a/bower_components/paper-behaviors/index.html b/bower_components/paper-behaviors/index.html new file mode 100644 index 00000000..37184eaa --- /dev/null +++ b/bower_components/paper-behaviors/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/package-lock.json b/bower_components/paper-behaviors/package-lock.json new file mode 100644 index 00000000..bbedc26a --- /dev/null +++ b/bower_components/paper-behaviors/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/paper-behaviors", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.4" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", + "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-behaviors/package.json b/bower_components/paper-behaviors/package.json new file mode 100644 index 00000000..f4082af8 --- /dev/null +++ b/bower_components/paper-behaviors/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/paper-behaviors", + "private": true, + "description": "Common behaviors across the paper elements", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-behaviors" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/paper-behaviors/paper-button-behavior.d.ts b/bower_components/paper-behaviors/paper-button-behavior.d.ts new file mode 100644 index 00000000..d0ed2566 --- /dev/null +++ b/bower_components/paper-behaviors/paper-button-behavior.d.ts @@ -0,0 +1,47 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-button-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + interface PaperButtonBehavior extends Polymer.IronButtonState, Polymer.IronControlState, Polymer.PaperRippleBehavior { + + /** + * The z-depth of this element, from 0-5. Setting to 0 will remove the + * shadow, and each increasing number greater than 0 will be "deeper" + * than the last. + */ + readonly elevation: number|null|undefined; + hostAttributes: object|null; + + /** + * In addition to `IronButtonState` behavior, when space key goes down, + * create a ripple down effect. + * + * @param event . + */ + _spaceKeyDownHandler(event: KeyboardEvent): void; + + /** + * In addition to `IronButtonState` behavior, when space key goes up, + * create a ripple up effect. + * + * @param event . + */ + _spaceKeyUpHandler(event: KeyboardEvent): void; + _calculateElevation(): void; + _computeKeyboardClass(receivedFocusFromKeyboard: any): void; + } + + const PaperButtonBehavior: object; +} diff --git a/bower_components/paper-behaviors/paper-button-behavior.html b/bower_components/paper-behaviors/paper-button-behavior.html new file mode 100644 index 00000000..63e07aec --- /dev/null +++ b/bower_components/paper-behaviors/paper-button-behavior.html @@ -0,0 +1,89 @@ + + + + + + + diff --git a/bower_components/paper-behaviors/paper-checked-element-behavior.d.ts b/bower_components/paper-behaviors/paper-checked-element-behavior.d.ts new file mode 100644 index 00000000..1c28837b --- /dev/null +++ b/bower_components/paper-behaviors/paper-checked-element-behavior.d.ts @@ -0,0 +1,36 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-checked-element-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.PaperCheckedElementBehavior` to implement a custom element + * that has a `checked` property similar to `Polymer.IronCheckedElementBehavior` + * and is compatible with having a ripple effect. + */ + interface PaperCheckedElementBehavior extends Polymer.PaperInkyFocusBehavior, Polymer.IronCheckedElementBehavior { + + /** + * Synchronizes the element's `active` and `checked` state. + */ + _buttonStateChanged(): void; + + /** + * Synchronizes the element's checked state with its ripple effect. + */ + _checkedChanged(): void; + } + + const PaperCheckedElementBehavior: object; +} diff --git a/bower_components/paper-behaviors/paper-checked-element-behavior.html b/bower_components/paper-behaviors/paper-checked-element-behavior.html new file mode 100644 index 00000000..79812a66 --- /dev/null +++ b/bower_components/paper-behaviors/paper-checked-element-behavior.html @@ -0,0 +1,57 @@ + + + + + + + diff --git a/bower_components/paper-behaviors/paper-inky-focus-behavior.d.ts b/bower_components/paper-behaviors/paper-inky-focus-behavior.d.ts new file mode 100644 index 00000000..b674ce86 --- /dev/null +++ b/bower_components/paper-behaviors/paper-inky-focus-behavior.d.ts @@ -0,0 +1,27 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-inky-focus-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * `Polymer.PaperInkyFocusBehavior` implements a ripple when the element has + * keyboard focus. + */ + interface PaperInkyFocusBehavior extends Polymer.IronButtonState, Polymer.IronControlState, Polymer.PaperRippleBehavior { + _createRipple(): any; + _focusedChanged(receivedFocusFromKeyboard: any): void; + } + + const PaperInkyFocusBehavior: object; +} diff --git a/bower_components/paper-behaviors/paper-inky-focus-behavior.html b/bower_components/paper-behaviors/paper-inky-focus-behavior.html new file mode 100644 index 00000000..bddefd4e --- /dev/null +++ b/bower_components/paper-behaviors/paper-inky-focus-behavior.html @@ -0,0 +1,50 @@ + + + + + + + diff --git a/bower_components/paper-behaviors/paper-ripple-behavior.d.ts b/bower_components/paper-behaviors/paper-ripple-behavior.d.ts new file mode 100644 index 00000000..ede7a9f2 --- /dev/null +++ b/bower_components/paper-behaviors/paper-ripple-behavior.d.ts @@ -0,0 +1,78 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-ripple-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * `Polymer.PaperRippleBehavior` dynamically implements a ripple + * when the element has focus via pointer or keyboard. + * + * NOTE: This behavior is intended to be used in conjunction with and after + * `Polymer.IronButtonState` and `Polymer.IronControlState`. + */ + interface PaperRippleBehavior { + + /** + * If true, the element will not produce a ripple effect when interacted + * with via the pointer. + */ + noink: boolean|null|undefined; + _rippleContainer: Element|null|undefined; + + /** + * Ensures a `` element is available when the element is + * focused. + */ + _buttonStateChanged(): void; + + /** + * In addition to the functionality provided in `IronButtonState`, ensures + * a ripple effect is created when the element is in a `pressed` state. + */ + _downHandler(event: any): void; + + /** + * Ensures this element contains a ripple effect. For startup efficiency + * the ripple effect is dynamically on demand when needed. + * + * @param optTriggeringEvent (optional) event that triggered the + * ripple. + */ + ensureRipple(optTriggeringEvent?: Event): void; + + /** + * Returns the `` element used by this element to create + * ripple effects. The element's ripple is created on demand, when + * necessary, and calling this method will force the + * ripple to be created. + */ + getRipple(): any; + + /** + * Returns true if this element currently contains a ripple effect. + */ + hasRipple(): boolean; + + /** + * Create the element's ripple effect via creating a ``. + * Override this method to customize the ripple element. + * + * @returns Returns a `` element. + */ + _createRipple(): PaperRippleElement; + _noinkChanged(noink: any): void; + } + + const PaperRippleBehavior: object; +} diff --git a/bower_components/paper-behaviors/paper-ripple-behavior.html b/bower_components/paper-behaviors/paper-ripple-behavior.html new file mode 100644 index 00000000..30ff8a75 --- /dev/null +++ b/bower_components/paper-behaviors/paper-ripple-behavior.html @@ -0,0 +1,125 @@ + + + + + + + diff --git a/bower_components/paper-behaviors/test/index.html b/bower_components/paper-behaviors/test/index.html new file mode 100644 index 00000000..b16a9b40 --- /dev/null +++ b/bower_components/paper-behaviors/test/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/paper-button-behavior.html b/bower_components/paper-behaviors/test/paper-button-behavior.html new file mode 100644 index 00000000..ff859252 --- /dev/null +++ b/bower_components/paper-behaviors/test/paper-button-behavior.html @@ -0,0 +1,113 @@ + + + + + + paper-button-behavior + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/paper-checked-element-behavior.html b/bower_components/paper-behaviors/test/paper-checked-element-behavior.html new file mode 100644 index 00000000..55787bdb --- /dev/null +++ b/bower_components/paper-behaviors/test/paper-checked-element-behavior.html @@ -0,0 +1,93 @@ + + + + + + paper-checked-element-behavior + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/paper-radio-button-behavior.html b/bower_components/paper-behaviors/test/paper-radio-button-behavior.html new file mode 100644 index 00000000..db218b20 --- /dev/null +++ b/bower_components/paper-behaviors/test/paper-radio-button-behavior.html @@ -0,0 +1,57 @@ + + + + + + paper-radio-button-behavior + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/paper-ripple-behavior.html b/bower_components/paper-behaviors/test/paper-ripple-behavior.html new file mode 100644 index 00000000..9bd67367 --- /dev/null +++ b/bower_components/paper-behaviors/test/paper-ripple-behavior.html @@ -0,0 +1,354 @@ + + + + + + paper-ripple-behavior + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/shadowed-ripple.html b/bower_components/paper-behaviors/test/shadowed-ripple.html new file mode 100644 index 00000000..dcf46385 --- /dev/null +++ b/bower_components/paper-behaviors/test/shadowed-ripple.html @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/test-button.html b/bower_components/paper-behaviors/test/test-button.html new file mode 100644 index 00000000..3d358d94 --- /dev/null +++ b/bower_components/paper-behaviors/test/test-button.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/bower_components/paper-behaviors/test/test-radio-button.html b/bower_components/paper-behaviors/test/test-radio-button.html new file mode 100644 index 00000000..2af16b1b --- /dev/null +++ b/bower_components/paper-behaviors/test/test-radio-button.html @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/bower_components/paper-button/.bower.json b/bower_components/paper-button/.bower.json new file mode 100644 index 00000000..fe429293 --- /dev/null +++ b/bower_components/paper-button/.bower.json @@ -0,0 +1,75 @@ +{ + "name": "paper-button", + "version": "2.1.1", + "description": "Material design button", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer", + "paper", + "button" + ], + "main": "paper-button.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-button.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-button", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "82673f1f33a999eb0cd6d19bfceedb048312ebe6" + }, + "_source": "https://github.com/PolymerElements/paper-button.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-button" +} \ No newline at end of file diff --git a/bower_components/paper-button/.github/CODEOWNERS b/bower_components/paper-button/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/paper-button/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/paper-button/.github/ISSUE_TEMPLATE.md b/bower_components/paper-button/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..48a50e98 --- /dev/null +++ b/bower_components/paper-button/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-button/.gitignore b/bower_components/paper-button/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-button/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-button/.travis.yml b/bower_components/paper-button/.travis.yml new file mode 100644 index 00000000..807e8377 --- /dev/null +++ b/bower_components/paper-button/.travis.yml @@ -0,0 +1,33 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + YhRb8f1f4y3Rjs5wnp4sCzIcEcL07HOBoJcEp6U/KVgIIk/sBxkxMVmZsoUeABrNbKcdE6Gn6OS2K1lFq4VThKppJ0yjvESa1p0FjmQ0Nf1xCYxc46n936xj87khZy3rrTGHxwcOY5vAa5mvNzXI4BYxjmSjmqRsQwsJBsJHWVw= + - secure: >- + eQjSTRxQKF5vyRa6yK2o+j5xWK480hHCKDh7RJQISEVhyzAaCzPZNmWf2pmaDj+ZoZZrahBcoRwOZAiVdHDaKQ+VLHbEECzV3OVV32/9DHi608BPCBdxVR2MDTtZVt3fGVhPQwCnFhwRTWtVVGx8y8HnTDMv/r4xW1OMSThPsbM= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-button/CONTRIBUTING.md b/bower_components/paper-button/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-button/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-button/README.md b/bower_components/paper-button/README.md new file mode 100644 index 00000000..fe6ffe26 --- /dev/null +++ b/bower_components/paper-button/README.md @@ -0,0 +1,73 @@ + +[![Build status](https://travis-ci.org/PolymerElements/paper-button.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-button) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://beta.webcomponents.org/element/PolymerElements/paper-button) + +## <paper-button> + +Material design: [Buttons](https://www.google.com/design/spec/components/buttons.html) + +`paper-button` is a button. When the user touches the button, a ripple effect emanates +from the point of contact. It may be flat or raised. A raised button is styled with a +shadow. + +Example: + + +```html +link +raised +toggles +disabled +``` diff --git a/bower_components/paper-button/bower.json b/bower_components/paper-button/bower.json new file mode 100644 index 00000000..5355ae8f --- /dev/null +++ b/bower_components/paper-button/bower.json @@ -0,0 +1,66 @@ +{ + "name": "paper-button", + "version": "2.1.1", + "description": "Material design button", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer", + "paper", + "button" + ], + "main": "paper-button.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-button.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-button", + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "ignore": [], + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-button/demo/index.html b/bower_components/paper-button/demo/index.html new file mode 100644 index 00000000..bcd1a5c6 --- /dev/null +++ b/bower_components/paper-button/demo/index.html @@ -0,0 +1,140 @@ + + + + + + + + + + + paper-button demo + + + + + + + + + + + + + +
      +

      Buttons can be flat, raised, toggleable, or disabled

      + + + + +

      Buttons can have icons

      + + + + +

      Buttons can hide the ripple effect using the noink attribute

      + + + + +

      Buttons can be styled using custom properties

      + + + + +

      Buttons can be used as a link

      + + + +
      + + diff --git a/bower_components/paper-button/index.html b/bower_components/paper-button/index.html new file mode 100644 index 00000000..487bb5c3 --- /dev/null +++ b/bower_components/paper-button/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-button/package-lock.json b/bower_components/paper-button/package-lock.json new file mode 100644 index 00000000..5f09191e --- /dev/null +++ b/bower_components/paper-button/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/paper-button", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.4" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", + "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-button/package.json b/bower_components/paper-button/package.json new file mode 100644 index 00000000..3318965b --- /dev/null +++ b/bower_components/paper-button/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/paper-button", + "private": true, + "description": "Material design button", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-button.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/paper-button/paper-button.d.ts b/bower_components/paper-button/paper-button.d.ts new file mode 100644 index 00000000..a19b01bc --- /dev/null +++ b/bower_components/paper-button/paper-button.d.ts @@ -0,0 +1,92 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-button.html + */ + +/// +/// +/// +/// + +/** + * Material design: [Buttons](https://www.google.com/design/spec/components/buttons.html) + * + * `paper-button` is a button. When the user touches the button, a ripple effect emanates + * from the point of contact. It may be flat or raised. A raised button is styled with a + * shadow. + * + * Example: + * + * Flat button + * Raised button + * No ripple effect + * Toggle-able button + * + * A button that has `toggles` true will remain `active` after being clicked (and + * will have an `active` attribute set). For more information, see the `Polymer.IronButtonState` + * behavior. + * + * You may use custom DOM in the button body to create a variety of buttons. For example, to + * create a button with an icon and some text: + * + * + * + * custom button content + * + * + * To use `paper-button` as a link, wrap it in an anchor tag. Since `paper-button` will already + * receive focus, you may want to prevent the anchor tag from receiving focus as well by setting + * its tabindex to -1. + * + * + * Polymer Project + * + * + * ### Styling + * + * Style the button with CSS as you would a normal DOM element. + * + * paper-button.fancy { + * background: green; + * color: yellow; + * } + * + * paper-button.fancy:hover { + * background: lime; + * } + * + * paper-button[disabled], + * paper-button[toggles][active] { + * background: red; + * } + * + * By default, the ripple is the same color as the foreground at 25% opacity. You may + * customize the color using the `--paper-button-ink-color` custom property. + * + * The following custom properties and mixins are also available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-button-ink-color` | Background color of the ripple | `Based on the button's color` + * `--paper-button` | Mixin applied to the button | `{}` + * `--paper-button-disabled` | Mixin applied to the disabled button. Note that you can also use the `paper-button[disabled]` selector | `{}` + * `--paper-button-flat-keyboard-focus` | Mixin applied to a flat button after it's been focused using the keyboard | `{}` + * `--paper-button-raised-keyboard-focus` | Mixin applied to a raised button after it's been focused using the keyboard | `{}` + */ +interface PaperButtonElement extends Polymer.Element, Polymer.PaperButtonBehavior { + + /** + * If true, the button should be styled with a shadow. + */ + raised: boolean|null|undefined; + _calculateElevation(): void; +} + +interface HTMLElementTagNameMap { + "paper-button": PaperButtonElement; +} diff --git a/bower_components/paper-button/paper-button.html b/bower_components/paper-button/paper-button.html new file mode 100644 index 00000000..bce53c7d --- /dev/null +++ b/bower_components/paper-button/paper-button.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + diff --git a/bower_components/paper-button/test/index.html b/bower_components/paper-button/test/index.html new file mode 100644 index 00000000..c36a5569 --- /dev/null +++ b/bower_components/paper-button/test/index.html @@ -0,0 +1,24 @@ + + + + paper-button tests + + + + + + + diff --git a/bower_components/paper-button/test/paper-button.html b/bower_components/paper-button/test/paper-button.html new file mode 100644 index 00000000..5c3e85b4 --- /dev/null +++ b/bower_components/paper-button/test/paper-button.html @@ -0,0 +1,107 @@ + + + + + + paper-button basic tests + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-card/.bower.json b/bower_components/paper-card/.bower.json new file mode 100644 index 00000000..ed4baec0 --- /dev/null +++ b/bower_components/paper-card/.bower.json @@ -0,0 +1,77 @@ +{ + "name": "paper-card", + "version": "2.1.0", + "description": "Material design piece of paper with unique related data", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "card" + ], + "main": "paper-card.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-card.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-card", + "ignore": [], + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-image": "PolymerElements/iron-image#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-collapse": "PolymerElements/iron-collapse#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "paper-checkbox": "PolymerElements/paper-checkbox#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-image": "PolymerElements/iron-image#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-collapse": "PolymerElements/iron-collapse#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "19214d885d36e6aefaf1391f8bb8a142136a9411" + }, + "_source": "https://github.com/PolymerElements/paper-card.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-card", + "_direct": true +} \ No newline at end of file diff --git a/bower_components/paper-card/.github/CODEOWNERS b/bower_components/paper-card/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/paper-card/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/paper-card/.github/ISSUE_TEMPLATE.md b/bower_components/paper-card/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..e1e12492 --- /dev/null +++ b/bower_components/paper-card/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-card/.gitignore b/bower_components/paper-card/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-card/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-card/.travis.yml b/bower_components/paper-card/.travis.yml new file mode 100644 index 00000000..75fc1db9 --- /dev/null +++ b/bower_components/paper-card/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + YkY6O9xjr/gIEyNzSLIUdSiixej4jiYAmNIqvnnuYUm3E26kjr3RLoK6E7L9W0Z3hDsWGu6LOIMY/W+eYzL4bcjk1ir2nKjccQm6Am5kS1lZdjOitGHVbGofX11wfR/BinB6EKs3z4maYF/3knrzSTHm0Ur29IxChv4pHjW1uH4tnKhh3LZ1X+64WR+JtE5woElRJbjj6F3QCKMCFUciPHVg/TP6BvKqhKvia6nEeGH2koRfjx5/+Id5qGgrWtOyNUgU15po+GDts++s5K5ZtxpaMBy1689V30KSJb/p70DOWvkVICKC+9PAPOBnizteX4TTTaIaUday1h6MaFQw5ovQ5XdYIBDwgeIOPXE0YFc4nx8fjrtTJC9ww+kgcWUTX6y0MIGbW1ENSh3/q/Aq4SX6HNB+6n6WfkwuAjCKvUABXJxY3umb+M7IGu7p12UkbUbuq7rAmnKEqFEDt4bfmChWW0O1xSdcC7rDLeO/V8mrd+3cQEz5byOLQGbK35RtXafStuLPBKaqgngSn8iQbYdz5ShMu0UDWS2Ataq6Fbz3TJpiCOhp3yuG0dUiYTSD8RDFMex9m8Au9FdacxH96AcNEILYYYXAUFsJlB2xoRp9T/f3Whz9VQKsJnhswjHz4FWERrcyOhZ1x8LIqbcKzdRk4R38GupHYLvKhZFrlnQ= + - secure: >- + ESwK5pyqySA21n64vbX0Ie5S+M483A5gY2j/ysrZRtF0G1SSjbPz5Yoj4moUwMwvyEIpkiHBNmH7qJJ0j3Zm42U7dnpDIpble2ikkGumD128nVeOf3s+R7IS5ADATkTNQl1B/tj7rt7douJwTAwqbzSy2QvMnxfFnK/7Axp6VtLl6GjcDCvJR+2vFRvfrbnHQtOBVDtr7ncGIaPWgcl8lyYV+es11IAo2vY3Oja0V8N7VRyc7C8OwheI0/pCN3Hw5waX8Od946JI21NMZGkzaZPLGh4UYcVRMvYJZLpIm12AZmvfE3OO54JumiZ+UoWNGWWtKXBsJPNsLR//NjgJZIG5lBuhlblZYaW798FZOmAeG06YjOkHYSEiMglFfNtv4ug4KFWogEuzdlTISXFhW7gSp5sTumasgs2Z61qS6ipkFvYJLGU/MdXhICCHlG2a2lnKXymz3sILqvWc4uoZxXov6mSIoi6KpG1zAgwOLSsw+JZ25A2vfU9YKXSdMteXRUTfo6WCNASXrQNOcvOfyNigGs40qAPVMYOvqsQSUi2mOmRXd/xMc57BAlu2swTpDvpzverrDv3rVujCxG4PZOgrC4Z4Z25TQp8r8SsDNO2F0OREGOjayhqEKS7QmYY+jLvYF2Wa0Hmb6xN9uLOhaYREjtCHt/DfBLAiSU4x+A8= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-card/CONTRIBUTING.md b/bower_components/paper-card/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-card/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-card/README.md b/bower_components/paper-card/README.md new file mode 100644 index 00000000..e8e6df8f --- /dev/null +++ b/bower_components/paper-card/README.md @@ -0,0 +1,83 @@ +[![Build status](https://travis-ci.org/PolymerElements/paper-card.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-card) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/paper-card) + +## <paper-card> + +Material design: [Cards](https://www.google.com/design/spec/components/cards.html) + +`paper-card` is a container with a drop shadow. + + + +```html + +
      +
      Cafe Basilico +
      + + 250ft +
      +
      +
      + + + + + +
      +

      $・Italian, Cafe

      +

      Small plates, salads & sandwiches in an intimate setting.

      +
      +
      +
      + + 5:30PM + 7:30PM + 9:00PM + Reserve +
      +
      +
      +``` diff --git a/bower_components/paper-card/bower.json b/bower_components/paper-card/bower.json new file mode 100644 index 00000000..a75e700b --- /dev/null +++ b/bower_components/paper-card/bower.json @@ -0,0 +1,67 @@ +{ + "name": "paper-card", + "version": "2.0.0", + "description": "Material design piece of paper with unique related data", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "card" + ], + "main": "paper-card.html", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-card.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-card", + "ignore": [], + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-image": "PolymerElements/iron-image#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-collapse": "PolymerElements/iron-collapse#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "paper-checkbox": "PolymerElements/paper-checkbox#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-image": "PolymerElements/iron-image#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-collapse": "PolymerElements/iron-collapse#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "Polymer/web-component-tester#^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-card/demo/cafe.png b/bower_components/paper-card/demo/cafe.png new file mode 100644 index 00000000..a3dc6a8a Binary files /dev/null and b/bower_components/paper-card/demo/cafe.png differ diff --git a/bower_components/paper-card/demo/donuts.png b/bower_components/paper-card/demo/donuts.png new file mode 100644 index 00000000..5f668800 Binary files /dev/null and b/bower_components/paper-card/demo/donuts.png differ diff --git a/bower_components/paper-card/demo/house.png b/bower_components/paper-card/demo/house.png new file mode 100644 index 00000000..a7f1c24e Binary files /dev/null and b/bower_components/paper-card/demo/house.png differ diff --git a/bower_components/paper-card/demo/index.html b/bower_components/paper-card/demo/index.html new file mode 100644 index 00000000..74cb58b2 --- /dev/null +++ b/bower_components/paper-card/demo/index.html @@ -0,0 +1,335 @@ + + + + + paper-card demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      A paper-card with a simple heading, header image, body content, and actions

      + + + + +

      Paper-cards can contain advanced content

      + + + + +

      Paper-cards can have a horizontal image

      + + + + +

      Paper-cards can have expanded supporting text

      + + + + +

      Paper-cards can be organized in different collections

      + +

      Same layout, different content

      + + + + +

      Different layout and content

      + + + +
      + + diff --git a/bower_components/paper-card/demo/travel.png b/bower_components/paper-card/demo/travel.png new file mode 100644 index 00000000..7d8e8215 Binary files /dev/null and b/bower_components/paper-card/demo/travel.png differ diff --git a/bower_components/paper-card/demo/trip.png b/bower_components/paper-card/demo/trip.png new file mode 100644 index 00000000..746d0b30 Binary files /dev/null and b/bower_components/paper-card/demo/trip.png differ diff --git a/bower_components/paper-card/index.html b/bower_components/paper-card/index.html new file mode 100644 index 00000000..fab428a1 --- /dev/null +++ b/bower_components/paper-card/index.html @@ -0,0 +1,28 @@ + + + + + + + + + paper-card + + + + + + + + + + + diff --git a/bower_components/paper-card/package-lock.json b/bower_components/paper-card/package-lock.json new file mode 100644 index 00000000..c8b2e543 --- /dev/null +++ b/bower_components/paper-card/package-lock.json @@ -0,0 +1,974 @@ +{ + "name": "@polymer/paper-card", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.0", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.0", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.1.0.tgz", + "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.1.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.8.1", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.8.1.tgz", + "integrity": "sha512-MLvnM9gexFWg7nynY24eHZG6NLXocmk718sVds/sx2CAJ6iihhC0JMhhOIa6jnad9KQrHyGl/cs3mMRaaub5Fg==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-card/package.json b/bower_components/paper-card/package.json new file mode 100644 index 00000000..4bc17bb4 --- /dev/null +++ b/bower_components/paper-card/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/paper-card", + "private": true, + "description": "Material design piece of paper with unique related data", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-card.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/paper-card/paper-card.d.ts b/bower_components/paper-card/paper-card.d.ts new file mode 100644 index 00000000..16ae62b6 --- /dev/null +++ b/bower_components/paper-card/paper-card.d.ts @@ -0,0 +1,121 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-card.html + */ + +/// +/// +/// +/// +/// + +/** + * Material design: [Cards](https://www.google.com/design/spec/components/cards.html) + * + * `paper-card` is a container with a drop shadow. + * + * Example: + * + * + *
      Some content
      + *
      + * Some action + *
      + *
      + * + * Example - top card image: + * + * + * ... + * + * + * ### Accessibility + * + * By default, the `aria-label` will be set to the value of the `heading` attribute. + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-card-background-color` | The background color of the card | `--primary-background-color` + * `--paper-card-header-color` | The color of the header text | `#000` + * `--paper-card-header` | Mixin applied to the card header section | `{}` + * `--paper-card-header-text` | Mixin applied to the title in the card header section | `{}` + * `--paper-card-header-image` | Mixin applied to the image in the card header section | `{}` + * `--paper-card-header-image-text` | Mixin applied to the text overlapping the image in the card header section | `{}` + * `--paper-card-content` | Mixin applied to the card content section| `{}` + * `--paper-card-actions` | Mixin applied to the card action section | `{}` + * `--paper-card` | Mixin applied to the card | `{}` + */ +interface PaperCardElement extends Polymer.Element { + + /** + * The title of the card. + */ + heading: string|null|undefined; + + /** + * The url of the title image of the card. + */ + image: string|null|undefined; + + /** + * The text alternative of the card's title image. + */ + alt: string|null|undefined; + + /** + * When `true`, any change to the image url property will cause the + * `placeholder` image to be shown until the image is fully rendered. + */ + preloadImage: boolean|null|undefined; + + /** + * When `preloadImage` is true, setting `fadeImage` to true will cause the + * image to fade into place. + */ + fadeImage: boolean|null|undefined; + + /** + * This image will be used as a background/placeholder until the src image has + * loaded. Use of a data-URI for placeholder is encouraged for instant rendering. + */ + placeholderImage: string|null|undefined; + + /** + * The z-depth of the card, from 0-5. + */ + elevation: number|null|undefined; + + /** + * Set this to true to animate the card shadow when setting a new + * `z` value. + */ + animatedShadow: boolean|null|undefined; + + /** + * Read-only property used to pass down the `animatedShadow` value to + * the underlying paper-material style (since they have different names). + */ + readonly animated: boolean|null|undefined; + + /** + * Format function for aria-hidden. Use the ! operator results in the + * empty string when given a falsy value. + */ + _isHidden(image: any): any; + _headingChanged(heading: any): void; + _computeHeadingClass(image: any): any; + _computeAnimated(animatedShadow: any): any; +} + +interface HTMLElementTagNameMap { + "paper-card": PaperCardElement; +} diff --git a/bower_components/paper-card/paper-card.html b/bower_components/paper-card/paper-card.html new file mode 100644 index 00000000..423961f6 --- /dev/null +++ b/bower_components/paper-card/paper-card.html @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + diff --git a/bower_components/paper-card/test/basic.html b/bower_components/paper-card/test/basic.html new file mode 100644 index 00000000..fd84c352 --- /dev/null +++ b/bower_components/paper-card/test/basic.html @@ -0,0 +1,166 @@ + + + + + + paper-card a11y tests + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-card/test/index.html b/bower_components/paper-card/test/index.html new file mode 100644 index 00000000..0837d4f6 --- /dev/null +++ b/bower_components/paper-card/test/index.html @@ -0,0 +1,26 @@ + + + + + + + paper-card tests + + + + + + diff --git a/bower_components/paper-checkbox/.bower.json b/bower_components/paper-checkbox/.bower.json new file mode 100644 index 00000000..f716a346 --- /dev/null +++ b/bower_components/paper-checkbox/.bower.json @@ -0,0 +1,75 @@ +{ + "name": "paper-checkbox", + "version": "2.0.4", + "description": "A material design checkbox", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "paper", + "checkbox", + "control" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-checkbox" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-checkbox", + "main": "paper-checkbox.html", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-ripple": "PolymerElements/paper-ripple#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" + }, + "devDependencies": { + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "web-component-tester": "^6.0.0", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.1.0", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" + }, + "devDependencies": { + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.0.4", + "_resolution": { + "type": "version", + "tag": "v2.0.4", + "commit": "22cc667efc908916146bff8f4466544f82cb4cd3" + }, + "_source": "https://github.com/PolymerElements/paper-checkbox.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-checkbox" +} \ No newline at end of file diff --git a/bower_components/paper-checkbox/.eslintrc.json b/bower_components/paper-checkbox/.eslintrc.json new file mode 100644 index 00000000..cc13518e --- /dev/null +++ b/bower_components/paper-checkbox/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": "eslint:recommended", + "rules": { + "no-console": 0 + }, + "env": { + "browser": true + }, + "plugins": [ + "html" + ], + "globals": { + "CustomElements": false, + "HTMLImports": false, + "Polymer": false, + "WeakMap": false + } +} diff --git a/bower_components/paper-checkbox/.github/CODEOWNERS b/bower_components/paper-checkbox/.github/CODEOWNERS new file mode 100644 index 00000000..0d8c0ad6 --- /dev/null +++ b/bower_components/paper-checkbox/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @bicknellr +/.travis.yml @azakus diff --git a/bower_components/paper-checkbox/.github/ISSUE_TEMPLATE.md b/bower_components/paper-checkbox/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..3b5f5fd1 --- /dev/null +++ b/bower_components/paper-checkbox/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-checkbox/.gitignore b/bower_components/paper-checkbox/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-checkbox/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-checkbox/.travis.yml b/bower_components/paper-checkbox/.travis.yml new file mode 100644 index 00000000..bd1c6748 --- /dev/null +++ b/bower_components/paper-checkbox/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + yp6I0VbSey7lRWOKQQkBU7CBvQd0hN0TZiZnbo8fzWWfOjANeDICCa/xyY2+ZM0TU5mxvehTg38mjkpRPkMm4UrsE5og49GBFqaDLk9U+Bp7fP37tDtWfT3l4VgpzSwKAdIEh8EcmUPblZxQxJlH6+HHImnPCWSKy9YvVEGirzY= + - secure: >- + XjG814z1IZBtPOsZBknOcJaqSJHjF7jWzAw1Cl9sKcmHPKSJW2a0gILdpXx2Au0KGzLzn7Z6/p6u2+rv4tbYWBq21EWgbHmn3iAF4pAZt6DgGqJpfCsNdyuKUYN8ZfLFbK3GC/js6IJDGV+zq5HxtZmwZh+eQ85bbx2xNyRKZis= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-checkbox/CONTRIBUTING.md b/bower_components/paper-checkbox/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-checkbox/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-checkbox/README.md b/bower_components/paper-checkbox/README.md new file mode 100644 index 00000000..55606745 --- /dev/null +++ b/bower_components/paper-checkbox/README.md @@ -0,0 +1,63 @@ +[![Build status](https://travis-ci.org/PolymerElements/paper-checkbox.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-checkbox) + +## <paper-checkbox> + +`paper-checkbox` is a [material design checkbox](https://www.google.com/design/spec/components/selection-controls.html#selection-controls-checkbox). +User can tap the checkbox to check or uncheck it. Usually you use checkboxes +to allow user to select multiple options from a set. If you have a single +ON/OFF option, avoid using a single checkbox and use `paper-toggle-button` +instead. + +Example: + +```html +Checked + + Checkbox + + With a longer label + + +Disabled +``` diff --git a/bower_components/paper-checkbox/bower.json b/bower_components/paper-checkbox/bower.json new file mode 100644 index 00000000..4d46010b --- /dev/null +++ b/bower_components/paper-checkbox/bower.json @@ -0,0 +1,66 @@ +{ + "name": "paper-checkbox", + "version": "2.0.4", + "description": "A material design checkbox", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "paper", + "checkbox", + "control" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-checkbox" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-checkbox", + "main": "paper-checkbox.html", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-ripple": "PolymerElements/paper-ripple#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" + }, + "devDependencies": { + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", + "web-component-tester": "^6.0.0", + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.1.0", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" + }, + "devDependencies": { + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "^4.0.0", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-checkbox/demo/index.html b/bower_components/paper-checkbox/demo/index.html new file mode 100644 index 00000000..db041787 --- /dev/null +++ b/bower_components/paper-checkbox/demo/index.html @@ -0,0 +1,127 @@ + + + + + paper-checkbox demo + + + + + + + + + + + + + + + +
      +

      Checkboxes can be checked or unchecked, or disabled entirely

      + + + + +

      Checkboxes can hide the ripple effect using the noink attribute

      + + + + +

      Checkboxes can be styled using custom properties

      + + + +
      + + diff --git a/bower_components/paper-checkbox/index.html b/bower_components/paper-checkbox/index.html new file mode 100644 index 00000000..b368797b --- /dev/null +++ b/bower_components/paper-checkbox/index.html @@ -0,0 +1,30 @@ + + + + + + + + + paper-checkbox + + + + + + + + + + + + + diff --git a/bower_components/paper-checkbox/package-lock.json b/bower_components/paper-checkbox/package-lock.json new file mode 100644 index 00000000..149d6008 --- /dev/null +++ b/bower_components/paper-checkbox/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/paper-checkbox", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.4" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", + "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-checkbox/package.json b/bower_components/paper-checkbox/package.json new file mode 100644 index 00000000..44095555 --- /dev/null +++ b/bower_components/paper-checkbox/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/paper-checkbox", + "private": true, + "description": "A material design checkbox", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-checkbox" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/paper-checkbox/paper-checkbox.d.ts b/bower_components/paper-checkbox/paper-checkbox.d.ts new file mode 100644 index 00000000..e98aa49c --- /dev/null +++ b/bower_components/paper-checkbox/paper-checkbox.d.ts @@ -0,0 +1,74 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-checkbox.html + */ + +/// +/// +/// + +/** + * Material design: [Checkbox](https://www.google.com/design/spec/components/selection-controls.html#selection-controls-checkbox) + * + * `paper-checkbox` is a button that can be either checked or unchecked. User + * can tap the checkbox to check or uncheck it. Usually you use checkboxes + * to allow user to select multiple options from a set. If you have a single + * ON/OFF option, avoid using a single checkbox and use `paper-toggle-button` + * instead. + * + * Example: + * + * label + * + * label + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-checkbox-unchecked-background-color` | Checkbox background color when the input is not checked | `transparent` + * `--paper-checkbox-unchecked-color` | Checkbox border color when the input is not checked | `--primary-text-color` + * `--paper-checkbox-unchecked-ink-color` | Selected/focus ripple color when the input is not checked | `--primary-text-color` + * `--paper-checkbox-checked-color` | Checkbox color when the input is checked | `--primary-color` + * `--paper-checkbox-checked-ink-color` | Selected/focus ripple color when the input is checked | `--primary-color` + * `--paper-checkbox-checkmark-color` | Checkmark color | `white` + * `--paper-checkbox-label-color` | Label color | `--primary-text-color` + * `--paper-checkbox-label-checked-color` | Label color when the input is checked | `--paper-checkbox-label-color` + * `--paper-checkbox-label-spacing` | Spacing between the label and the checkbox | `8px` + * `--paper-checkbox-label` | Mixin applied to the label | `{}` + * `--paper-checkbox-label-checked` | Mixin applied to the label when the input is checked | `{}` + * `--paper-checkbox-error-color` | Checkbox color when invalid | `--error-color` + * `--paper-checkbox-size` | Size of the checkbox | `18px` + * `--paper-checkbox-ink-size` | Size of the ripple | `48px` + * `--paper-checkbox-margin` | Margin around the checkbox container | `initial` + * `--paper-checkbox-vertical-align` | Vertical alignment of the checkbox container | `middle` + * + * This element applies the mixin `--paper-font-common-base` but does not import `paper-styles/typography.html`. + * In order to apply the `Roboto` font to this element, make sure you've imported `paper-styles/typography.html`. + */ +interface PaperCheckboxElement extends Polymer.Element, Polymer.PaperCheckedElementBehavior { + + /** + * Fired when the checked state changes. + */ + ariaActiveAttribute: string|null|undefined; + attached(): void; + + /** + * create ripple inside the checkboxContainer + */ + _createRipple(): any; + _computeCheckboxClass(checked: any, invalid: any): any; + _computeCheckmarkClass(checked: any): any; +} + +interface HTMLElementTagNameMap { + "paper-checkbox": PaperCheckboxElement; +} diff --git a/bower_components/paper-checkbox/paper-checkbox.html b/bower_components/paper-checkbox/paper-checkbox.html new file mode 100644 index 00000000..e665ec21 --- /dev/null +++ b/bower_components/paper-checkbox/paper-checkbox.html @@ -0,0 +1,324 @@ + + + + + + + + + + + + + diff --git a/bower_components/paper-checkbox/test/.eslintrc.json b/bower_components/paper-checkbox/test/.eslintrc.json new file mode 100644 index 00000000..7c2ce11b --- /dev/null +++ b/bower_components/paper-checkbox/test/.eslintrc.json @@ -0,0 +1,14 @@ +{ + "env": { + "mocha": true + }, + "globals": { + "assert": true, + "sinon": true, + "WCT": true, + "fixture": true, + "Polymer": true, + "MockInteractions": true, + "a11ySuite": true + } +} diff --git a/bower_components/paper-checkbox/test/basic.html b/bower_components/paper-checkbox/test/basic.html new file mode 100644 index 00000000..ee2bf320 --- /dev/null +++ b/bower_components/paper-checkbox/test/basic.html @@ -0,0 +1,384 @@ + + + + + + paper-checkbox basic tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-checkbox/test/index.html b/bower_components/paper-checkbox/test/index.html new file mode 100644 index 00000000..d5dc8a36 --- /dev/null +++ b/bower_components/paper-checkbox/test/index.html @@ -0,0 +1,28 @@ + + + + paper-checkbox tests + + + + + + + diff --git a/bower_components/paper-dialog-behavior/.bower.json b/bower_components/paper-dialog-behavior/.bower.json new file mode 100644 index 00000000..5a12b01e --- /dev/null +++ b/bower_components/paper-dialog-behavior/.bower.json @@ -0,0 +1,77 @@ +{ + "name": "paper-dialog-behavior", + "version": "2.2.2", + "description": "Implements a behavior used for material design dialogs", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "dialog", + "overlay", + "behavior" + ], + "main": "paper-dialog-behavior.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-dialog-behavior" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-dialog-behavior", + "ignore": [], + "dependencies": { + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#1 - 2", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-listbox": "PolymerElements/paper-listbox#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.1.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#^1.0.0", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "paper-item": "PolymerElements/paper-item#^1.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^1.1.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.2.2", + "_resolution": { + "type": "version", + "tag": "v2.2.2", + "commit": "d6d5b68bdcad2896356bf8fa9022d3e985f363e4" + }, + "_source": "https://github.com/PolymerElements/paper-dialog-behavior.git", + "_target": "1 - 2", + "_originalSource": "PolymerElements/paper-dialog-behavior" +} \ No newline at end of file diff --git a/bower_components/paper-dialog-behavior/.github/CODEOWNERS b/bower_components/paper-dialog-behavior/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/paper-dialog-behavior/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/paper-dialog-behavior/.github/ISSUE_TEMPLATE.md b/bower_components/paper-dialog-behavior/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..f544977f --- /dev/null +++ b/bower_components/paper-dialog-behavior/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-dialog-behavior/.gitignore b/bower_components/paper-dialog-behavior/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-dialog-behavior/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-dialog-behavior/.travis.yml b/bower_components/paper-dialog-behavior/.travis.yml new file mode 100644 index 00000000..f590d57c --- /dev/null +++ b/bower_components/paper-dialog-behavior/.travis.yml @@ -0,0 +1,32 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) + - >- + npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m + Project is not formatted. Please run "npm run format".' && false) +env: + global: + - secure: >- + TJSGIyeS77tnbqO9zSa5jAThGUOwhfDTdMBXIVkjDwPqtB2u8y6QB6rerGvNpDLdWTZh6dNUByc4vHJLGKmTArbWc/XH90H7msZs3OxMlXjgILX4//QSxM4uwBwfTh44PVb/wDJxgX950qXyF646Lo9A8UwKk2JL9LBeuiO+tQs= + - secure: >- + QXJDFGdZ+94ktzeT8u1TjkgCSbku5UT+YIyOOyw4yrphg/0HSnlZ8bu5i3z9iPJu3mzxNdIXCAW7dLKfYgKK6S21o/3QWlMDuAt11wnSZLW/GWrLDTQNotFN+cLFghGuZkM3bsMp+CLjvvjZZwyK3B340g1gP66DbUQuoUYaRao= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-dialog-behavior/CONTRIBUTING.md b/bower_components/paper-dialog-behavior/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-dialog-behavior/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-dialog-behavior/README.md b/bower_components/paper-dialog-behavior/README.md new file mode 100644 index 00000000..c12ec9b3 --- /dev/null +++ b/bower_components/paper-dialog-behavior/README.md @@ -0,0 +1,44 @@ +[![Build status](https://travis-ci.org/PolymerElements/paper-dialog-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-dialog-behavior) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/paper-dialog-behavior) + +## Polymer.PaperDialogBehavior + +Use `Polymer.PaperDialogBehavior` and `paper-dialog-shared-styles.html` to implement a Material Design +dialog. + +For example, if `` implements this behavior: + +```html + +

      Header

      +
      Dialog body
      +
      + Cancel + Accept +
      +
      +``` + +`paper-dialog-shared-styles.html` provide styles for a header, content area, and an action area for buttons. +Use the `

      ` tag for the header and the `paper-dialog-buttons` or `buttons` class for the action area. You can use the +`paper-dialog-scrollable` element (in its own repository) if you need a scrolling content area. + +Use the `dialog-dismiss` and `dialog-confirm` attributes on interactive controls to close the +dialog. If the user dismisses the dialog with `dialog-confirm`, the `closingReason` will update +to include `confirmed: true`. + +### Changes in 2.0 +- `paper-dialog-shared-styles` styles direct `h2` and `.buttons` children of the dialog because of how [`::slotted` works](https://developers.google.com/web/fundamentals/primers/shadowdom/?hl=en#stylinglightdom) +(compound selector will select only top level nodes) +- Removed `paper-dialog-common.css` as it's a duplicate of `paper-dialog-shared-styles.html`. +Import the shared styles via ` + + + +

      An element with PaperDialogBehavior can be opened, closed, toggled. Use h2 for the title

      + + + + +

      An element with PaperDialogBehavior can be modal. Use the attributes dialog-dismiss and dialog-confirm on the children to close it.

      + + + + +

      Use paper-dialog-scrollable for scrolling content

      + + + + + + diff --git a/bower_components/paper-dialog-behavior/demo/simple-dialog.html b/bower_components/paper-dialog-behavior/demo/simple-dialog.html new file mode 100644 index 00000000..c9cf0728 --- /dev/null +++ b/bower_components/paper-dialog-behavior/demo/simple-dialog.html @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/hero.svg b/bower_components/paper-dialog-behavior/hero.svg new file mode 100755 index 00000000..d4738168 --- /dev/null +++ b/bower_components/paper-dialog-behavior/hero.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/index.html b/bower_components/paper-dialog-behavior/index.html new file mode 100644 index 00000000..af98b85a --- /dev/null +++ b/bower_components/paper-dialog-behavior/index.html @@ -0,0 +1,30 @@ + + + + + + + + + paper-dialog-behavior + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/package-lock.json b/bower_components/paper-dialog-behavior/package-lock.json new file mode 100644 index 00000000..a63ac52c --- /dev/null +++ b/bower_components/paper-dialog-behavior/package-lock.json @@ -0,0 +1,2388 @@ +{ + "name": "@polymer/paper-dialog-behavior", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@polymer/gen-typescript-declarations": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.2.tgz", + "integrity": "sha512-9P946+nIkSm+761v3oxH/QVgJozhsInldKY3h8AVstdXkA8W0Fij84pqsFv1nrRuPGj4Pv71crzoZpFnLkNmKQ==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.4", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14", + "vscode-uri": "1.0.3" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.4" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", + "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "@types/winston": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.9.tgz", + "integrity": "sha512-zzruYOEtNgfS3SBjcij1F6HlH6My5n8WrBNhP3fzaRM22ba70QBC2ATs18jGr88Fy43c0z8vFJv5wJankfxv2A==", + "dev": true, + "requires": { + "@types/node": "9.6.4" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "atob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", + "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.5", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.4", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "bower": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz", + "integrity": "sha1-54dqB23rgTf30GUl3F6MZtuC8oo=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clang-format": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.7.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.4.tgz", + "integrity": "sha512-h17lBwC5bl5RdukPbXji75+cg2/Qbny6kGsmLoy34s9DNH90RwRvJKb+VU5j4YY9HzYl7twLaOWDJQ4b9U+p/Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.3", + "typical": "2.6.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.2", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-glob": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.0.tgz", + "integrity": "sha512-4F75PTznkNtSKs2pbhtBwRkw8sRwa7LfXx5XaQJOe4IQ6yTjceLDTwM5gj1s80R2t/5WeDC1gVfm3jLE+l39Tw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.1", + "micromatch": "3.1.10" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.4.tgz", + "integrity": "sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "merge2": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz", + "integrity": "sha512-wUqcG5pxrAcaFI1lkqkMnk3Q7nUxV/NWfpAFSeWUwG9TRODnBDCUHa75mi3o3vLWQ5N4CQERWCauSlP0I3ZqUg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.9", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.105", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.44", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.2", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.4", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.13.0", + "resolve": "1.7.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.13.0.tgz", + "integrity": "sha512-0E1iSOpo2xFMvMomSDFl48J8IOUWmM+sfHGJSQSVfIu8GXDgz2TVraad+rEMZDbj8uxiRFvQZyouHhikxhVFpQ==", + "dev": true, + "requires": { + "@types/node": "6.0.105", + "jsonschema": "1.2.4", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.105", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.105.tgz", + "integrity": "sha512-fMIbw7iw91TSInS3b2DtDse5VaQEZqs0oTjvRNIFHnoHbnji+dLwpzL1L6dYGL39RzDNPHM/Off+VNcMk4ahwQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.1.0", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.3.tgz", + "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "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" + } + } + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webmat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webmat/-/webmat-0.2.0.tgz", + "integrity": "sha512-xf2iHrssbbTofFwxvrdtgSxILQ8ledlpeDc76fNkTEL76gGnxCB/YA69UF498+UPfYIDvVnk9Qt2E7MJOApacA==", + "dev": true, + "requires": { + "clang-format": "1.2.3", + "dom5": "3.0.0", + "fast-glob": "2.2.0", + "parse5": "4.0.0" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-dialog-behavior/package.json b/bower_components/paper-dialog-behavior/package.json new file mode 100644 index 00000000..cd1c8e02 --- /dev/null +++ b/bower_components/paper-dialog-behavior/package.json @@ -0,0 +1,19 @@ +{ + "name": "@polymer/paper-dialog-behavior", + "private": true, + "description": "Implements a behavior used for material design dialogs", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-dialog-behavior" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0", + "webmat": "^0.2.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + } +} diff --git a/bower_components/paper-dialog-behavior/paper-dialog-behavior.d.ts b/bower_components/paper-dialog-behavior/paper-dialog-behavior.d.ts new file mode 100644 index 00000000..4377e52f --- /dev/null +++ b/bower_components/paper-dialog-behavior/paper-dialog-behavior.d.ts @@ -0,0 +1,70 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-dialog-behavior.html + */ + +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.PaperDialogBehavior` and `paper-dialog-shared-styles.html` to + * implement a Material Design dialog. + * + * For example, if `` implements this behavior: + * + * + *

      Header

      + *
      Dialog body
      + *
      + * Cancel + * Accept + *
      + *
      + * + * `paper-dialog-shared-styles.html` provide styles for a header, content area, and + * an action area for buttons. Use the `

      ` tag for the header and the `buttons` + * class for the action area. You can use the `paper-dialog-scrollable` element (in + * its own repository) if you need a scrolling content area. + * + * Use the `dialog-dismiss` and `dialog-confirm` attributes on interactive controls + * to close the dialog. If the user dismisses the dialog with `dialog-confirm`, the + * `closingReason` will update to include `confirmed: true`. + * + * ### Accessibility + * + * This element has `role="dialog"` by default. Depending on the context, it may be + * more appropriate to override this attribute with `role="alertdialog"`. + * + * If `modal` is set, the element will prevent the focus from exiting the element. + * It will also ensure that focus remains in the dialog. + * + * + */ + interface PaperDialogBehavior extends Polymer.IronOverlayBehavior { + + /** + * If `modal` is true, this implies `no-cancel-on-outside-click`, + * `no-cancel-on-esc-key` and `with-backdrop`. + */ + modal: boolean|null|undefined; + hostAttributes: object|null; + ready(): void; + _modalChanged(modal: any, readied: any): void; + _updateClosingReasonConfirmed(confirmed: any): void; + + /** + * Will dismiss the dialog if user clicked on an element with dialog-dismiss + * or dialog-confirm attribute. + */ + _onDialogClick(event: any): void; + } + + const PaperDialogBehavior: object; +} diff --git a/bower_components/paper-dialog-behavior/paper-dialog-behavior.html b/bower_components/paper-dialog-behavior/paper-dialog-behavior.html new file mode 100644 index 00000000..5a65d91d --- /dev/null +++ b/bower_components/paper-dialog-behavior/paper-dialog-behavior.html @@ -0,0 +1,143 @@ + + + + + + diff --git a/bower_components/paper-dialog-behavior/paper-dialog-shared-styles.d.ts b/bower_components/paper-dialog-behavior/paper-dialog-shared-styles.d.ts new file mode 100644 index 00000000..916661e6 --- /dev/null +++ b/bower_components/paper-dialog-behavior/paper-dialog-shared-styles.d.ts @@ -0,0 +1,16 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-dialog-shared-styles.html + */ + +/// +/// +/// +/// +/// + diff --git a/bower_components/paper-dialog-behavior/paper-dialog-shared-styles.html b/bower_components/paper-dialog-behavior/paper-dialog-shared-styles.html new file mode 100644 index 00000000..da5f19d0 --- /dev/null +++ b/bower_components/paper-dialog-behavior/paper-dialog-shared-styles.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/test/index.html b/bower_components/paper-dialog-behavior/test/index.html new file mode 100644 index 00000000..a95b8a2f --- /dev/null +++ b/bower_components/paper-dialog-behavior/test/index.html @@ -0,0 +1,31 @@ + + + paper-dialog-behavior tests + + + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/test/paper-dialog-behavior.html b/bower_components/paper-dialog-behavior/test/paper-dialog-behavior.html new file mode 100644 index 00000000..1883156a --- /dev/null +++ b/bower_components/paper-dialog-behavior/test/paper-dialog-behavior.html @@ -0,0 +1,465 @@ + + + + + + + paper-dialog-behavior tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/test/test-buttons.html b/bower_components/paper-dialog-behavior/test/test-buttons.html new file mode 100644 index 00000000..5e188c00 --- /dev/null +++ b/bower_components/paper-dialog-behavior/test/test-buttons.html @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/bower_components/paper-dialog-behavior/test/test-dialog.html b/bower_components/paper-dialog-behavior/test/test-dialog.html new file mode 100644 index 00000000..b4802d2f --- /dev/null +++ b/bower_components/paper-dialog-behavior/test/test-dialog.html @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/bower_components/paper-dialog/.bower.json b/bower_components/paper-dialog/.bower.json new file mode 100644 index 00000000..8c1ba21e --- /dev/null +++ b/bower_components/paper-dialog/.bower.json @@ -0,0 +1,78 @@ +{ + "name": "paper-dialog", + "description": "A Material Design dialog", + "version": "2.1.1", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "dialog", + "overlay" + ], + "main": "paper-dialog.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-dialog" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-dialog", + "ignore": [], + "dependencies": { + "neon-animation": "PolymerElements/neon-animation#1 - 2", + "paper-dialog-behavior": "PolymerElements/paper-dialog-behavior#1 - 2", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#1 - 2", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-listbox": "PolymerElements/paper-listbox#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "neon-animation": "PolymerElements/neon-animation#^1.0.0", + "paper-dialog-behavior": "PolymerElements/paper-dialog-behavior#^1.0.0", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^1.7.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#^1.0.0", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^1.0.0", + "paper-item": "PolymerElements/paper-item#^1.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^1.0.0", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "c6089263a75db91d2e33b5478030487d35f2ec04" + }, + "_source": "https://github.com/PolymerElements/paper-dialog.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-dialog" +} \ No newline at end of file diff --git a/bower_components/paper-dialog/.github/CODEOWNERS b/bower_components/paper-dialog/.github/CODEOWNERS new file mode 100644 index 00000000..c5097c0c --- /dev/null +++ b/bower_components/paper-dialog/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @valdrinkoshi +/.travis.yml @azakus diff --git a/bower_components/paper-dialog/.github/ISSUE_TEMPLATE.md b/bower_components/paper-dialog/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..823a0209 --- /dev/null +++ b/bower_components/paper-dialog/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-dialog/.gitignore b/bower_components/paper-dialog/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-dialog/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-dialog/.travis.yml b/bower_components/paper-dialog/.travis.yml new file mode 100644 index 00000000..5d978c75 --- /dev/null +++ b/bower_components/paper-dialog/.travis.yml @@ -0,0 +1,29 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + QgTx1GfP8J91Uzv03iETT60WI0ZhgvbT5tFkDp53oeQrNvXwZMCDN9BE+LsvE+3WJdhwV//gD3B72y+nSTa89UGSHwXaLiXPxL1OW7B/36X0ri1yPVVW9TJNramsVmjkFbjqbD6txUPE/j2STYIxGueng3R/bzt/Vx/ZjHnTJSVkyfQ0HCmMvgVvKBzP6wHHoggXcXeRhViQUbHW2v32Ptj2lw/qukQxv0rggugz/m+4miLFMEtAFlSJ+9Q4rA8pXMgrDJbd7T7BPNs9yeP0rVNab+dRE0wMkv0iRk0cL1ZPH/FB5F6everMc/7zc3mCEVXJM0fbj1XQVM640C413ncpDz/zK24e3lew4Erf7Ld9dl/xWRr60zBvGfFHz5JSBzL4/OsvnRFHfpxd6nwyVJhjv9uqyGNNqaDZ1AaPZ/ZCVDq+7KyJhM/Pug18cEzcDhUc0u5SIdjLnaiqgqAx0axAUdGPAN9Ssb58kDaqgt38VfoCc7ki/Qsk84ylxVu10vAeK4piklUb/PtR0gTKQ4GcYWnwZBgTlSthRFheOEp5BSDsKXi8Y2UCb/FJr1+oMbjbHLKnKvq7UDaLXXXKfvF1RjF1npgtYw4HBbHQ8Rsr7ZT2gU/85UDfpTgFNlpRWwajpEGQ7eK/CKQZnE8eGy+DR0KNuXxBkZpW5xOyq4g= + - secure: >- + GzJ6KvrESPTW2J2fqjTq4tXzaSLdjVuWHp4LV7isIBQk5qeh0l+AN/ZRzYj63AdhKBeQG68lLMayV/GFtJsKkLQWn1xZzxVjwdpWQjwnKWtoGYkwdHzuY6FNfLL9FTIGu5G6RCmfFfTDsUHkhSXW+cBaN7nJWtojXAOrr+9ivfU6acfoON8RN8m5N2o5uVJgwwlveYnCYayRHC50neHOVC1IzQlagW9TdpKMqHeg0XpSFhdjQua3ETiAiQDjpQz1BeNZh+/DjnlV08zAx64bjZTh441100HRP0qg4/Y6IcX/qCiRdQHYBvIAoka+ZySPu1zYfvn+7eJYwQ4shSuElKX9y6g+uk3g5djJJ7yoKIQnsYlO1yPB0E8fvIhP2K/ZCwXK86snR+pIfrpVudQy4RZObuvyJIqxmaUjlTg1zU/S0ZNqOnXtqO6pG6YNH1JpAt0Bdzy7hT/q44ROlBPYuZK8shzzLa4KBr3Rb7kknyi5YXempGjhLnUFFd+gGQUkfqoDmyLreDyO95Ch8+YOcTjAzWh/yrEw1of0l/an9TxtWjnFaioJDcVS/dQphufMHgxyushDaocm/My06ZNWfwe69IbH7lqdDn9aW8hdn9cgIKw/sNqVtksN0/tnoURD/8wuHmepzsCR7xs9NrAozaynK+NdPfDdUtLRjtcEy0A= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-dialog/CONTRIBUTING.md b/bower_components/paper-dialog/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-dialog/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-dialog/README.md b/bower_components/paper-dialog/README.md new file mode 100644 index 00000000..d1e6b2be --- /dev/null +++ b/bower_components/paper-dialog/README.md @@ -0,0 +1,65 @@ +[![Build status](https://travis-ci.org/PolymerElements/paper-dialog.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-dialog) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/paper-dialog) + +## <paper-dialog> + +Material design: [Dialogs](https://www.google.com/design/spec/components/dialogs.html) + +`` is a dialog with Material Design styling and optional animations when it is +opened or closed. It provides styles for a header, content area, and an action area for buttons. +You can use the `` element (in its own repository) if you need a scrolling +content area. To autofocus a specific child element after opening the dialog, give it the `autofocus` +attribute. See `Polymer.PaperDialogBehavior` and `Polymer.IronOverlayBehavior` for specifics. + +For example, the following code implements a dialog with a header, scrolling content area and +buttons. Focus will be given to the `dialog-confirm` button when the dialog is opened. + +```html + +

      Header

      + + Lorem ipsum... + +
      + Cancel + Accept +
      +
      +``` + +### Changes in 2.0 +- `paper-dialog-behavior 2.0` styles only direct `h2` and `.buttons` children of the dialog because of how [`::slotted` works](https://developers.google.com/web/fundamentals/primers/shadowdom/?hl=en#stylinglightdom) +(compound selector will select only top level nodes) +- `neon-animation 2.0` doesn't import the Web Animations polyfill, so you'll have to import it ([see Animations section](#Animations)) + +### Styling + +See the docs for `Polymer.PaperDialogBehavior` for the custom properties available for styling +this element. + +### Animations + +Set the `entry-animation` and/or `exit-animation` attributes to add an animation when the dialog +is opened or closed. See the documentation in +[PolymerElements/neon-animation](https://github.com/PolymerElements/neon-animation) for more info. + +For example: + +```html + + + + + +

      Header

      +
      Dialog body
      +
      +``` + +### Accessibility + +See the docs for `Polymer.PaperDialogBehavior` for accessibility features implemented by this +element. + + diff --git a/bower_components/paper-dialog/bower.json b/bower_components/paper-dialog/bower.json new file mode 100644 index 00000000..bca919ab --- /dev/null +++ b/bower_components/paper-dialog/bower.json @@ -0,0 +1,69 @@ +{ + "name": "paper-dialog", + "description": "A Material Design dialog", + "version": "2.1.1", + "authors": "The Polymer Authors", + "keywords": [ + "web-components", + "polymer", + "dialog", + "overlay" + ], + "main": "paper-dialog.html", + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-dialog" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-dialog", + "ignore": [], + "dependencies": { + "neon-animation": "PolymerElements/neon-animation#1 - 2", + "paper-dialog-behavior": "PolymerElements/paper-dialog-behavior#1 - 2", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "paper-button": "PolymerElements/paper-button#1 - 2", + "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#1 - 2", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#1 - 2", + "paper-item": "PolymerElements/paper-item#1 - 2", + "paper-listbox": "PolymerElements/paper-listbox#1 - 2", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "neon-animation": "PolymerElements/neon-animation#^1.0.0", + "paper-dialog-behavior": "PolymerElements/paper-dialog-behavior#^1.0.0", + "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^1.7.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "paper-button": "PolymerElements/paper-button#^1.0.0", + "paper-dialog-scrollable": "PolymerElements/paper-dialog-scrollable#^1.0.0", + "paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^1.0.0", + "paper-item": "PolymerElements/paper-item#^1.0.0", + "paper-listbox": "PolymerElements/paper-listbox#^1.0.0", + "web-animations-js": "web-animations/web-animations-js#^2.2.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-dialog/demo/index.html b/bower_components/paper-dialog/demo/index.html new file mode 100644 index 00000000..d332d912 --- /dev/null +++ b/bower_components/paper-dialog/demo/index.html @@ -0,0 +1,230 @@ + + + + + + + + + + + paper-dialog demo + + + + + + + + + + + + + + + + + + + + + +

      Dialog layouts

      + + + + +

      Styling and positioning

      + + + + +

      Position with positionTarget

      + + + + +

      Transitions with neon-animation

      + + + + + + + diff --git a/bower_components/paper-dialog/hero.svg b/bower_components/paper-dialog/hero.svg new file mode 100755 index 00000000..713329b8 --- /dev/null +++ b/bower_components/paper-dialog/hero.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog/index.html b/bower_components/paper-dialog/index.html new file mode 100644 index 00000000..6304b8dc --- /dev/null +++ b/bower_components/paper-dialog/index.html @@ -0,0 +1,30 @@ + + + + + + + + + paper-dialog + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog/package-lock.json b/bower_components/paper-dialog/package-lock.json new file mode 100644 index 00000000..8d41a624 --- /dev/null +++ b/bower_components/paper-dialog/package-lock.json @@ -0,0 +1,1196 @@ +{ + "name": "@polymer/paper-dialog", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.1.tgz", + "integrity": "sha512-N0rNp+F8Cp0iQ40i3Lx3onWnRXMnfMosR9WFE+IHMF4k5Fv2toRYz77EZMEPPZCz1tzFmCUelHxvxpdssT9oCw==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "5.0.2", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.14" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.7" + } + }, + "@types/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", + "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/resolve": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.6.tgz", + "integrity": "sha512-g+Rg8uMWY76oYTyaL+m7ZcblqF/oj7pE6uEUyACluJx4zcop1Lk14qQiocdEkEVMDFm6DmKpxJhsER+ZuTwG3g==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.3.tgz", + "integrity": "sha512-flMsJ9eSpShupt2Gwpka84DoMePvE4HlDObzdEc+1iNkacv3+NHlsJ7dMKmbnVA/AT22UhcGEBHwbJLoXWBO6Q==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.3.tgz", + "integrity": "sha512-iMWYqwDarQOVlEGcK1MfbtK9vrFGs5Z4UQsdASJUHdhBp918EM5kndwriiIbhUX8gr2B/CEV/udJkFTrHsjdMQ==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "7.0.0-beta.3", + "babel-template": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3" + } + }, + "babel-helper-get-function-arity": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.3.tgz", + "integrity": "sha512-ZkYFRMWKx1c9fUW72YNM3eieBG701CMbLjmLLWmJTTPc0F0kddS9Fwok26EAmndUAgD6kFdh7ms3PH94MdGuGQ==", + "dev": true, + "requires": { + "babel-types": "7.0.0-beta.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.3.tgz", + "integrity": "sha512-urJduLja89kSDGqY8ryw8iIwQnMl30IvhMtMNmDD7vBX0l0oylaLgK+7df/9ODX9vR/PhXuif6HYl5HlzAKXMg==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.3.tgz", + "integrity": "sha512-xyh/aPYuedMAfQlSj2kjHjsEmY5/Dpxs576L05DySAVMrV+ADX6l4mTOLysAEGwJfkePJlDLhFuS6SKaxv1V7w==", + "dev": true, + "requires": { + "babel-code-frame": "7.0.0-beta.3", + "babel-helper-function-name": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.27", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.3", + "lodash": "4.17.5" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.27", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.27.tgz", + "integrity": "sha512-ksRx+r8eFIfdt63MCgLc9VxGL7W3jcyveQvMpNMVHgW+eb9mq3Xbm45FLCNkw8h92RvoNp4uuiwzcCEwxjDBZg==", + "dev": true + } + } + }, + "babel-types": { + "version": "7.0.0-beta.3", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.3.tgz", + "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "babylon": { + "version": "7.0.0-beta.40", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.40.tgz", + "integrity": "sha512-AVxF2EcxvGD5hhOuLTOLAXBb0VhwWpEX0HyHdAI2zU+AAP4qEwtQj8voz1JR3uclGai0rfcE+dCTHnNMOnimFg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "cancel-token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cancel-token/-/cancel-token-0.1.1.tgz", + "integrity": "sha1-wYGXZ0uxyEwdaTPr8V2NWlznm08=", + "dev": true, + "requires": { + "@types/node": "4.2.23" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-hICrJJ5zUI7hnEBBluE2169CG3Xnn4D5HPeLkMjbiOyneSLTUX5Wz1d4FSi3xALUtzulIBStSt0S2tLXs8eVrg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "chalk": "2.3.2", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.1" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.14", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.14.tgz", + "integrity": "sha512-1Zh/smUWMrjBB7NFUk8i7EAnjO81PqhI0/RzMMy9VgAbPQ6jOROwFX71T02CgpkZYa0O66Ybl7G3+4+0S1aF1Q==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/is-windows": "0.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.102", + "@types/parse5": "2.2.34", + "@types/resolve": "0.0.6", + "babel-generator": "6.26.1", + "babel-traverse": "7.0.0-beta.3", + "babel-types": "7.0.0-beta.3", + "babylon": "7.0.0-beta.40", + "cancel-token": "0.1.1", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "is-windows": "1.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "path-is-inside": "1.0.2", + "polymer-project-config": "3.9.0", + "resolve": "1.5.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3", + "whatwg-url": "6.4.0" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.102", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", + "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.102", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.102", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.102.tgz", + "integrity": "sha512-EhNufyBoC1Kqaj+XMHGzi6mPUC8wVABOMTPE5XaSJc49LIVvXsyrV1HYMAPTUViT7E4wLUB38OdDmb+HshjGmA==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "winston": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.1.tgz", + "integrity": "sha512-k/+Dkzd39ZdyJHYkuaYmf4ff+7j+sCIy73UCOWHYA67/WXU+FF/Y6PF28j+Vy7qNRPHWO+dR+/+zkoQWPimPqg==", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-dialog/package.json b/bower_components/paper-dialog/package.json new file mode 100644 index 00000000..74415a17 --- /dev/null +++ b/bower_components/paper-dialog/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/paper-dialog", + "private": true, + "description": "A Material Design dialog", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-dialog" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.1", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/paper-dialog/paper-dialog.d.ts b/bower_components/paper-dialog/paper-dialog.d.ts new file mode 100644 index 00000000..0be18119 --- /dev/null +++ b/bower_components/paper-dialog/paper-dialog.d.ts @@ -0,0 +1,74 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-dialog.html + */ + +/// +/// +/// +/// + +/** + * Material design: [Dialogs](https://www.google.com/design/spec/components/dialogs.html) + * + * `` is a dialog with Material Design styling and optional animations when it is + * opened or closed. It provides styles for a header, content area, and an action area for buttons. + * You can use the `` element (in its own repository) if you need a scrolling + * content area. To autofocus a specific child element after opening the dialog, give it the `autofocus` + * attribute. See `Polymer.PaperDialogBehavior` and `Polymer.IronOverlayBehavior` for specifics. + * + * For example, the following code implements a dialog with a header, scrolling content area and + * buttons. Focus will be given to the `dialog-confirm` button when the dialog is opened. + * + * + *

      Header

      + * + * Lorem ipsum... + * + *
      + * Cancel + * Accept + *
      + *
      + * + * ### Styling + * + * See the docs for `Polymer.PaperDialogBehavior` for the custom properties available for styling + * this element. + * + * ### Animations + * + * Set the `entry-animation` and/or `exit-animation` attributes to add an animation when the dialog + * is opened or closed. See the documentation in + * [PolymerElements/neon-animation](https://github.com/PolymerElements/neon-animation) for more info. + * + * For example: + * + * + * + * + * + *

      Header

      + *
      Dialog body
      + *
      + * + * ### Accessibility + * + * See the docs for `Polymer.PaperDialogBehavior` for accessibility features implemented by this + * element. + */ +interface PaperDialogElement extends Polymer.Element, Polymer.PaperDialogBehavior, Polymer.NeonAnimationRunnerBehavior { + _renderOpened(): void; + _renderClosed(): void; + _onNeonAnimationFinish(): void; +} + +interface HTMLElementTagNameMap { + "paper-dialog": PaperDialogElement; +} diff --git a/bower_components/paper-dialog/paper-dialog.html b/bower_components/paper-dialog/paper-dialog.html new file mode 100644 index 00000000..82874670 --- /dev/null +++ b/bower_components/paper-dialog/paper-dialog.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog/test/index.html b/bower_components/paper-dialog/test/index.html new file mode 100644 index 00000000..4031d37a --- /dev/null +++ b/bower_components/paper-dialog/test/index.html @@ -0,0 +1,31 @@ + + + paper-dialog tests + + + + + + + + + + + + + + + diff --git a/bower_components/paper-dialog/test/paper-dialog.html b/bower_components/paper-dialog/test/paper-dialog.html new file mode 100644 index 00000000..02ed5090 --- /dev/null +++ b/bower_components/paper-dialog/test/paper-dialog.html @@ -0,0 +1,92 @@ + + + + + + + paper-dialog tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-fab/.bower.json b/bower_components/paper-fab/.bower.json new file mode 100644 index 00000000..f7fd3818 --- /dev/null +++ b/bower_components/paper-fab/.bower.json @@ -0,0 +1,71 @@ +{ + "name": "paper-fab", + "version": "2.1.0", + "description": "A material design floating action button", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "button" + ], + "main": "paper-fab.html", + "ignore": [], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-fab.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-fab", + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.1.0", + "_resolution": { + "type": "version", + "tag": "v2.1.0", + "commit": "e2cea6a9b779782b558b9baf1ed13477fd27907c" + }, + "_source": "https://github.com/PolymerElements/paper-fab.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-fab" +} \ No newline at end of file diff --git a/bower_components/paper-fab/.github/CODEOWNERS b/bower_components/paper-fab/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/paper-fab/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/paper-fab/.github/ISSUE_TEMPLATE.md b/bower_components/paper-fab/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..4116981d --- /dev/null +++ b/bower_components/paper-fab/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-fab/.gitignore b/bower_components/paper-fab/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-fab/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-fab/.travis.yml b/bower_components/paper-fab/.travis.yml new file mode 100644 index 00000000..628c28ae --- /dev/null +++ b/bower_components/paper-fab/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + pFhwMVY4fjQHC2PUZM8ueVJT0NdhIfgNJcExYRsDRS32Qx7RXMPEVd15r9GcBFy9YjTzHJEAiemqmD6gsQzBBcTECiLDfXK+NCDiiqdgq298aZ2mXk9wJpOyOBkD2baLlSKkcUey0PMcSgudT62qzONJDk2qxe0L3tJf4knrVwS1emGLdSwLdFHhNxTuGvmJsJeMdkliPbNQUiC0LnsQT6t59/DQx2BgQC9hY6/YR43s3X8splMZ7w/fUTZe67D9JTV5xva65Ya7yslF60Cn0WSlply5CaSbLzsqHUFTXqy2pt9k39xGDjRg7C7tmoKsjVVDS5BZ6CeWc899D5oNhZ6xlzJEhu22BeMeH6xh9MG3vQeeAicExOthq63IwhyBcdTqstQmOrNmoUZffSIdNIQJZJAfatS+ZvIjYutJYUzg/5wfUQf3J7XseYuaaK2nROICceCfn9IJFdZgpSehmbVdHdW3qu7FCrWif1Qwfe6GwT8z5Af257msUBNlxMTIFnQ8khxFo1ddb4k3pn408hEQUkI18/wb7imJQViWzIjeFlo+3LXynUdOwEQaw+RU/3tBKi3kHvbtnLhHWiEezX+qkJ14h3k6deLAyCSbL4739+xBnRam0ff1KVxI+fQ/8Wcr5mqwovalbW1ii0r6HwxEv4CaE9rqE7HJBphLqg8= + - secure: >- + i0EEW7GEgn9QfKCQMaiyI5ezZtUaG0tgaHiSUg2uDW1fzfWb8MYh47dyXNPNe3/qj7fBNnjum0tZhF/l2woFvQUzFHgw1Q1+sJl52TJBK8i4DaNK2FhiieB2yNOHpWP3Lgdc4kEJpMIy5pydOYi+3KRT+2GdSZp50r6I9aJnmvtdP55n8SHrHmRsZkc2KWtP8qCFbh4IHjhYOIZ62GyeFg4FIGQ1yuwQIf2Uv4XaUcbiZk17o+dd02xN/AtH7OVWqb4GsdkMOzo6K0sJo8SWNZV7UQOPxvo2JRMumvd4DuLO1Cq7da4rDpQR6E43cW3Iwax6r7x/mxt/PhELMid/jFOzWWmYj+IEk2ZcnpwkVZB62RTwDomCFF3r2Yh0v1kcp62y+yZ2sxTuy3+od4wKVubpFLQwxo+tUnNDrbsCgrhkwYPqriZvz+vKJItWb/hAAAh5gR2lgsQGXH0NM3Rt4qnQmUF6P8tmF7HZFfEhSuG3L4HiDibbRNlY4UwnxVfypxFx1NWpl2hTn3rnM+yOmOlE/trlrvsrVgDpfK1fQ2+45KCF2uPoTeB01OCCKjQ3w3EWc2S+K9yNlqKUn3zLhLtsGgoM4dGhBgwBLqPj9FBwkXevmewRJg4Y7qpsbx/1SIuEK0pjL28/WINQsy8A17ndzDHyxc+t/kbnstbk6PQ= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-fab/CONTRIBUTING.md b/bower_components/paper-fab/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-fab/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-fab/README.md b/bower_components/paper-fab/README.md new file mode 100644 index 00000000..f4575061 --- /dev/null +++ b/bower_components/paper-fab/README.md @@ -0,0 +1,58 @@ +[![Build status](https://travis-ci.org/PolymerElements/paper-fab.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-fab) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/paper-fab) + +## <paper-fab> + +Material design: [Floating Action Button](https://www.google.com/design/spec/components/buttons-floating-action-button.html) + +`paper-fab` is a floating action button. It contains an image placed in the center and +comes in two sizes: regular size and a smaller size by applying the attribute `mini`. When +the user touches the button, a ripple effect emanates from the center of the button. + +You may import `iron-icons` to use with this element, or provide a URL to a custom icon. +See `iron-iconset` for more information about how to use a custom icon set. + + +```html + + + +``` + +### Changes in 2.0 +- Implementation detail: `paper-material` has been replaced with the shared style in `paper-styles/element-styles/paper-material-styles.html`. diff --git a/bower_components/paper-fab/bower.json b/bower_components/paper-fab/bower.json new file mode 100644 index 00000000..e1c09180 --- /dev/null +++ b/bower_components/paper-fab/bower.json @@ -0,0 +1,62 @@ +{ + "name": "paper-fab", + "version": "2.1.0", + "description": "A material design floating action button", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "button" + ], + "main": "paper-fab.html", + "ignore": [], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-fab.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-fab", + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "polymer": "Polymer/polymer#1.9 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "polymer": "Polymer/polymer#^1.9" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-fab/demo/index.html b/bower_components/paper-fab/demo/index.html new file mode 100644 index 00000000..c0d09238 --- /dev/null +++ b/bower_components/paper-fab/demo/index.html @@ -0,0 +1,95 @@ + + + + + + + + + + paper-fab demo + + + + + + + + + + + + + + +
      +

      FABs can be enabled or disabled

      + + + + +

      FABs can be made smaller using the mini attribute

      + + + + +

      FABs can hide the ripple effect using the noink attribute

      + + + + +

      FABs can be styled using custom properties

      + + + +
      + + diff --git a/bower_components/paper-fab/index.html b/bower_components/paper-fab/index.html new file mode 100644 index 00000000..b0ced26a --- /dev/null +++ b/bower_components/paper-fab/index.html @@ -0,0 +1,24 @@ + + + + + + paper-fab + + + + + + + + + + diff --git a/bower_components/paper-fab/package-lock.json b/bower_components/paper-fab/package-lock.json new file mode 100644 index 00000000..2beecfec --- /dev/null +++ b/bower_components/paper-fab/package-lock.json @@ -0,0 +1,983 @@ +{ + "name": "@polymer/paper-fab", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "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.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.9.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-fab/package.json b/bower_components/paper-fab/package.json new file mode 100644 index 00000000..cd8af7cb --- /dev/null +++ b/bower_components/paper-fab/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/paper-fab", + "private": true, + "description": "A material design floating action button", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-fab.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/paper-fab/paper-fab.d.ts b/bower_components/paper-fab/paper-fab.d.ts new file mode 100644 index 00000000..26f596e8 --- /dev/null +++ b/bower_components/paper-fab/paper-fab.d.ts @@ -0,0 +1,85 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-fab.html + */ + +/// +/// +/// +/// +/// +/// +/// + +/** + * Material design: [Floating Action Button](https://www.google.com/design/spec/components/buttons-floating-action-button.html) + * + * `paper-fab` is a floating action button. It contains an image placed in the center and + * comes in two sizes: regular size and a smaller size by applying the attribute `mini`. When + * the user touches the button, a ripple effect emanates from the center of the button. + * + * You may import `iron-icons` to use with this element, or provide a URL to a custom icon. + * See `iron-iconset` for more information about how to use a custom icon set. + * + * Example: + * + * + * + * + * + * + * + * + * ### Styling + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-fab-background` | The background color of the button | `--accent-color` + * `--paper-fab-keyboard-focus-background` | The background color of the button when focused | `--paper-pink-900` + * `--paper-fab-disabled-background` | The background color of the button when it's disabled | `--paper-grey-300` + * `--paper-fab-disabled-text` | The text color of the button when it's disabled | `--paper-grey-500` + * `--paper-fab` | Mixin applied to the button | `{}` + * `--paper-fab-mini` | Mixin applied to a mini button | `{}` + * `--paper-fab-disabled` | Mixin applied to a disabled button | `{}` + * `--paper-fab-iron-icon` | Mixin applied to the iron-icon within the button | `{}` + * `--paper-fab-label` | Mixin applied to the label within the button | `{}` + */ +interface PaperFabElement extends Polymer.Element, Polymer.PaperButtonBehavior { + + /** + * The URL of an image for the icon. If the src property is specified, + * the icon property should not be. + */ + src: string|null|undefined; + + /** + * Specifies the icon name or index in the set of icons available in + * the icon's icon set. If the icon property is specified, + * the src property should not be. + */ + icon: string|null|undefined; + + /** + * Set this to true to style this is a "mini" FAB. + */ + mini: boolean|null|undefined; + + /** + * The label displayed in the badge. The label is centered, and ideally + * should have very few characters. + */ + label: string|null|undefined; + _labelChanged(): void; + _computeIsIconFab(icon: any, src: any): any; +} + +interface HTMLElementTagNameMap { + "paper-fab": PaperFabElement; +} diff --git a/bower_components/paper-fab/paper-fab.html b/bower_components/paper-fab/paper-fab.html new file mode 100644 index 00000000..9313a64a --- /dev/null +++ b/bower_components/paper-fab/paper-fab.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-fab/test/a11y.html b/bower_components/paper-fab/test/a11y.html new file mode 100644 index 00000000..7029aff5 --- /dev/null +++ b/bower_components/paper-fab/test/a11y.html @@ -0,0 +1,67 @@ + + + + + + paper-fab a11y tests + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-fab/test/basic.html b/bower_components/paper-fab/test/basic.html new file mode 100644 index 00000000..a0ae42d3 --- /dev/null +++ b/bower_components/paper-fab/test/basic.html @@ -0,0 +1,141 @@ + + + + + + paper-fab basic tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-fab/test/index.html b/bower_components/paper-fab/test/index.html new file mode 100644 index 00000000..37fd4519 --- /dev/null +++ b/bower_components/paper-fab/test/index.html @@ -0,0 +1,28 @@ + + + + + + + paper-fab tests + + + + + + diff --git a/bower_components/paper-icon-button/.bower.json b/bower_components/paper-icon-button/.bower.json new file mode 100644 index 00000000..4508e3eb --- /dev/null +++ b/bower_components/paper-icon-button/.bower.json @@ -0,0 +1,71 @@ +{ + "name": "paper-icon-button", + "private": true, + "version": "2.2.0", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "A material design icon button", + "main": [ + "paper-icon-button.html" + ], + "author": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "button", + "icon", + "control" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-icon-button.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "homepage": "https://github.com/PolymerElements/paper-icon-button", + "_release": "2.2.0", + "_resolution": { + "type": "version", + "tag": "v2.2.0", + "commit": "bb7d6980b48866c63cd9466d155a8beabc8058d9" + }, + "_source": "https://github.com/PolymerElements/paper-icon-button.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-icon-button" +} \ No newline at end of file diff --git a/bower_components/paper-icon-button/.github/CODEOWNERS b/bower_components/paper-icon-button/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/paper-icon-button/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md b/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..c80193d9 --- /dev/null +++ b/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-icon-button/.gitignore b/bower_components/paper-icon-button/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-icon-button/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-icon-button/.travis.yml b/bower_components/paper-icon-button/.travis.yml new file mode 100644 index 00000000..3f775b36 --- /dev/null +++ b/bower_components/paper-icon-button/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + HdHTMNdAamEtP+Nl5/mL2X7IKba4p2+ljpDSnvkA6gyoLzrWRZAyUjJxGjVRutQejTa8ZLOGXnBYKugSIMrGv8cblvngbhEmIHd2HBnPjd140KNwtsCtzPRDMdJMrvekVOXgpCkecmGq9G/j0WOoOnYY9oJrHB5dFy0y7LfPy6w= + - secure: >- + XjZRR/HW23UneacknoaYle/dg2Diupr9p9UOWLR7w6ejvwIP99nUF0Bh4trZkUiXBBt29HOBoETwBTMizDHNg8vKe544EgR26Fq4Lwk5EuEHy3xeyroiHlwc56ZC9Obye1kdM3QjU6rzJ7F9NuRL2E0ttgZjt/OnM+vKx3kqGOY= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - xvfb-run polymer test + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-icon-button/CONTRIBUTING.md b/bower_components/paper-icon-button/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-icon-button/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-icon-button/README.md b/bower_components/paper-icon-button/README.md new file mode 100644 index 00000000..0fe349c4 --- /dev/null +++ b/bower_components/paper-icon-button/README.md @@ -0,0 +1,92 @@ + + + +[![Build status](https://travis-ci.org/PolymerElements/paper-icon-button.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-icon-button) + +_[Demo and API docs](https://elements.polymer-project.org/elements/paper-icon-button)_ + + +## <paper-icon-button> + +Material design: [Icon toggles](https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons) + +`paper-icon-button` is a button with an image placed at the center. When the user touches +the button, a ripple effect emanates from the center of the button. + +`paper-icon-button` does not include a default icon set. To use icons from the default +set, include `PolymerElements/iron-icons/iron-icons.html`, and use the `icon` attribute to specify which icon +from the icon set to use. + + +```html + + + +``` + +See [`iron-iconset`](https://github.com/PolymerElements/iron-iconset) for more information about +how to use a custom icon set. + +Example: + +```html + + + + +``` + +To use `paper-icon-button` as a link, wrap it in an anchor tag. Since `paper-icon-button` +will already receive focus, you may want to prevent the anchor tag from receiving focus +as well by setting its tabindex to -1. + +```html + + + +``` + +### Styling + +Style the button with CSS as you would a normal DOM element. If you are using the icons +provided by `iron-icons`, they will inherit the foreground color of the button. + +```html +/* make a red "favorite" button */ + +``` + +By default, the ripple is the same color as the foreground at 25% opacity. You may +customize the color using the `--paper-icon-button-ink-color` custom property. + +The following custom properties and mixins are available for styling: + +| Custom property | Description | Default | +| --- | --- | --- | +| `--paper-icon-button-disabled-text` | The color of the disabled button | `--disabled-text-color` | +| `--paper-icon-button-ink-color` | Selected/focus ripple color | `--primary-text-color` | +| `--paper-icon-button` | Mixin for a button | `{}` | +| `--paper-icon-button-disabled` | Mixin for a disabled button | `{}` | +| `--paper-icon-button-hover` | Mixin for button on hover | `{}` | diff --git a/bower_components/paper-icon-button/bower.json b/bower_components/paper-icon-button/bower.json new file mode 100644 index 00000000..9f3da88a --- /dev/null +++ b/bower_components/paper-icon-button/bower.json @@ -0,0 +1,61 @@ +{ + "name": "paper-icon-button", + "private": true, + "version": "2.2.0", + "license": "http://polymer.github.io/LICENSE.txt", + "description": "A material design icon button", + "main": [ + "paper-icon-button.html" + ], + "author": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "button", + "icon", + "control" + ], + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-icon-button.git" + }, + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "ignore": [], + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-icon-button/demo/index.html b/bower_components/paper-icon-button/demo/index.html new file mode 100644 index 00000000..9347d934 --- /dev/null +++ b/bower_components/paper-icon-button/demo/index.html @@ -0,0 +1,111 @@ + + + + + paper-icon-button demo + + + + + + + + + + + + + + +
      +

      Buttons can use iron-icons or external images, and can be disabled

      + + + + +

      Buttons can hide the ripple effect using the noink attribute

      + + + + +

      Buttons can be styled using regular CSS and custom properties

      + + + + +

      Buttons can be resized

      + + + + +

      Buttons can be used as a link

      + + + +
      + + diff --git a/bower_components/paper-icon-button/demo/paper-icon-button-light.html b/bower_components/paper-icon-button/demo/paper-icon-button-light.html new file mode 100644 index 00000000..7437b251 --- /dev/null +++ b/bower_components/paper-icon-button/demo/paper-icon-button-light.html @@ -0,0 +1,68 @@ + + + + + paper-icon-button-light demo + + + + + + + + + + + + + + + +
      +

      paper-icon-button-light can contain iron-icons or external images and can be disabled

      + + + +
      + + diff --git a/bower_components/paper-icon-button/index.html b/bower_components/paper-icon-button/index.html new file mode 100644 index 00000000..78f963c7 --- /dev/null +++ b/bower_components/paper-icon-button/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/bower_components/paper-icon-button/package-lock.json b/bower_components/paper-icon-button/package-lock.json new file mode 100644 index 00000000..bd317fe2 --- /dev/null +++ b/bower_components/paper-icon-button/package-lock.json @@ -0,0 +1,983 @@ +{ + "name": "@polymer/paper-icon-button", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "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.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.9.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.3" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz", + "integrity": "sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-icon-button/package.json b/bower_components/paper-icon-button/package.json new file mode 100644 index 00000000..3923985b --- /dev/null +++ b/bower_components/paper-icon-button/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/paper-icon-button", + "private": true, + "description": "A material design icon button", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-icon-button.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.0", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/paper-icon-button/paper-icon-button-light.d.ts b/bower_components/paper-icon-button/paper-icon-button-light.d.ts new file mode 100644 index 00000000..49271d7d --- /dev/null +++ b/bower_components/paper-icon-button/paper-icon-button-light.d.ts @@ -0,0 +1,50 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-icon-button-light.html + */ + +/// +/// + +/** + * This is a lighter version of `paper-icon-button`. Its goal is performance, not + * developer ergonomics, so as a result it has fewer features than `paper-icon-button` + * itself. To use it, you must distribute a `button` containing the `iron-icon` you + * want to use: + * + * + * + * + * + * + * + * + * + * Note that this button is assumed to be distributed at the startup of + * `paper-icon-button-light`. Dynamically adding a `button` to this element is + * not supported. + * + * The `title`/`disabled` etc. attributes go on the distributed button, not on the wrapper. + * + * The following custom properties and mixins are also available for styling: + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-icon-button-light-ripple` | Mixin applied to the paper ripple | `{}` + */ +interface PaperIconButtonLightElement extends Polymer.Element, Polymer.PaperRippleBehavior { + ensureRipple(...var_args: any[]): void; + ready(): void; + _rippleDown(): void; + _rippleUp(): void; +} + +interface HTMLElementTagNameMap { + "paper-icon-button-light": PaperIconButtonLightElement; +} diff --git a/bower_components/paper-icon-button/paper-icon-button-light.html b/bower_components/paper-icon-button/paper-icon-button-light.html new file mode 100644 index 00000000..25c9e92d --- /dev/null +++ b/bower_components/paper-icon-button/paper-icon-button-light.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + diff --git a/bower_components/paper-icon-button/paper-icon-button.d.ts b/bower_components/paper-icon-button/paper-icon-button.d.ts new file mode 100644 index 00000000..6c0ad02c --- /dev/null +++ b/bower_components/paper-icon-button/paper-icon-button.d.ts @@ -0,0 +1,92 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-icon-button.html + */ + +/// +/// +/// +/// + +/** + * Material design: [Icon toggles](https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons) + * + * `paper-icon-button` is a button with an image placed at the center. When the user touches + * the button, a ripple effect emanates from the center of the button. + * + * `paper-icon-button` does not include a default icon set. To use icons from the default + * set, include `PolymerElements/iron-icons/iron-icons.html`, and use the `icon` attribute to specify which icon + * from the icon set to use. + * + * + * + * See [`iron-iconset`](iron-iconset) for more information about + * how to use a custom icon set. + * + * Example: + * + * + * + * + * + * + * To use `paper-icon-button` as a link, wrap it in an anchor tag. Since `paper-icon-button` + * will already receive focus, you may want to prevent the anchor tag from receiving focus + * as well by setting its tabindex to -1. + * + * + * + * + * + * ### Styling + * + * Style the button with CSS as you would a normal DOM element. If you are using the icons + * provided by `iron-icons`, they will inherit the foreground color of the button. + * + * /* make a red "favorite" button *\/ + * + * + * By default, the ripple is the same color as the foreground at 25% opacity. You may + * customize the color using the `--paper-icon-button-ink-color` custom property. + * + * The following custom properties and mixins are available for styling: + * + * Custom property | Description | Default + * ----------------|-------------|---------- + * `--paper-icon-button-disabled-text` | The color of the disabled button | `--disabled-text-color` + * `--paper-icon-button-ink-color` | Selected/focus ripple color | `--primary-text-color` + * `--paper-icon-button` | Mixin for a button | `{}` + * `--paper-icon-button-disabled` | Mixin for a disabled button | `{}` + * `--paper-icon-button-hover` | Mixin for button on hover | `{}` + */ +interface PaperIconButtonElement extends Polymer.Element, Polymer.PaperInkyFocusBehavior { + + /** + * The URL of an image for the icon. If the src property is specified, + * the icon property should not be. + */ + src: string|null|undefined; + + /** + * Specifies the icon name or index in the set of icons available in + * the icon's icon set. If the icon property is specified, + * the src property should not be. + */ + icon: string|null|undefined; + + /** + * Specifies the alternate text for the button, for accessibility. + */ + alt: string|null|undefined; + hostAttributes: object|null; + _altChanged(newValue: any, oldValue: any): void; +} + +interface HTMLElementTagNameMap { + "paper-icon-button": PaperIconButtonElement; +} diff --git a/bower_components/paper-icon-button/paper-icon-button.html b/bower_components/paper-icon-button/paper-icon-button.html new file mode 100644 index 00000000..3d857202 --- /dev/null +++ b/bower_components/paper-icon-button/paper-icon-button.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + diff --git a/bower_components/paper-icon-button/test/a11y.html b/bower_components/paper-icon-button/test/a11y.html new file mode 100644 index 00000000..a56c9f45 --- /dev/null +++ b/bower_components/paper-icon-button/test/a11y.html @@ -0,0 +1,92 @@ + + + + + + paper-icon-button a11y tests + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-icon-button/test/basic.html b/bower_components/paper-icon-button/test/basic.html new file mode 100644 index 00000000..fa3afad8 --- /dev/null +++ b/bower_components/paper-icon-button/test/basic.html @@ -0,0 +1,75 @@ + + + + + + paper-icon-button basic tests + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-icon-button/test/index.html b/bower_components/paper-icon-button/test/index.html new file mode 100644 index 00000000..212c791a --- /dev/null +++ b/bower_components/paper-icon-button/test/index.html @@ -0,0 +1,26 @@ + + + + paper-icon-button tests + + + + + + + diff --git a/bower_components/paper-input/.bower.json b/bower_components/paper-input/.bower.json new file mode 100644 index 00000000..d4d50baf --- /dev/null +++ b/bower_components/paper-input/.bower.json @@ -0,0 +1,93 @@ +{ + "name": "paper-input", + "version": "2.2.2", + "description": "Material design text fields", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "input" + ], + "main": [ + "paper-input.html", + "paper-textarea.html", + "paper-input-behavior.html", + "paper-input-container.html", + "paper-input-error.html", + "paper-input-addon-behavior.html", + "paper-input-char-counter.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-input.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-input", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#1 - 2", + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-input": "PolymerElements/iron-input#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#^1.0.0", + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-input": "PolymerElements/iron-input#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.1.4", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + }, + "_release": "2.2.2", + "_resolution": { + "type": "version", + "tag": "v2.2.2", + "commit": "a89e8f491d01c77e167a4361d0535683591e0a01" + }, + "_source": "https://github.com/PolymerElements/paper-input.git", + "_target": "^2.0.0", + "_originalSource": "PolymerElements/paper-input" +} \ No newline at end of file diff --git a/bower_components/paper-input/.github/CODEOWNERS b/bower_components/paper-input/.github/CODEOWNERS new file mode 100644 index 00000000..cc86f1ec --- /dev/null +++ b/bower_components/paper-input/.github/CODEOWNERS @@ -0,0 +1,2 @@ +* @notwaldorf +/.travis.yml @azakus diff --git a/bower_components/paper-input/.github/ISSUE_TEMPLATE.md b/bower_components/paper-input/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..99b9301c --- /dev/null +++ b/bower_components/paper-input/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + +### Description + + +### Expected outcome + + + +### Actual outcome + + + +### Live Demo + + +### Steps to reproduce + + + +### Browsers Affected + +- [ ] Chrome +- [ ] Firefox +- [ ] Safari 9 +- [ ] Safari 8 +- [ ] Safari 7 +- [ ] Edge +- [ ] IE 11 +- [ ] IE 10 diff --git a/bower_components/paper-input/.gitignore b/bower_components/paper-input/.gitignore new file mode 100644 index 00000000..678c29bf --- /dev/null +++ b/bower_components/paper-input/.gitignore @@ -0,0 +1,3 @@ +bower_components* +bower-*.json +node_modules diff --git a/bower_components/paper-input/.travis.yml b/bower_components/paper-input/.travis.yml new file mode 100644 index 00000000..73fdaaf0 --- /dev/null +++ b/bower_components/paper-input/.travis.yml @@ -0,0 +1,30 @@ +language: node_js +sudo: required +before_script: + - npm install -g polymer-cli + - polymer install --variants + - >- + npm run update-types && git diff --exit-code || (echo -e + '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run + update-types".' && false) +env: + global: + - secure: >- + Hg2KIEhKqOw0J8ZW2C3Pdgp5N4HD/f9jhdluH0tiYRCU4I/jf5grQuA3ohqsbqnJKV5l06gWVIDCdxBDwDEH0h8v9uUG5z/i2diiuLQc94SLQu8kWKkUPDOx+pUyXmfRKj6KnaRTotTLFrwlyuKDi9OfGjQbLZWTvmJUWoFwh4g= + - secure: >- + U6/Hp/V0ezT/yxeP2bv4S99LSLScKEaOfYwQUbe0+v5dPbN5XZaCUS6iSbNP2K8Mtb1UQUEyL8uN6Zn+khFlJ8/KJshppJ6HJi235CykahBhh9/Cv7EapgDUoss14ntE8EKpm6Ijo4LvVyPVmhgqKk9wP5ykDFtvhoKD4C3guVU= +node_js: stable +addons: + firefox: latest + apt: + sources: + - google-chrome + packages: + - google-chrome-stable + sauce_connect: true +script: + - polymer test -l chrome -l firefox + - >- + if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; + fi +dist: trusty diff --git a/bower_components/paper-input/CONTRIBUTING.md b/bower_components/paper-input/CONTRIBUTING.md new file mode 100644 index 00000000..093090d4 --- /dev/null +++ b/bower_components/paper-input/CONTRIBUTING.md @@ -0,0 +1,77 @@ + + +# Polymer Elements +## Guide for Contributors + +Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: + +### Filing Issues + +**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: + + 1. **Who will use the feature?** _“As someone filling out a form…”_ + 2. **When will they use the feature?** _“When I enter an invalid value…”_ + 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ + +**If you are filing an issue to report a bug**, please provide: + + 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: + + ```markdown + The `paper-foo` element causes the page to turn pink when clicked. + + ## Expected outcome + + The page stays the same color. + + ## Actual outcome + + The page turns pink. + + ## Steps to reproduce + + 1. Put a `paper-foo` element in the page. + 2. Open the page in a web browser. + 3. Click the `paper-foo` element. + ``` + + 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). + + 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. + +### Submitting Pull Requests + +**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. + +When submitting pull requests, please provide: + + 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: + + ```markdown + (For a single issue) + Fixes #20 + + (For multiple issues) + Fixes #32, fixes #40 + ``` + + 2. **A succinct description of the design** used to fix any related issues. For example: + + ```markdown + This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. + ``` + + 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. + +If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/bower_components/paper-input/README.md b/bower_components/paper-input/README.md new file mode 100644 index 00000000..4b24d6fd --- /dev/null +++ b/bower_components/paper-input/README.md @@ -0,0 +1,44 @@ +[![Build status](https://travis-ci.org/PolymerElements/paper-input.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-input) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://beta.webcomponents.org/element/PolymerElements/paper-input) + +## <paper-input> + +Material design: [Text fields](https://www.google.com/design/spec/components/text-fields.html) + +`` is a single-line text field with Material Design styling. + + +```html + + + +
      @email.com
      +
      +``` + +### Changes in 2.0 +- Distribution is now done with slots, so things have changed because of that (before: , now ; same for input, prefix and suffix) +- Since type extensions are not available, any use of `` has been replaced by ``. See [iron-input](https://github.com/PolymerElements/iron-input) for more details about that change +- `prevent-invalid-input` and `allowed-pattern` had to be always used together; deleted `prevent-invalid-input`, so that only `allowed-pattern` is needed + diff --git a/bower_components/paper-input/all-imports.d.ts b/bower_components/paper-input/all-imports.d.ts new file mode 100644 index 00000000..d22fa100 --- /dev/null +++ b/bower_components/paper-input/all-imports.d.ts @@ -0,0 +1,13 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * all-imports.html + */ + +/// +/// + diff --git a/bower_components/paper-input/all-imports.html b/bower_components/paper-input/all-imports.html new file mode 100644 index 00000000..0f457718 --- /dev/null +++ b/bower_components/paper-input/all-imports.html @@ -0,0 +1,12 @@ + + + + diff --git a/bower_components/paper-input/bower.json b/bower_components/paper-input/bower.json new file mode 100644 index 00000000..5a0c4be2 --- /dev/null +++ b/bower_components/paper-input/bower.json @@ -0,0 +1,84 @@ +{ + "name": "paper-input", + "version": "2.2.2", + "description": "Material design text fields", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "input" + ], + "main": [ + "paper-input.html", + "paper-textarea.html", + "paper-input-behavior.html", + "paper-input-container.html", + "paper-input-error.html", + "paper-input-addon-behavior.html", + "paper-input-char-counter.html" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-input.git" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-input", + "ignore": [], + "dependencies": { + "polymer": "Polymer/polymer#1.9 - 2", + "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#1 - 2", + "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", + "iron-input": "PolymerElements/iron-input#1 - 2", + "paper-styles": "PolymerElements/paper-styles#1 - 2", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#1 - 2", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", + "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", + "iron-icon": "PolymerElements/iron-icon#1 - 2", + "iron-icons": "PolymerElements/iron-icons#1 - 2", + "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", + "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", + "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", + "web-component-tester": "^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "variants": { + "1.x": { + "dependencies": { + "polymer": "Polymer/polymer#^1.9", + "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#^1.0.0", + "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", + "iron-input": "PolymerElements/iron-input#^1.0.0", + "paper-styles": "PolymerElements/paper-styles#^1.1.4", + "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", + "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", + "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", + "iron-icon": "PolymerElements/iron-icon#^1.0.0", + "iron-icons": "PolymerElements/iron-icons#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", + "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "web-component-tester": "^4.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "resolutions": { + "webcomponentsjs": "^0.7" + } + } + }, + "resolutions": { + "webcomponentsjs": "^1.0.0" + } +} diff --git a/bower_components/paper-input/demo/index.html b/bower_components/paper-input/demo/index.html new file mode 100644 index 00000000..cc284103 --- /dev/null +++ b/bower_components/paper-input/demo/index.html @@ -0,0 +1,237 @@ + + + + + + + + + paper-input demo + + + + + + + + + + + + + + + + + + + + + +
      +

      Inputs can have different types, and be disabled

      + + + + +

      Inputs can have character counters

      + + + + +

      The label can have different floating states

      + + + + +

      Inputs can validate automatically or on demand, and can have custom error messages

      + + + + +

      Inputs can have prefixes and suffixes

      + + + + +

      Inputs can have custom logic

      + + + + +

      You can use paper-input-container directly if you want more control + over the input (for example, if you want to use this in a native form, etc.)

      + + + + +

      Inputs can be completely restyled

      + + + +
      + + + + diff --git a/bower_components/paper-input/demo/ssn-input.html b/bower_components/paper-input/demo/ssn-input.html new file mode 100644 index 00000000..6d9270d1 --- /dev/null +++ b/bower_components/paper-input/demo/ssn-input.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + diff --git a/bower_components/paper-input/demo/ssn-validator.html b/bower_components/paper-input/demo/ssn-validator.html new file mode 100644 index 00000000..e45365b5 --- /dev/null +++ b/bower_components/paper-input/demo/ssn-validator.html @@ -0,0 +1,27 @@ + + + + + + diff --git a/bower_components/paper-input/hero.svg b/bower_components/paper-input/hero.svg new file mode 100755 index 00000000..146ffeac --- /dev/null +++ b/bower_components/paper-input/hero.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/bower_components/paper-input/index.html b/bower_components/paper-input/index.html new file mode 100644 index 00000000..e6c9fadc --- /dev/null +++ b/bower_components/paper-input/index.html @@ -0,0 +1,28 @@ + + + + + + + + + paper-input + + + + + + + + + + + diff --git a/bower_components/paper-input/package-lock.json b/bower_components/paper-input/package-lock.json new file mode 100644 index 00000000..aaf05b97 --- /dev/null +++ b/bower_components/paper-input/package-lock.json @@ -0,0 +1,983 @@ +{ + "name": "@polymer/paper-input", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@polymer/gen-typescript-declarations": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@polymer/gen-typescript-declarations/-/gen-typescript-declarations-1.2.0.tgz", + "integrity": "sha512-a5DFXI3TdZSVOMH4608LVaBLmcr+mwM2+B8OSBiB9WFNCtdqzUXwtB5We6vBzrThXlO4uRo7d2pEqjNXMAlEkA==", + "dev": true, + "requires": { + "@types/doctrine": "0.0.3", + "@types/fs-extra": "5.0.1", + "@types/glob": "5.0.35", + "command-line-args": "5.0.2", + "command-line-usage": "4.1.0", + "doctrine": "2.1.0", + "escodegen": "1.9.1", + "fs-extra": "5.0.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "polymer-analyzer": "3.0.0-pre.12" + } + }, + "@types/babel-generator": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.1.tgz", + "integrity": "sha512-nKNz9Ch4WP2TFZjQROhxqqS2SCk0OoDzGazJI6S+2sGgW9P7N4o3vluZAXFuPEnRqtz2A0vrrkK3tjQktxIlRw==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-traverse": { + "version": "6.25.3", + "resolved": "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz", + "integrity": "sha512-4FaulWyA7nrXPkzoukL2VmSpxCnBZwc+MgwZqO30gtHCrtaUXnoxymdYfxzf3CZN80zjtrVzKfLlZ7FPYvrhQQ==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/babel-types": { + "version": "6.25.2", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-6.25.2.tgz", + "integrity": "sha512-+3bMuktcY4a70a0KZc8aPJlEOArPuAKQYHU5ErjkOqGJdx8xuEEVK6nWogqigBOJ8nKPxRpyCUDTCPmZ3bUxGA==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.2.tgz", + "integrity": "sha512-+Jty46mPaWe1VAyZbfvgJM4BAdklLWxrT5tc/RjvCgLrtk6gzRY6AOnoWFv4p6hVxhJshDdr2hGVn56alBp97Q==", + "dev": true, + "requires": { + "@types/babel-types": "6.25.2" + } + }, + "@types/chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.1.tgz", + "integrity": "sha512-Aof+FLfWzBPzDgJ2uuBuPNOBHVx9Siyw4vmOcsMgsuxX1nfUWSlzpq4pdvQiaBgGjGS7vP/Oft5dpJbX4krT1A==", + "dev": true, + "requires": { + "@types/chai": "4.1.2" + } + }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=", + "dev": true + }, + "@types/cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@types/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-jgvuj33suVIlDaDK6+BeMFkcF+8=", + "dev": true + }, + "@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha1-6JLSk8ksnB0/mvcsFaVU+8fgiVo=", + "dev": true + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/fs-extra": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", + "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.6" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", + "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "dev": true + }, + "@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha1-44cKEOgnNacg9i1x3NGDunjvOp0=", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "@types/winston": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.8.tgz", + "integrity": "sha512-QqR0j08RCS1AQYPMRPHikEpcmK+2aEEbcSzWLwOqyJ4FhLmHUx/WjRrnn7tTQg/y4IKnMhzskh/o7qvGIZZ7iA==", + "dev": true, + "requires": { + "@types/node": "9.4.6" + } + }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "2.0.1" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "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.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bower": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz", + "integrity": "sha1-rfU1KcjUrwLvJPuNU0HBQZ0z4vc=", + "dev": true + }, + "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", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "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" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "0.1.1", + "array-back": "2.0.0", + "find-replace": "2.0.1", + "lodash.camelcase": "4.3.0", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom5": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.0.tgz", + "integrity": "sha512-PbE+7C4Sh1dHDTLNuSDaMUGD1ivDiSZw0L+a9xVUzUKeQ8w3vdzfKHRA07CxcrFZZOa1SGl2nIJ9T49j63q+bg==", + "dev": true, + "requires": { + "@types/parse5": "2.2.34", + "clone": "2.1.1", + "parse5": "4.0.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "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": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "test-value": "3.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "indent": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/indent/-/indent-0.0.2.tgz", + "integrity": "sha1-jHnwgBkFWbaHA0uEx676l9WpEdk=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonschema": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz", + "integrity": "sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimatch-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", + "integrity": "sha1-QMSWonouEo0Zv3WOdrsBoMcUV4c=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "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" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "plylog": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/plylog/-/plylog-0.5.0.tgz", + "integrity": "sha1-yXbrodgNLdmRAF18EQ2vh0FUeI8=", + "dev": true, + "requires": { + "@types/node": "4.2.23", + "@types/winston": "2.3.8", + "winston": "2.4.0" + }, + "dependencies": { + "@types/node": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz", + "integrity": "sha512-U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w==", + "dev": true + } + } + }, + "polymer-analyzer": { + "version": "3.0.0-pre.12", + "resolved": "https://registry.npmjs.org/polymer-analyzer/-/polymer-analyzer-3.0.0-pre.12.tgz", + "integrity": "sha512-QQL70IC85hI6q9uQeresEMcT1Qf8YR/zDe1qG8WWeeFAZk8z0lmzUpsfcAWz+bM4wpDdXrtd4HitIs4p0CHl/w==", + "dev": true, + "requires": { + "@types/babel-generator": "6.25.1", + "@types/babel-traverse": "6.25.3", + "@types/babel-types": "6.25.2", + "@types/babylon": "6.16.2", + "@types/chai-subset": "1.3.1", + "@types/chalk": "0.4.31", + "@types/clone": "0.1.30", + "@types/cssbeautify": "0.3.1", + "@types/doctrine": "0.0.1", + "@types/minimatch": "3.0.3", + "@types/node": "6.0.101", + "@types/parse5": "2.2.34", + "babel-generator": "6.26.1", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "chalk": "1.1.3", + "clone": "2.1.1", + "cssbeautify": "0.3.1", + "doctrine": "2.1.0", + "dom5": "3.0.0", + "indent": "0.0.2", + "jsonschema": "1.2.2", + "minimatch": "3.0.4", + "parse5": "4.0.0", + "polymer-project-config": "3.9.0", + "shady-css-parser": "0.1.0", + "stable": "0.1.6", + "strip-indent": "2.0.0", + "vscode-uri": "1.0.1" + }, + "dependencies": { + "@types/doctrine": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.1.tgz", + "integrity": "sha1-uZny2fe0PKvgoaLzm8IDvH3K2p0=", + "dev": true + }, + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "polymer-project-config": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/polymer-project-config/-/polymer-project-config-3.9.0.tgz", + "integrity": "sha512-WPOqlV2W/M4Ni40QIqYSv8PE7H4rjiPm1KEf02QPtjZOGlAC4Rv7e6UJ1Ke1O70WT5bydcsEn3LViFIqYpVOJw==", + "dev": true, + "requires": { + "@types/node": "6.0.101", + "jsonschema": "1.2.2", + "minimatch-all": "1.1.0", + "plylog": "0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", + "dev": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "shady-css-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/shady-css-parser/-/shady-css-parser-0.1.0.tgz", + "integrity": "sha512-irfJUUkEuDlNHKZNAp2r7zOyMlmbfVJ+kWSfjlCYYUx/7dJnANLCyTzQZsuxy5NJkvtNwSxY5Gj8MOlqXUQPyA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "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" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "typical": "2.6.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "vscode-uri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz", + "integrity": "sha1-Eahr7+rDxKo+wIYjZRo8gabQu8g=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/bower_components/paper-input/package.json b/bower_components/paper-input/package.json new file mode 100644 index 00000000..78435650 --- /dev/null +++ b/bower_components/paper-input/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polymer/paper-input", + "private": true, + "description": "Material design text fields", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-input.git" + }, + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.1.1", + "bower": "^1.8.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." + } +} diff --git a/bower_components/paper-input/paper-input-addon-behavior.d.ts b/bower_components/paper-input/paper-input-addon-behavior.d.ts new file mode 100644 index 00000000..6da0ff06 --- /dev/null +++ b/bower_components/paper-input/paper-input-addon-behavior.d.ts @@ -0,0 +1,34 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-input-addon-behavior.html + */ + +/// + +declare namespace Polymer { + + /** + * Use `Polymer.PaperInputAddonBehavior` to implement an add-on for ``. A + * add-on appears below the input, and may display information based on the input value and + * validity such as a character counter or an error message. + */ + interface PaperInputAddonBehavior { + attached(): void; + + /** + * The function called by `` when the input value or validity changes. + * + * @param state inputElement: The input element. + * value: The input value. + * invalid: True if the input value is invalid. + */ + update(state: {invalid: boolean, inputElement?: Element|null, value?: string}): void; + } + + const PaperInputAddonBehavior: object; +} diff --git a/bower_components/paper-input/paper-input-addon-behavior.html b/bower_components/paper-input/paper-input-addon-behavior.html new file mode 100644 index 00000000..849174f4 --- /dev/null +++ b/bower_components/paper-input/paper-input-addon-behavior.html @@ -0,0 +1,44 @@ + + + + + diff --git a/bower_components/paper-input/paper-input-behavior.d.ts b/bower_components/paper-input/paper-input-behavior.d.ts new file mode 100644 index 00000000..eb376bed --- /dev/null +++ b/bower_components/paper-input/paper-input-behavior.d.ts @@ -0,0 +1,307 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * paper-input-behavior.html + */ + +/// +/// +/// + +declare namespace Polymer { + + /** + * Use `Polymer.PaperInputBehavior` to implement inputs with ``. This + * behavior is implemented by ``. It exposes a number of properties from + * `` and `` and they should be bound in your + * template. + * + * The input element can be accessed by the `inputElement` property if you need to access + * properties or methods that are not exposed. + */ + interface PaperInputBehavior extends Polymer.IronControlState, Polymer.IronA11yKeysBehavior { + + /** + * Set to true to disable this input. If you're using PaperInputBehavior to + * implement your own paper-input-like element, bind this to + * both the ``'s and the input's `disabled` property. + */ + disabled: boolean|null|undefined; + keyBindings: object; + + /** + * The label for this input. If you're using PaperInputBehavior to + * implement your own paper-input-like element, bind this to + * `